LCOV - code coverage report
Current view: top level - /mnt/build/buildbot/bld/build-lcov/gcc - generic-match-5.cc (source / functions) Coverage Total Hit
Test: gcc.info Lines: 57.0 % 7440 4244
Test Date: 2026-08-22 16:33:35 Functions: 69.6 % 69 48
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      1942719 : tree_power_of_two_cand (tree t, tree *res_ops)
      11              : {
      12      1942719 :   const tree type = TREE_TYPE (t);
      13      1942719 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
      14      1942719 :   if (TREE_SIDE_EFFECTS (t)) return false;
      15      1941953 :   switch (TREE_CODE (t))
      16              :     {
      17      1598657 :     case INTEGER_CST:
      18      1598657 :       {
      19      1598657 :         {
      20      1598657 :           tree captures[1] ATTRIBUTE_UNUSED = { t };
      21      1598657 :           {
      22      1598657 :             res_ops[0] = captures[0];
      23      1598657 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 12, __FILE__, __LINE__, false);
      24              :             return true;
      25              :           }
      26              :         }
      27           16 :         break;
      28              :       }
      29           16 :     case LSHIFT_EXPR:
      30           16 :       {
      31           16 :         tree _p0 = TREE_OPERAND (t, 0);
      32           16 :         tree _p1 = TREE_OPERAND (t, 1);
      33           16 :         switch (TREE_CODE (_p0))
      34              :           {
      35           16 :           case INTEGER_CST:
      36           16 :             {
      37           16 :               {
      38           16 :                 tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
      39           16 :                 {
      40           16 :                   res_ops[0] = captures[0];
      41           16 :                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 13, __FILE__, __LINE__, false);
      42              :                   return true;
      43              :                 }
      44              :               }
      45              :               break;
      46              :             }
      47              :           default:;
      48              :           }
      49              :         break;
      50              :       }
      51              :     default:;
      52              :     }
      53              :   return false;
      54              : }
      55              : 
      56              : bool
      57     85469610 : tree_with_possible_nonzero_bits (tree t)
      58              : {
      59     85469610 :   const tree type = TREE_TYPE (t);
      60     85469610 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
      61     85469610 :   if (TREE_SIDE_EFFECTS (t)) return false;
      62     80184959 :   switch (TREE_CODE (t))
      63              :     {
      64      2066817 :     case BIT_AND_EXPR:
      65      2066817 :       {
      66      2066817 :         tree _p0 = TREE_OPERAND (t, 0);
      67      2066817 :         tree _p1 = TREE_OPERAND (t, 1);
      68      2066817 :         if (tree_with_possible_nonzero_bits_1 (_p0))
      69              :           {
      70       891600 :             {
      71       891600 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
      72       891600 :               {
      73       891600 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 35, __FILE__, __LINE__, false);
      74              :                 return true;
      75              :               }
      76              :             }
      77              :           }
      78      1175217 :         if (tree_with_possible_nonzero_bits_1 (_p1))
      79              :           {
      80      1012071 :             {
      81      1012071 :               tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 };
      82      1012071 :               {
      83      1012071 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 35, __FILE__, __LINE__, false);
      84              :                 return true;
      85              :               }
      86              :             }
      87              :           }
      88              :         break;
      89              :       }
      90     78281288 :     default:;
      91              :     }
      92     78281288 : if (tree_with_possible_nonzero_bits_1 (t))
      93              :   {
      94     41886745 :     {
      95     41886745 :       tree captures[1] ATTRIBUTE_UNUSED = { t };
      96     41886745 :       {
      97     41886745 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 36, __FILE__, __LINE__, false);
      98              :         return true;
      99              :       }
     100              :     }
     101              :   }
     102              :   return false;
     103              : }
     104              : 
     105              : bool
     106       783570 : tree_vec_same_elem_p (tree t)
     107              : {
     108       783570 :   const tree type = TREE_TYPE (t);
     109       783570 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     110       783570 :   if (TREE_SIDE_EFFECTS (t)) return false;
     111       783570 :   switch (TREE_CODE (t))
     112              :     {
     113            0 :     case VEC_DUPLICATE_EXPR:
     114            0 :       {
     115            0 :         tree _p0 = TREE_OPERAND (t, 0);
     116            0 :         {
     117            0 :           tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
     118            0 :           {
     119            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 46, __FILE__, __LINE__, false);
     120              :             return true;
     121              :           }
     122              :         }
     123              :         break;
     124              :       }
     125              :     case CONSTRUCTOR:
     126              :       {
     127              :         {
     128              :           tree captures[1] ATTRIBUTE_UNUSED = { t };
     129              :           if (TREE_CODE (captures[0]) == SSA_NAME
     130              :  && uniform_vector_p (gimple_assign_rhs1 (SSA_NAME_DEF_STMT (captures[0])))
     131              : )
     132              :             {
     133              :               {
     134              :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 47, __FILE__, __LINE__, false);
     135              :                 return true;
     136              :               }
     137              :             }
     138              :         }
     139              :         break;
     140              :       }
     141       783570 :     default:;
     142              :     }
     143       783570 :   {
     144       783570 :     tree captures[1] ATTRIBUTE_UNUSED = { t };
     145       783570 :     if (uniform_vector_p (captures[0])
     146              : )
     147              :       {
     148        13971 :         {
     149        13971 :           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 48, __FILE__, __LINE__, false);
     150       783570 :           return true;
     151              :         }
     152              :       }
     153              :   }
     154              :   return false;
     155              : }
     156              : 
     157              : tree
     158            1 : generic_simplify_14 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     159              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     160              : {
     161            1 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     162            1 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail88;
     163            1 :   {
     164            1 :     tree res_op0;
     165            1 :     res_op0 = captures[0];
     166            1 :     tree _r;
     167            1 :     _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
     168            1 :     if (TREE_SIDE_EFFECTS (captures[1]))
     169            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
     170            1 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 63, __FILE__, __LINE__, true);
     171              :     return _r;
     172              :   }
     173            0 : next_after_fail88:;
     174            0 :   return NULL_TREE;
     175              : }
     176              : 
     177              : tree
     178            0 : generic_simplify_20 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     179              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     180              :  const enum tree_code ARG_UNUSED (op))
     181              : {
     182            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     183            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail94;
     184            0 :   {
     185            0 :     tree res_op0;
     186            0 :     res_op0 = captures[0];
     187            0 :     tree res_op1;
     188            0 :     res_op1 = captures[1];
     189            0 :     tree _r;
     190            0 :     _r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
     191            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 69, __FILE__, __LINE__, true);
     192              :     return _r;
     193              :   }
     194            0 : next_after_fail94:;
     195            0 :   return NULL_TREE;
     196              : }
     197              : 
     198              : tree
     199          390 : generic_simplify_27 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     200              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     201              :  const enum tree_code ARG_UNUSED (op),
     202              :  const enum tree_code ARG_UNUSED (rop))
     203              : {
     204          390 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     205          390 :   if (tree_nop_conversion_p (type, TREE_TYPE (captures[1]))
     206          390 :  && tree_nop_conversion_p (type, TREE_TYPE (captures[2]))
     207              : )
     208              :     {
     209          390 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail101;
     210          390 :       {
     211          390 :         tree res_op0;
     212          390 :         {
     213          390 :           tree _o1[1], _r1;
     214          390 :           _o1[0] = captures[0];
     215          390 :           if (TREE_TYPE (_o1[0]) != type)
     216              :             {
     217            0 :               _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
     218              :             }
     219              :           else
     220              :             _r1 = _o1[0];
     221          390 :           res_op0 = _r1;
     222              :         }
     223          390 :         tree res_op1;
     224          390 :         {
     225          390 :           tree _o1[2], _r1;
     226          390 :           {
     227          390 :             tree _o2[1], _r2;
     228          390 :             _o2[0] = captures[1];
     229          390 :             if (TREE_TYPE (_o2[0]) != type)
     230              :               {
     231            0 :                 _r2 = fold_build1_loc (loc, NOP_EXPR, type, _o2[0]);
     232              :               }
     233              :             else
     234              :               _r2 = _o2[0];
     235          390 :             _o1[0] = _r2;
     236              :           }
     237          390 :           {
     238          390 :             tree _o2[1], _r2;
     239          390 :             _o2[0] = captures[2];
     240          390 :             if (TREE_TYPE (_o2[0]) != type)
     241              :               {
     242            0 :                 _r2 = fold_build1_loc (loc, NOP_EXPR, type, _o2[0]);
     243              :               }
     244              :             else
     245              :               _r2 = _o2[0];
     246          390 :             _o1[1] = _r2;
     247              :           }
     248          390 :           _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     249          390 :           res_op1 = _r1;
     250              :         }
     251          390 :         tree _r;
     252          390 :         _r = fold_build2_loc (loc, rop, type, res_op0, res_op1);
     253          390 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 76, __FILE__, __LINE__, true);
     254              :         return _r;
     255              :       }
     256            0 : next_after_fail101:;
     257              :     }
     258              :   return NULL_TREE;
     259              : }
     260              : 
     261              : tree
     262            0 : generic_simplify_37 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     263              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     264              :  const enum tree_code ARG_UNUSED (op))
     265              : {
     266            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     267            0 :   if (INTEGRAL_TYPE_P (type)
     268            0 :  && tree_int_cst_sgn (captures[5]) > 0
     269            0 :  && (tree_nonzero_bits (captures[0]) & tree_nonzero_bits (captures[4])) == 0
     270              : )
     271              :     {
     272            0 :       {
     273            0 :  tree t = type;
     274            0 :  if (!TYPE_OVERFLOW_WRAPS (t))
     275            0 :  t = unsigned_type_for (t);
     276            0 :  wide_int wone = wi::one (TYPE_PRECISION (type));
     277            0 :  wide_int c = wi::add (wi::to_wide (captures[3]),
     278            0 :  wi::lshift (wone, wi::to_wide (captures[5])));
     279            0 :           if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail113;
     280            0 :           if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail113;
     281            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail113;
     282            0 :           {
     283            0 :             tree res_op0;
     284            0 :             {
     285            0 :               tree _o1[2], _r1;
     286            0 :               {
     287            0 :                 tree _o2[1], _r2;
     288            0 :                 _o2[0] = captures[2];
     289            0 :                 if (TREE_TYPE (_o2[0]) != t)
     290              :                   {
     291            0 :                     _r2 = fold_build1_loc (loc, NOP_EXPR, t, _o2[0]);
     292              :                   }
     293              :                 else
     294              :                   _r2 = _o2[0];
     295            0 :                 _o1[0] = _r2;
     296              :               }
     297            0 :               _o1[1] =  wide_int_to_tree (t, c);
     298            0 :               _r1 = fold_build2_loc (loc, MULT_EXPR, t, _o1[0], _o1[1]);
     299            0 :               res_op0 = _r1;
     300              :             }
     301            0 :             tree _r;
     302            0 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
     303            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 86, __FILE__, __LINE__, true);
     304            0 :             return _r;
     305              :           }
     306            0 : next_after_fail113:;
     307            0 :       }
     308              :     }
     309              :   return NULL_TREE;
     310              : }
     311              : 
     312              : tree
     313           18 : generic_simplify_47 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     314              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     315              :  const enum tree_code ARG_UNUSED (cmp))
     316              : {
     317           18 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     318           36 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
     319           18 :  && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
     320           36 :  && types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[3]))
     321              : )
     322              :     {
     323           18 :       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail125;
     324           18 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail125;
     325           18 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail125;
     326           18 :       {
     327           18 :         tree res_op0;
     328           18 :         {
     329           18 :           tree _o1[2], _r1;
     330           18 :           _o1[0] = captures[1];
     331           18 :           _o1[1] = captures[3];
     332           18 :           _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     333           18 :           res_op0 = _r1;
     334              :         }
     335           18 :         tree res_op1;
     336           18 :         res_op1 =  build_zero_cst (TREE_TYPE (captures[1]));
     337           18 :         tree _r;
     338           18 :         _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
     339           18 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 95, __FILE__, __LINE__, true);
     340              :         return _r;
     341              :       }
     342           18 : next_after_fail125:;
     343              :     }
     344              :   return NULL_TREE;
     345              : }
     346              : 
     347              : tree
     348            7 : generic_simplify_56 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     349              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     350              :  const enum tree_code ARG_UNUSED (op))
     351              : {
     352            7 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     353            7 :   if (INTEGRAL_TYPE_P (type)
     354            7 :  && TYPE_OVERFLOW_WRAPS (type)
     355           14 :  && !TYPE_SATURATING (type)
     356              : )
     357              :     {
     358            7 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail136;
     359            7 :       {
     360            7 :         tree res_op0;
     361            7 :         {
     362            7 :           tree _o1[2], _r1;
     363            7 :           _o1[0] = captures[1];
     364            7 :           _o1[1] = captures[4];
     365            7 :           _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     366            7 :           res_op0 = _r1;
     367              :         }
     368            7 :         tree res_op1;
     369            7 :         res_op1 = captures[2];
     370            7 :         tree _r;
     371            7 :         _r = fold_build2_loc (loc, LSHIFT_EXPR, type, res_op0, res_op1);
     372            7 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 105, __FILE__, __LINE__, true);
     373              :         return _r;
     374              :       }
     375            0 : next_after_fail136:;
     376              :     }
     377              :   return NULL_TREE;
     378              : }
     379              : 
     380              : tree
     381       252401 : generic_simplify_65 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     382              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     383              : {
     384       252401 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     385       252401 :   if (!TYPE_SATURATING (type)
     386              : )
     387              :     {
     388       252401 :       if (tree_nop_conversion_p (type, TREE_TYPE (captures[1]))
     389       252401 :  && !TYPE_OVERFLOW_SANITIZED (type)
     390              : )
     391              :         {
     392       250148 :           {
     393       250148 :  tree t1 = type;
     394       250148 :  if (INTEGRAL_TYPE_P (type)
     395       467560 :  && TYPE_OVERFLOW_WRAPS (type) != TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1])))
     396         2364 :  t1 = TYPE_OVERFLOW_WRAPS (type) ? type : TREE_TYPE (captures[1]);
     397       250148 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail145;
     398       250148 :               {
     399       250148 :                 tree res_op0;
     400       250148 :                 {
     401       250148 :                   tree _o1[2], _r1;
     402       250148 :                   {
     403       250148 :                     tree _o2[1], _r2;
     404       250148 :                     _o2[0] = captures[0];
     405       250148 :                     if (TREE_TYPE (_o2[0]) != t1)
     406              :                       {
     407         2112 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, t1, _o2[0]);
     408              :                       }
     409              :                     else
     410              :                       _r2 = _o2[0];
     411       250148 :                     _o1[0] = _r2;
     412              :                   }
     413       250148 :                   {
     414       250148 :                     tree _o2[1], _r2;
     415       250148 :                     _o2[0] = captures[1];
     416       250148 :                     if (TREE_TYPE (_o2[0]) != t1)
     417              :                       {
     418        21556 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, t1, _o2[0]);
     419              :                       }
     420              :                     else
     421              :                       _r2 = _o2[0];
     422       250148 :                     _o1[1] = _r2;
     423              :                   }
     424       250148 :                   _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     425       250148 :                   res_op0 = _r1;
     426              :                 }
     427       250148 :                 tree _r;
     428       250148 :                 _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
     429       250148 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 113, __FILE__, __LINE__, true);
     430              :                 return _r;
     431              :               }
     432            0 : next_after_fail145:;
     433              :           }
     434              :         }
     435              :     }
     436              :   return NULL_TREE;
     437              : }
     438              : 
     439              : tree
     440            9 : generic_simplify_78 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     441              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     442              : {
     443            9 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     444            9 :   if (INTEGRAL_TYPE_P (type)
     445            9 :  && (
     446              : 
     447            9 :  || !TREE_SIDE_EFFECTS (captures[1]))
     448              : )
     449              :     {
     450            2 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail167;
     451            2 :       {
     452            2 :         tree res_op0;
     453            2 :         {
     454            2 :           tree _o1[1], _r1;
     455            2 :           _o1[0] = captures[2];
     456            2 :           if (TREE_TYPE (_o1[0]) != boolean_type_node)
     457              :             {
     458            2 :               _r1 = fold_build1_loc (loc, NOP_EXPR, boolean_type_node, _o1[0]);
     459              :             }
     460              :           else
     461              :             _r1 = _o1[0];
     462            2 :           res_op0 = _r1;
     463              :         }
     464            2 :         tree res_op1;
     465            2 :         res_op1 = captures[1];
     466            2 :         tree res_op2;
     467            2 :         res_op2 = captures[0];
     468            2 :         tree _r;
     469            2 :         _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
     470            2 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 135, __FILE__, __LINE__, true);
     471              :         return _r;
     472              :       }
     473            0 : next_after_fail167:;
     474              :     }
     475              :   return NULL_TREE;
     476              : }
     477              : 
     478              : tree
     479        19692 : generic_simplify_83 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     480              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     481              :  const enum tree_code ARG_UNUSED (op))
     482              : {
     483        19692 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     484        19692 :   if (flag_unsafe_math_optimizations
     485              : )
     486              :     {
     487          137 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail173;
     488          137 :       {
     489          137 :         tree res_op0;
     490          137 :         {
     491          137 :           tree _o1[2], _r1;
     492          137 :           _o1[0] = captures[0];
     493          137 :           _o1[1] = captures[2];
     494          137 :           _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     495          137 :           res_op0 = _r1;
     496              :         }
     497          137 :         tree res_op1;
     498          137 :         res_op1 = captures[1];
     499          137 :         tree _r;
     500          137 :         _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
     501          137 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 141, __FILE__, __LINE__, true);
     502              :         return _r;
     503              :       }
     504            0 : next_after_fail173:;
     505              :     }
     506              :   return NULL_TREE;
     507              : }
     508              : 
     509              : tree
     510            0 : generic_simplify_90 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     511              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     512              :  const enum tree_code ARG_UNUSED (op))
     513              : {
     514            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     515            0 :   if (VECTOR_FLOAT_TYPE_P (type)
     516            0 :  && TYPE_VECTOR_SUBPARTS (type).is_constant ()
     517              : )
     518              :     {
     519            0 :       {
     520            0 :  tree perm_cst = captures[1];
     521            0 :  vec_perm_builder builder;
     522            0 :  bool full_perm_p = false;
     523            0 :  if (tree_to_vec_perm_builder (&builder, perm_cst))
     524              :  {
     525            0 :  unsigned HOST_WIDE_INT nelts;
     526            0 :  nelts = TYPE_VECTOR_SUBPARTS (type).to_constant ();
     527            0 :  vec_perm_indices sel (builder, 1, nelts);
     528            0 :  if (sel.encoding ().encoded_full_vector_p ())
     529              :  {
     530            0 :  auto_sbitmap seen (nelts);
     531            0 :  bitmap_clear (seen);
     532            0 :  unsigned HOST_WIDE_INT count = 0, i;
     533            0 :  for (i = 0; i < nelts; i++)
     534              :  {
     535            0 :  if (!bitmap_set_bit (seen, sel[i].to_constant ()))
     536              :  break;
     537            0 :  count++;
     538              :  }
     539            0 :  full_perm_p = count == nelts;
     540            0 :  }
     541            0 :  }
     542            0 :           if (full_perm_p
     543              : )
     544              :             {
     545            0 :               if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail180;
     546            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail180;
     547            0 :               {
     548            0 :                 tree res_op0;
     549            0 :                 {
     550            0 :                   tree _o1[2], _r1;
     551            0 :                   _o1[0] = captures[0];
     552            0 :                   _o1[1] = captures[2];
     553            0 :                   _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     554            0 :                   captures[3] = _r1;
     555              :                 }
     556            0 :                 res_op0 = unshare_expr (captures[3]);
     557            0 :                 tree res_op1;
     558            0 :                 res_op1 = captures[3];
     559            0 :                 tree res_op2;
     560            0 :                 res_op2 = captures[1];
     561            0 :                 tree _r;
     562            0 :                 _r = fold_build3_loc (loc, VEC_PERM_EXPR, type, res_op0, res_op1, res_op2);
     563            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 148, __FILE__, __LINE__, true);
     564            0 :                 return _r;
     565              :               }
     566            0 : next_after_fail180:;
     567              :             }
     568            0 :       }
     569              :     }
     570              :   return NULL_TREE;
     571              : }
     572              : 
     573              : tree
     574          276 : generic_simplify_102 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     575              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     576              : {
     577          276 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     578          276 :   if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
     579          276 :  && tree_nop_conversion_p (type, TREE_TYPE (captures[3]))
     580              : )
     581              :     {
     582          276 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail192;
     583          276 :       {
     584          276 :         tree res_op0;
     585          276 :         {
     586          276 :           tree _o1[2], _r1;
     587          276 :           {
     588          276 :             tree _o2[1], _r2;
     589          276 :             _o2[0] = captures[3];
     590          276 :             _r2 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
     591          276 :             _o1[0] = _r2;
     592              :           }
     593          276 :           _o1[1] = captures[0];
     594          276 :           _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     595          276 :           res_op0 = _r1;
     596              :         }
     597          276 :         tree _r;
     598          276 :         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
     599          276 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 159, __FILE__, __LINE__, true);
     600              :         return _r;
     601              :       }
     602            0 : next_after_fail192:;
     603              :     }
     604              :   return NULL_TREE;
     605              : }
     606              : 
     607              : tree
     608        12247 : generic_simplify_111 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     609              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     610              : {
     611        12247 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     612        12247 :   if (!TYPE_SATURATING (type)
     613              : )
     614              :     {
     615        12247 :       if ((!FLOAT_TYPE_P (type) || flag_associative_math)
     616        24494 :  && !FIXED_POINT_TYPE_P (type)
     617              : )
     618              :         {
     619        12247 :           if (element_precision (type) <= element_precision (TREE_TYPE (captures[1]))
     620        12247 :  || (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
     621         3016 :  && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1])))
     622              : )
     623              :             {
     624        12127 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail205;
     625        12127 :               {
     626        12127 :                 tree res_op0;
     627        12127 :                 res_op0 = captures[1];
     628        12127 :                 tree _r;
     629        12127 :                 _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
     630        12127 :                 if (TREE_SIDE_EFFECTS (captures[2]))
     631           15 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
     632        12127 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 172, __FILE__, __LINE__, true);
     633              :                 return _r;
     634              :               }
     635            0 : next_after_fail205:;
     636              :             }
     637              :         }
     638              :     }
     639              :   return NULL_TREE;
     640              : }
     641              : 
     642              : tree
     643            2 : generic_simplify_116 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     644              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     645              :  const combined_fn ARG_UNUSED (logs))
     646              : {
     647            2 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     648            2 :   if (flag_unsafe_math_optimizations
     649              : )
     650              :     {
     651            2 :       if (! HONOR_SIGN_DEPENDENT_ROUNDING (type)
     652            2 :  && ! HONOR_NANS (type) && ! HONOR_INFINITIES (type)
     653            2 :  && ! flag_trapping_math
     654            4 :  && ! flag_errno_math
     655              : )
     656              :         {
     657            2 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail212;
     658            2 :           {
     659            2 :             tree res_op0;
     660            2 :             {
     661            2 :               tree _o1[2], _r1;
     662            2 :               _o1[0] = captures[1];
     663            2 :               _o1[1] = captures[3];
     664            2 :               _r1 = fold_build2_loc (loc, RDIV_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     665            2 :               res_op0 = _r1;
     666              :             }
     667            2 :             tree _r;
     668            2 :             _r = maybe_build_call_expr_loc (loc, logs, type, 1, res_op0);
     669            2 :             if (!_r)
     670            0 :               goto next_after_fail212;
     671            2 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 179, __FILE__, __LINE__, true);
     672              :             return _r;
     673              :           }
     674            2 : next_after_fail212:;
     675              :         }
     676              :     }
     677              :   return NULL_TREE;
     678              : }
     679              : 
     680              : tree
     681            2 : generic_simplify_123 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     682              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     683              :  const enum tree_code ARG_UNUSED (bitop),
     684              :  const enum tree_code ARG_UNUSED (cmp),
     685              :  const enum tree_code ARG_UNUSED (rcmp))
     686              : {
     687            2 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     688            4 :   if (integer_pow2p (captures[3]) && integer_pow2p (captures[6])
     689            4 :  && wi::to_wide (captures[3]) != wi::to_wide (captures[6])
     690              : )
     691              :     {
     692            2 :       {
     693            2 :  tree m = wide_int_to_tree (TREE_TYPE (captures[2]),
     694            2 :  wi::to_wide (captures[3]) | wi::to_wide (captures[6]));
     695            2 :           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail223;
     696            2 :           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail223;
     697            2 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail223;
     698            2 :           {
     699            2 :             tree res_op0;
     700            2 :             {
     701            2 :               tree _o1[2], _r1;
     702            2 :               _o1[0] = captures[2];
     703            2 :               _o1[1] =  m;
     704            2 :               _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     705            2 :               res_op0 = _r1;
     706              :             }
     707            2 :             tree res_op1;
     708            2 :             res_op1 =  bitop == BIT_AND_EXPR ? captures[3] : captures[6];
     709            2 :             tree _r;
     710            2 :             _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
     711            2 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 188, __FILE__, __LINE__, true);
     712              :             return _r;
     713              :           }
     714            2 : next_after_fail223:;
     715              :       }
     716              :     }
     717              :   return NULL_TREE;
     718              : }
     719              : 
     720              : tree
     721            2 : generic_simplify_133 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     722              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     723              : {
     724            2 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     725            2 :   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail233;
     726            2 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail233;
     727            2 :   {
     728            2 :     tree res_op0;
     729            2 :     res_op0 = captures[0];
     730            2 :     tree res_op1;
     731            2 :     res_op1 = captures[3];
     732            2 :     tree _r;
     733            2 :     _r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
     734            2 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 197, __FILE__, __LINE__, true);
     735              :     return _r;
     736              :   }
     737            2 : next_after_fail233:;
     738              :   return NULL_TREE;
     739              : }
     740              : 
     741              : tree
     742           15 : generic_simplify_141 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     743              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     744              :  const enum tree_code ARG_UNUSED (bitop))
     745              : {
     746           15 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     747           15 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail241;
     748           15 :   {
     749           15 :     tree res_op0;
     750           15 :     res_op0 = captures[0];
     751           15 :     tree res_op1;
     752           15 :     {
     753           15 :       tree _o1[1], _r1;
     754           15 :       _o1[0] = captures[2];
     755           15 :       _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
     756           15 :       res_op1 = _r1;
     757              :     }
     758           15 :     tree _r;
     759           15 :     _r = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
     760           15 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 201, __FILE__, __LINE__, true);
     761              :     return _r;
     762              :   }
     763            0 : next_after_fail241:;
     764            0 :   return NULL_TREE;
     765              : }
     766              : 
     767              : tree
     768            2 : generic_simplify_153 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     769              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     770              :  const enum tree_code ARG_UNUSED (bitop),
     771              :  const enum tree_code ARG_UNUSED (rbitop))
     772              : {
     773            2 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     774            2 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail257;
     775            2 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail257;
     776            2 :   {
     777            2 :     tree _r;
     778            2 :     _r = captures[2];
     779            2 :     if (TREE_SIDE_EFFECTS (captures[1]))
     780            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
     781            2 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 209, __FILE__, __LINE__, true);
     782              :     return _r;
     783              :   }
     784            2 : next_after_fail257:;
     785              :   return NULL_TREE;
     786              : }
     787              : 
     788              : tree
     789          700 : generic_simplify_159 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     790              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     791              :  const enum tree_code ARG_UNUSED (op))
     792              : {
     793          700 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     794          700 :   if (bitwise_equal_p (captures[4], captures[7])
     795              : )
     796              :     {
     797           40 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail264;
     798           40 :       {
     799           40 :         tree res_op0;
     800           40 :         {
     801           40 :           tree _o1[2], _r1;
     802           40 :           {
     803           40 :             tree _o2[2], _r2;
     804           40 :             _o2[0] = captures[5];
     805           40 :             {
     806           40 :               tree _o3[1], _r3;
     807           40 :               _o3[0] = captures[6];
     808           40 :               if (TREE_TYPE (_o3[0]) != TREE_TYPE (_o2[0]))
     809              :                 {
     810            0 :                   _r3 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o2[0]), _o3[0]);
     811              :                 }
     812              :               else
     813              :                 _r3 = _o3[0];
     814           40 :               _o2[1] = _r3;
     815              :             }
     816           40 :             _r2 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
     817           40 :             _o1[0] = _r2;
     818              :           }
     819           40 :           {
     820           40 :             tree _o2[1], _r2;
     821           40 :             _o2[0] = captures[4];
     822           40 :             if (TREE_TYPE (_o2[0]) != TREE_TYPE (_o1[0]))
     823              :               {
     824            0 :                 _r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]);
     825              :               }
     826              :             else
     827              :               _r2 = _o2[0];
     828           40 :             _o1[1] = _r2;
     829              :           }
     830           40 :           _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     831           40 :           res_op0 = _r1;
     832              :         }
     833           40 :         tree _r;
     834           40 :         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
     835           40 :         if (TREE_SIDE_EFFECTS (captures[7]))
     836            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[7]), _r);
     837           40 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 213, __FILE__, __LINE__, true);
     838              :         return _r;
     839              :       }
     840            0 : next_after_fail264:;
     841              :     }
     842              :   return NULL_TREE;
     843              : }
     844              : 
     845              : tree
     846           25 : generic_simplify_171 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     847              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     848              :  const enum tree_code ARG_UNUSED (code2),
     849              :  const enum tree_code ARG_UNUSED (code1))
     850              : {
     851           25 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     852           25 :   if ((TREE_CODE (captures[2]) == INTEGER_CST
     853            7 :  && TREE_CODE (captures[4]) == INTEGER_CST)
     854           25 :  || ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
     855           18 :  || POINTER_TYPE_P (TREE_TYPE (captures[2])))
     856            0 :  && operand_equal_p (captures[2], captures[4]))
     857              : )
     858              :     {
     859            7 :       {
     860            7 :  int cmp = 0;
     861            7 :  if (TREE_CODE (captures[2]) == INTEGER_CST
     862            7 :  && TREE_CODE (captures[4]) == INTEGER_CST)
     863            7 :  cmp = tree_int_cst_compare (captures[2], captures[4]);
     864            7 :           if ((code1 == LT_EXPR || code1 == LE_EXPR)
     865            7 :  && (code2 == LT_EXPR || code2 == LE_EXPR)
     866              : )
     867              :             {
     868            7 :               if ((cmp < 0) || (cmp == 0 && code1 == LT_EXPR)
     869              : )
     870              :                 {
     871            7 :                   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail292;
     872            7 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail292;
     873            7 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail292;
     874            7 :                   {
     875            7 :                     tree _r;
     876            7 :                     _r = captures[3];
     877            7 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 232, __FILE__, __LINE__, true);
     878              :                     return _r;
     879              :                   }
     880           25 : next_after_fail292:;
     881              :                 }
     882              :               else
     883              :                 {
     884            0 :                   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail293;
     885            0 :                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail293;
     886            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail293;
     887            0 :                   {
     888            0 :                     tree _r;
     889            0 :                     _r = captures[0];
     890            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 233, __FILE__, __LINE__, true);
     891              :                     return _r;
     892              :                   }
     893           25 : next_after_fail293:;
     894              :                 }
     895              :             }
     896              :           else
     897              :             {
     898            0 :               if ((code1 == GT_EXPR || code1 == GE_EXPR)
     899            0 :  && (code2 == GT_EXPR || code2 == GE_EXPR)
     900              : )
     901              :                 {
     902            0 :                   if ((cmp > 0) || (cmp == 0 && code1 == GT_EXPR)
     903              : )
     904              :                     {
     905            0 :                       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail294;
     906            0 :                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail294;
     907            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail294;
     908            0 :                       {
     909            0 :                         tree _r;
     910            0 :                         _r = captures[3];
     911            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 234, __FILE__, __LINE__, true);
     912              :                         return _r;
     913              :                       }
     914           25 : next_after_fail294:;
     915              :                     }
     916              :                   else
     917              :                     {
     918            0 :                       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail295;
     919            0 :                       if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail295;
     920            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail295;
     921            0 :                       {
     922            0 :                         tree _r;
     923            0 :                         _r = captures[0];
     924            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 235, __FILE__, __LINE__, true);
     925              :                         return _r;
     926              :                       }
     927           25 : next_after_fail295:;
     928              :                     }
     929              :                 }
     930              :               else
     931              :                 {
     932            0 :                   if (cmp == 0
     933            0 :  && ((code1 == LT_EXPR && code2 == GT_EXPR)
     934            0 :  || (code1 == GT_EXPR && code2 == LT_EXPR))
     935              : )
     936              :                     {
     937            0 :                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail296;
     938            0 :                       if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail296;
     939            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail296;
     940            0 :                       {
     941            0 :                         tree res_op0;
     942            0 :                         res_op0 = captures[1];
     943            0 :                         tree res_op1;
     944            0 :                         res_op1 = captures[4];
     945            0 :                         tree _r;
     946            0 :                         _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
     947            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 236, __FILE__, __LINE__, true);
     948              :                         return _r;
     949              :                       }
     950           25 : next_after_fail296:;
     951              :                     }
     952              :                   else
     953              :                     {
     954            0 :                       if (cmp >= 0
     955            0 :  && (code1 == LT_EXPR || code1 == LE_EXPR)
     956            0 :  && (code2 == GT_EXPR || code2 == GE_EXPR)
     957              : )
     958              :                         {
     959            0 :                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail297;
     960            0 :                           if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail297;
     961            0 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail297;
     962            0 :                           {
     963            0 :                             tree _r;
     964            0 :                             _r =  constant_boolean_node (true, type);
     965            0 :                             if (TREE_SIDE_EFFECTS (captures[1]))
     966            0 :                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
     967            0 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 237, __FILE__, __LINE__, true);
     968              :                             return _r;
     969              :                           }
     970           25 : next_after_fail297:;
     971              :                         }
     972              :                       else
     973              :                         {
     974            0 :                           if (cmp <= 0
     975            0 :  && (code1 == GT_EXPR || code1 == GE_EXPR)
     976            0 :  && (code2 == LT_EXPR || code2 == LE_EXPR)
     977              : )
     978              :                             {
     979            0 :                               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail298;
     980            0 :                               if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail298;
     981            0 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail298;
     982            0 :                               {
     983            0 :                                 tree _r;
     984            0 :                                 _r =  constant_boolean_node (true, type);
     985            0 :                                 if (TREE_SIDE_EFFECTS (captures[1]))
     986            0 :                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
     987            0 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 238, __FILE__, __LINE__, true);
     988              :                                 return _r;
     989              :                               }
     990           25 : next_after_fail298:;
     991              :                             }
     992              :                         }
     993              :                     }
     994              :                 }
     995              :             }
     996              :       }
     997              :     }
     998              :   return NULL_TREE;
     999              : }
    1000              : 
    1001              : tree
    1002            3 : generic_simplify_199 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1003              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    1004              : {
    1005            3 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1006            3 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail340;
    1007            3 :   {
    1008            3 :     tree _r;
    1009            3 :     _r = captures[1];
    1010            3 :     if (TREE_SIDE_EFFECTS (captures[0]))
    1011            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1012            3 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 255, __FILE__, __LINE__, true);
    1013              :     return _r;
    1014              :   }
    1015            0 : next_after_fail340:;
    1016            0 :   return NULL_TREE;
    1017              : }
    1018              : 
    1019              : tree
    1020          545 : generic_simplify_204 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1021              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    1022              : {
    1023          545 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1024          545 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail347;
    1025          545 :   {
    1026          545 :     tree res_op0;
    1027          545 :     {
    1028          545 :       tree _o1[2], _r1;
    1029          545 :       _o1[0] = captures[0];
    1030          545 :       _o1[1] = captures[1];
    1031          545 :       _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1032          545 :       res_op0 = _r1;
    1033              :     }
    1034          545 :     tree _r;
    1035          545 :     _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    1036          545 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 260, __FILE__, __LINE__, true);
    1037              :     return _r;
    1038              :   }
    1039            0 : next_after_fail347:;
    1040            0 :   return NULL_TREE;
    1041              : }
    1042              : 
    1043              : tree
    1044         5606 : generic_simplify_209 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1045              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1046              :  const enum tree_code ARG_UNUSED (op))
    1047              : {
    1048         5606 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1049         5606 :   {
    1050         5606 :  poly_widest_int factor;
    1051         5606 :       if (tree_nop_conversion_p (type, TREE_TYPE (captures[2]))
    1052         5575 :  && tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[2]))
    1053        11181 :  && multiple_p (wi::to_poly_widest (captures[3]), wi::to_widest (captures[1]), &factor)
    1054              : )
    1055              :         {
    1056         5505 :           {
    1057         5505 :  wi::overflow_type overflow;
    1058         5505 :  wide_int mul;
    1059         5505 :               if (types_match (type, TREE_TYPE (captures[2]))
    1060         5459 :  && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[2]))
    1061            0 :  && TREE_CODE (captures[2]) == INTEGER_CST
    1062            0 :  && TREE_CODE (captures[3]) == INTEGER_CST
    1063         5505 :  && (mul = wi::mul (wi::to_wide (captures[2]), wi::to_wide (captures[3]),
    1064            0 :  TYPE_SIGN (type), &overflow),
    1065            0 :  !overflow)
    1066         5505 :  && (TYPE_UNSIGNED (type)
    1067         5505 :  || known_eq (factor, 1)
    1068            0 :  || (get_range_pos_neg (captures[0])
    1069            0 :  | (((op == PLUS_EXPR) ^ (tree_int_cst_sgn (captures[2]) < 0))
    1070            0 :  ? 1 : 2)) != 3)
    1071              : )
    1072              :                 {
    1073            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail352;
    1074            0 :                   {
    1075            0 :                     tree res_op0;
    1076            0 :                     {
    1077            0 :                       tree _o1[2], _r1;
    1078            0 :                       _o1[0] = captures[0];
    1079            0 :                       _o1[1] =  wide_int_to_tree (type, factor);
    1080            0 :                       _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1081            0 :                       res_op0 = _r1;
    1082              :                     }
    1083            0 :                     tree res_op1;
    1084            0 :                     res_op1 =  wide_int_to_tree (type, mul);
    1085            0 :                     tree _r;
    1086            0 :                     _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
    1087            0 :                     if (TREE_SIDE_EFFECTS (captures[1]))
    1088            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1089            0 :                     if (TREE_SIDE_EFFECTS (captures[2]))
    1090            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1091            0 :                     if (TREE_SIDE_EFFECTS (captures[3]))
    1092            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
    1093            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 264, __FILE__, __LINE__, true);
    1094              :                     return _r;
    1095              :                   }
    1096            0 : next_after_fail352:;
    1097              :                 }
    1098              :               else
    1099              :                 {
    1100         5505 :                   {
    1101         5505 :  tree utype = unsigned_type_for (type);
    1102         5505 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail353;
    1103         5505 :                       {
    1104         5505 :                         tree res_op0;
    1105         5505 :                         {
    1106         5505 :                           tree _o1[2], _r1;
    1107         5505 :                           {
    1108         5505 :                             tree _o2[2], _r2;
    1109         5505 :                             {
    1110         5505 :                               tree _o3[1], _r3;
    1111         5505 :                               _o3[0] = captures[0];
    1112         5505 :                               if (TREE_TYPE (_o3[0]) != utype)
    1113              :                                 {
    1114         5505 :                                   _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
    1115              :                                 }
    1116              :                               else
    1117              :                                 _r3 = _o3[0];
    1118         5505 :                               _o2[0] = _r3;
    1119              :                             }
    1120         5505 :                             _o2[1] =  wide_int_to_tree (utype, factor);
    1121         5505 :                             _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    1122         5505 :                             _o1[0] = _r2;
    1123              :                           }
    1124         5505 :                           {
    1125         5505 :                             tree _o2[2], _r2;
    1126         5505 :                             {
    1127         5505 :                               tree _o3[1], _r3;
    1128         5505 :                               _o3[0] = captures[3];
    1129         5505 :                               if (TREE_TYPE (_o3[0]) != utype)
    1130              :                                 {
    1131           14 :                                   _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
    1132              :                                 }
    1133              :                               else
    1134              :                                 _r3 = _o3[0];
    1135         5505 :                               _o2[0] = _r3;
    1136              :                             }
    1137         5505 :                             {
    1138         5505 :                               tree _o3[1], _r3;
    1139         5505 :                               _o3[0] = captures[2];
    1140         5505 :                               if (TREE_TYPE (_o3[0]) != utype)
    1141              :                                 {
    1142           46 :                                   _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
    1143              :                                 }
    1144              :                               else
    1145              :                                 _r3 = _o3[0];
    1146         5505 :                               _o2[1] = _r3;
    1147              :                             }
    1148         5505 :                             _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    1149         5505 :                             _o1[1] = _r2;
    1150              :                           }
    1151         5505 :                           _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1152         5505 :                           res_op0 = _r1;
    1153              :                         }
    1154         5505 :                         tree _r;
    1155         5505 :                         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    1156         5505 :                         if (TREE_SIDE_EFFECTS (captures[1]))
    1157            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1158         5505 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 265, __FILE__, __LINE__, true);
    1159              :                         return _r;
    1160              :                       }
    1161            0 : next_after_fail353:;
    1162              :                   }
    1163              :                 }
    1164            0 :           }
    1165              :         }
    1166         5606 :   }
    1167          101 :   return NULL_TREE;
    1168              : }
    1169              : 
    1170              : tree
    1171       639052 : generic_simplify_237 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1172              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1173              :  const enum tree_code ARG_UNUSED (neeq))
    1174              : {
    1175       639052 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1176       639052 :   {
    1177       639052 :  poly_int64 diff; tree inner_type = TREE_TYPE (captures[1]);
    1178       639052 :       if (ptr_difference_const (captures[2], captures[0], &diff)
    1179              : )
    1180              :         {
    1181        22680 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail398;
    1182        22680 :           {
    1183        22680 :             tree res_op0;
    1184        22680 :             res_op0 =  build_int_cst_type (inner_type, diff);
    1185        22680 :             tree res_op1;
    1186        22680 :             res_op1 = captures[1];
    1187        22680 :             tree _r;
    1188        22680 :             _r = fold_build2_loc (loc, neeq, type, res_op0, res_op1);
    1189        22680 :             if (TREE_SIDE_EFFECTS (captures[0]))
    1190            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1191        22680 :             if (TREE_SIDE_EFFECTS (captures[2]))
    1192            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1193        22680 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 308, __FILE__, __LINE__, true);
    1194        22680 :             return _r;
    1195              :           }
    1196            0 : next_after_fail398:;
    1197              :         }
    1198              :   }
    1199       616372 :   return NULL_TREE;
    1200              : }
    1201              : 
    1202              : tree
    1203         1063 : generic_simplify_246 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1204              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1205              :  const enum tree_code ARG_UNUSED (minmax),
    1206              :  const enum tree_code ARG_UNUSED (cmp),
    1207              :  const enum tree_code ARG_UNUSED (out))
    1208              : {
    1209         1063 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1210         2126 :   if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    1211         1208 :  && (!VECTOR_TYPE_P (TREE_TYPE (captures[0]))
    1212            1 :  || (VECTOR_TYPE_P (type)
    1213            0 :  && (!expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, cmp)
    1214            0 :  || expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, out))))
    1215              : )
    1216              :     {
    1217          144 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail407;
    1218          144 :       {
    1219          144 :         tree res_op0;
    1220          144 :         res_op0 = captures[0];
    1221          144 :         tree res_op1;
    1222          144 :         res_op1 = captures[1];
    1223          144 :         tree _r;
    1224          144 :         _r = fold_build2_loc (loc, out, type, res_op0, res_op1);
    1225          144 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 317, __FILE__, __LINE__, true);
    1226              :         return _r;
    1227              :       }
    1228            0 : next_after_fail407:;
    1229              :     }
    1230              :   return NULL_TREE;
    1231              : }
    1232              : 
    1233              : tree
    1234          805 : generic_simplify_254 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1235              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1236              :  const enum tree_code ARG_UNUSED (cmp))
    1237              : {
    1238          805 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1239          805 :   if (tree_fits_shwi_p (captures[3])
    1240          805 :  && tree_to_shwi (captures[3]) > 0
    1241         1596 :  && tree_to_shwi (captures[3]) < TYPE_PRECISION (TREE_TYPE (captures[2]))
    1242              : )
    1243              :     {
    1244          791 :       {
    1245          791 :  tree t0 = TREE_TYPE (captures[2]);
    1246          791 :  unsigned int prec = TYPE_PRECISION (t0);
    1247          791 :  wide_int c1 = wi::to_wide (captures[3]);
    1248          791 :  wide_int c2 = wi::to_wide (captures[4]);
    1249          791 :  wide_int c3 = wi::to_wide (captures[5]);
    1250          791 :  wide_int sb = wi::set_bit_in_zero (prec - 1, prec);
    1251          791 :           if ((c2 & c3) != c3
    1252              : )
    1253              :             {
    1254            0 :               if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail420;
    1255            0 :               if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail420;
    1256            0 :               if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail420;
    1257            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail420;
    1258            0 :               {
    1259            0 :                 tree _r;
    1260            0 :                 _r =  constant_boolean_node (cmp == NE_EXPR, type);
    1261            0 :                 if (TREE_SIDE_EFFECTS (captures[2]))
    1262            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1263            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 330, __FILE__, __LINE__, true);
    1264              :                 return _r;
    1265              :               }
    1266            0 : next_after_fail420:;
    1267              :             }
    1268              :           else
    1269              :             {
    1270          791 :               if (TYPE_UNSIGNED (t0)
    1271              : )
    1272              :                 {
    1273          669 :                   if ((c3 & wi::arshift (sb, c1 - 1)) != 0
    1274              : )
    1275              :                     {
    1276            0 :                       if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail421;
    1277            0 :                       if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail421;
    1278            0 :                       if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail421;
    1279            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail421;
    1280            0 :                       {
    1281            0 :                         tree _r;
    1282            0 :                         _r =  constant_boolean_node (cmp == NE_EXPR, type);
    1283            0 :                         if (TREE_SIDE_EFFECTS (captures[2]))
    1284            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1285            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 331, __FILE__, __LINE__, true);
    1286              :                         return _r;
    1287              :                       }
    1288            0 : next_after_fail421:;
    1289              :                     }
    1290              :                   else
    1291              :                     {
    1292          669 :                       if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail422;
    1293          669 :                       if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail422;
    1294          669 :                       if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail422;
    1295          669 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail422;
    1296          669 :                       {
    1297          669 :                         tree res_op0;
    1298          669 :                         {
    1299          669 :                           tree _o1[2], _r1;
    1300          669 :                           _o1[0] = captures[2];
    1301          669 :                           _o1[1] =  wide_int_to_tree (t0, c2 << c1);
    1302          669 :                           _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1303          669 :                           res_op0 = _r1;
    1304              :                         }
    1305          669 :                         tree res_op1;
    1306          669 :                         res_op1 =  wide_int_to_tree (t0, c3 << c1);
    1307          669 :                         tree _r;
    1308          669 :                         _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1309          669 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 332, __FILE__, __LINE__, true);
    1310              :                         return _r;
    1311              :                       }
    1312            0 : next_after_fail422:;
    1313              :                     }
    1314              :                 }
    1315              :               else
    1316              :                 {
    1317          122 :                   {
    1318          122 :  wide_int smask = wi::arshift (sb, c1);
    1319          122 :                       if ((c2 & smask) == 0
    1320              : )
    1321              :                         {
    1322          120 :                           if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail423;
    1323          120 :                           if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail423;
    1324          120 :                           if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail423;
    1325          120 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail423;
    1326          120 :                           {
    1327          120 :                             tree res_op0;
    1328          120 :                             {
    1329          120 :                               tree _o1[2], _r1;
    1330          120 :                               _o1[0] = captures[2];
    1331          120 :                               _o1[1] =  wide_int_to_tree (t0, c2 << c1);
    1332          120 :                               _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1333          120 :                               res_op0 = _r1;
    1334              :                             }
    1335          120 :                             tree res_op1;
    1336          120 :                             res_op1 =  wide_int_to_tree (t0, c3 << c1);
    1337          120 :                             tree _r;
    1338          120 :                             _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1339          120 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 333, __FILE__, __LINE__, true);
    1340              :                             return _r;
    1341              :                           }
    1342            0 : next_after_fail423:;
    1343              :                         }
    1344              :                       else
    1345              :                         {
    1346            2 :                           if ((c3 & smask) == 0
    1347              : )
    1348              :                             {
    1349            2 :                               if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail424;
    1350            2 :                               if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail424;
    1351            2 :                               if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail424;
    1352            2 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail424;
    1353            2 :                               {
    1354            2 :                                 tree res_op0;
    1355            2 :                                 {
    1356            2 :                                   tree _o1[2], _r1;
    1357            2 :                                   _o1[0] = captures[2];
    1358            2 :                                   _o1[1] =  wide_int_to_tree (t0, (c2 << c1) | sb);
    1359            2 :                                   _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1360            2 :                                   res_op0 = _r1;
    1361              :                                 }
    1362            2 :                                 tree res_op1;
    1363            2 :                                 res_op1 =  wide_int_to_tree (t0, c3 << c1);
    1364            2 :                                 tree _r;
    1365            2 :                                 _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1366            2 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 334, __FILE__, __LINE__, true);
    1367              :                                 return _r;
    1368              :                               }
    1369            0 : next_after_fail424:;
    1370              :                             }
    1371              :                           else
    1372              :                             {
    1373            0 :                               if ((c2 & smask) != (c3 & smask)
    1374              : )
    1375              :                                 {
    1376            0 :                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail425;
    1377            0 :                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail425;
    1378            0 :                                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail425;
    1379            0 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail425;
    1380            0 :                                   {
    1381            0 :                                     tree _r;
    1382            0 :                                     _r =  constant_boolean_node (cmp == NE_EXPR, type);
    1383            0 :                                     if (TREE_SIDE_EFFECTS (captures[2]))
    1384            0 :                                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1385            0 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 335, __FILE__, __LINE__, true);
    1386              :                                     return _r;
    1387              :                                   }
    1388            0 : next_after_fail425:;
    1389              :                                 }
    1390              :                               else
    1391              :                                 {
    1392            0 :                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail426;
    1393            0 :                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail426;
    1394            0 :                                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail426;
    1395            0 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail426;
    1396            0 :                                   {
    1397            0 :                                     tree res_op0;
    1398            0 :                                     {
    1399            0 :                                       tree _o1[2], _r1;
    1400            0 :                                       _o1[0] = captures[2];
    1401            0 :                                       _o1[1] =  wide_int_to_tree (t0, (c2 << c1) | sb);
    1402            0 :                                       _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1403            0 :                                       res_op0 = _r1;
    1404              :                                     }
    1405            0 :                                     tree res_op1;
    1406            0 :                                     res_op1 =  wide_int_to_tree (t0, (c3 << c1) | sb);
    1407            0 :                                     tree _r;
    1408            0 :                                     _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1409            0 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 336, __FILE__, __LINE__, true);
    1410              :                                     return _r;
    1411              :                                   }
    1412            0 : next_after_fail426:;
    1413              :                                 }
    1414              :                             }
    1415              :                         }
    1416          122 :                   }
    1417              :                 }
    1418              :             }
    1419          791 :       }
    1420              :     }
    1421              :   return NULL_TREE;
    1422              : }
    1423              : 
    1424              : tree
    1425      1148883 : generic_simplify_287 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1426              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1427              :  const enum tree_code ARG_UNUSED (cmp))
    1428              : {
    1429      1148883 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1430      1148883 :   {
    1431      1148883 :  poly_int64 off; tree base;
    1432      1148883 :  tree addr = (TREE_CODE (captures[1]) == SSA_NAME
    1433      1148883 :  ? gimple_assign_rhs1 (SSA_NAME_DEF_STMT (captures[1])) : captures[1]);
    1434      1148883 :       if (SSA_NAME_IS_DEFAULT_DEF (captures[0])
    1435        47046 :  && TREE_CODE (SSA_NAME_VAR (captures[0])) == PARM_DECL
    1436        46866 :  && (base = get_base_address (TREE_OPERAND (addr, 0)))
    1437        46866 :  && TREE_CODE (base) == VAR_DECL
    1438      1152074 :  && auto_var_in_fn_p (base, current_function_decl)
    1439              : )
    1440              :         {
    1441            0 :           if (cmp == NE_EXPR
    1442              : )
    1443              :             {
    1444            0 :               if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail522;
    1445            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail522;
    1446            0 :               {
    1447            0 :                 tree _r;
    1448            0 :                 _r =  constant_boolean_node (true, type);
    1449            0 :                 if (TREE_SIDE_EFFECTS (captures[0]))
    1450            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1451            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 422, __FILE__, __LINE__, true);
    1452            2 :                 return _r;
    1453              :               }
    1454      1148881 : next_after_fail522:;
    1455              :             }
    1456              :           else
    1457              :             {
    1458            0 :               if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail523;
    1459            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail523;
    1460            0 :               {
    1461            0 :                 tree _r;
    1462            0 :                 _r =  constant_boolean_node (false, type);
    1463            0 :                 if (TREE_SIDE_EFFECTS (captures[0]))
    1464            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1465            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 423, __FILE__, __LINE__, true);
    1466              :                 return _r;
    1467              :               }
    1468      1148881 : next_after_fail523:;
    1469              :             }
    1470              :         }
    1471              :       else
    1472              :         {
    1473      1148883 :           if ((base = get_addr_base_and_unit_offset (TREE_OPERAND (addr, 0), &off))
    1474      1147520 :  && TREE_CODE (base) == MEM_REF
    1475      1319170 :  && TREE_OPERAND (base, 0) == captures[0]
    1476              : )
    1477              :             {
    1478            2 :               {
    1479            2 :  off += mem_ref_offset (base).force_shwi ();
    1480            2 :                   if (known_ne (off, 0)
    1481              : )
    1482              :                     {
    1483            2 :                       if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail524;
    1484            2 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail524;
    1485            2 :                       {
    1486            2 :                         tree _r;
    1487            2 :                         _r =  constant_boolean_node (cmp == NE_EXPR, type);
    1488            2 :                         if (TREE_SIDE_EFFECTS (captures[0]))
    1489            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1490            2 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 424, __FILE__, __LINE__, true);
    1491              :                         return _r;
    1492              :                       }
    1493      1148881 : next_after_fail524:;
    1494              :                     }
    1495              :                   else
    1496              :                     {
    1497            0 :                       if (known_eq (off, 0)
    1498              : )
    1499              :                         {
    1500            0 :                           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail525;
    1501            0 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail525;
    1502            0 :                           {
    1503            0 :                             tree _r;
    1504            0 :                             _r =  constant_boolean_node (cmp == EQ_EXPR, type);
    1505            0 :                             if (TREE_SIDE_EFFECTS (captures[0]))
    1506            0 :                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1507            0 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 425, __FILE__, __LINE__, true);
    1508              :                             return _r;
    1509              :                           }
    1510      1148881 : next_after_fail525:;
    1511              :                         }
    1512              :                     }
    1513              :               }
    1514              :             }
    1515              :         }
    1516              :   }
    1517      1148881 :   return NULL_TREE;
    1518              : }
    1519              : 
    1520              : tree
    1521            4 : generic_simplify_300 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1522              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1523              :  const enum tree_code ARG_UNUSED (cmp),
    1524              :  const enum tree_code ARG_UNUSED (ncmp))
    1525              : {
    1526            4 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1527            8 :   if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    1528            4 :  && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
    1529            8 :  && types_match (captures[0], captures[2])
    1530              : )
    1531              :     {
    1532            4 :       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail538;
    1533            4 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail538;
    1534            4 :       {
    1535            4 :         tree res_op0;
    1536            4 :         {
    1537            4 :           tree _o1[2], _r1;
    1538            4 :           _o1[0] = captures[0];
    1539            4 :           _o1[1] = captures[2];
    1540            4 :           _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1541            4 :           res_op0 = _r1;
    1542              :         }
    1543            4 :         tree res_op1;
    1544            4 :         res_op1 = captures[1];
    1545            4 :         tree _r;
    1546            4 :         _r = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
    1547            4 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 438, __FILE__, __LINE__, true);
    1548              :         return _r;
    1549              :       }
    1550            4 : next_after_fail538:;
    1551              :     }
    1552              :   return NULL_TREE;
    1553              : }
    1554              : 
    1555              : tree
    1556       116677 : generic_simplify_306 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1557              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1558              :  const enum tree_code ARG_UNUSED (cmp))
    1559              : {
    1560       116677 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1561       116677 :   {
    1562       116677 :  poly_int64 off0, off1;
    1563       116677 :  tree base0, base1;
    1564       116677 :  int equal = address_compare (cmp, TREE_TYPE (captures[0]), captures[1], captures[2], base0, base1,
    1565              :  off0, off1,
    1566              : 1
    1567              : );
    1568       116677 :       if (equal == 1
    1569              : )
    1570              :         {
    1571       100909 :           if (cmp == EQ_EXPR && (known_eq (off0, off1) || known_ne (off0, off1))
    1572              : )
    1573              :             {
    1574         8603 :               if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail551;
    1575         8603 :               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail551;
    1576         8603 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail551;
    1577         8603 :               {
    1578         8603 :                 tree _r;
    1579         8603 :                 _r =  constant_boolean_node (known_eq (off0, off1), type);
    1580         8603 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 441, __FILE__, __LINE__, true);
    1581       102920 :                 return _r;
    1582              :               }
    1583        13757 : next_after_fail551:;
    1584              :             }
    1585              :           else
    1586              :             {
    1587        52059 :               if (cmp == NE_EXPR && (known_eq (off0, off1) || known_ne (off0, off1))
    1588              : )
    1589              :                 {
    1590        52059 :                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail552;
    1591        52059 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail552;
    1592        52059 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail552;
    1593        52059 :                   {
    1594        52059 :                     tree _r;
    1595        52059 :                     _r =  constant_boolean_node (known_ne (off0, off1), type);
    1596        52059 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 442, __FILE__, __LINE__, true);
    1597              :                     return _r;
    1598              :                   }
    1599        13757 : next_after_fail552:;
    1600              :                 }
    1601              :               else
    1602              :                 {
    1603        29141 :                   if (cmp == LT_EXPR && (known_lt (off0, off1) || known_ge (off0, off1))
    1604              : )
    1605              :                     {
    1606        29141 :                       if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail553;
    1607        29141 :                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail553;
    1608        29141 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail553;
    1609        29141 :                       {
    1610        29141 :                         tree _r;
    1611        29141 :                         _r =  constant_boolean_node (known_lt (off0, off1), type);
    1612        29141 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 443, __FILE__, __LINE__, true);
    1613              :                         return _r;
    1614              :                       }
    1615        13757 : next_after_fail553:;
    1616              :                     }
    1617              :                   else
    1618              :                     {
    1619          387 :                       if (cmp == LE_EXPR && (known_le (off0, off1) || known_gt (off0, off1))
    1620              : )
    1621              :                         {
    1622          387 :                           if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail554;
    1623          387 :                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail554;
    1624          387 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail554;
    1625          387 :                           {
    1626          387 :                             tree _r;
    1627          387 :                             _r =  constant_boolean_node (known_le (off0, off1), type);
    1628          387 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 444, __FILE__, __LINE__, true);
    1629              :                             return _r;
    1630              :                           }
    1631        13757 : next_after_fail554:;
    1632              :                         }
    1633              :                       else
    1634              :                         {
    1635         7151 :                           if (cmp == GE_EXPR && (known_ge (off0, off1) || known_lt (off0, off1))
    1636              : )
    1637              :                             {
    1638         7151 :                               if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail555;
    1639         7151 :                               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail555;
    1640         7151 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail555;
    1641         7151 :                               {
    1642         7151 :                                 tree _r;
    1643         7151 :                                 _r =  constant_boolean_node (known_ge (off0, off1), type);
    1644         7151 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 445, __FILE__, __LINE__, true);
    1645              :                                 return _r;
    1646              :                               }
    1647        13757 : next_after_fail555:;
    1648              :                             }
    1649              :                           else
    1650              :                             {
    1651         3568 :                               if (cmp == GT_EXPR && (known_gt (off0, off1) || known_le (off0, off1))
    1652              : )
    1653              :                                 {
    1654         3568 :                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail556;
    1655         3568 :                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail556;
    1656         3568 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail556;
    1657         3568 :                                   {
    1658         3568 :                                     tree _r;
    1659         3568 :                                     _r =  constant_boolean_node (known_gt (off0, off1), type);
    1660         3568 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 446, __FILE__, __LINE__, true);
    1661              :                                     return _r;
    1662              :                                   }
    1663        13757 : next_after_fail556:;
    1664              :                                 }
    1665              :                             }
    1666              :                         }
    1667              :                     }
    1668              :                 }
    1669              :             }
    1670              :         }
    1671              :       else
    1672              :         {
    1673        15768 :           if (equal == 0
    1674              : )
    1675              :             {
    1676         2011 :               if (cmp == EQ_EXPR
    1677              : )
    1678              :                 {
    1679          943 :                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail557;
    1680          943 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail557;
    1681          943 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail557;
    1682          943 :                   {
    1683          943 :                     tree _r;
    1684          943 :                     _r =  constant_boolean_node (false, type);
    1685          943 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 447, __FILE__, __LINE__, true);
    1686              :                     return _r;
    1687              :                   }
    1688        13757 : next_after_fail557:;
    1689              :                 }
    1690              :               else
    1691              :                 {
    1692         1068 :                   if (cmp == NE_EXPR
    1693              : )
    1694              :                     {
    1695         1068 :                       if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail558;
    1696         1068 :                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail558;
    1697         1068 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail558;
    1698         1068 :                       {
    1699         1068 :                         tree _r;
    1700         1068 :                         _r =  constant_boolean_node (true, type);
    1701         1068 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 448, __FILE__, __LINE__, true);
    1702              :                         return _r;
    1703              :                       }
    1704        13757 : next_after_fail558:;
    1705              :                     }
    1706              :                 }
    1707              :             }
    1708              :         }
    1709              :   }
    1710        13757 :   return NULL_TREE;
    1711              : }
    1712              : 
    1713              : tree
    1714            0 : generic_simplify_319 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1715              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1716              :  const enum tree_code ARG_UNUSED (cmp))
    1717              : {
    1718            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1719            0 :   if (VECTOR_MODE_P (TYPE_MODE (TREE_TYPE (captures[0])))
    1720            0 :  && can_compare_p (cmp == EQ_EXPR ? EQ : NE, TYPE_MODE (TREE_TYPE (captures[0])),
    1721              :  ccp_jump)
    1722              : )
    1723              :     {
    1724            0 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail590;
    1725            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail590;
    1726            0 :       {
    1727            0 :         tree res_op0;
    1728            0 :         res_op0 = captures[0];
    1729            0 :         tree res_op1;
    1730            0 :         res_op1 =  build_zero_cst (TREE_TYPE (captures[0]));
    1731            0 :         tree _r;
    1732            0 :         _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1733            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 480, __FILE__, __LINE__, true);
    1734              :         return _r;
    1735              :       }
    1736            0 : next_after_fail590:;
    1737              :     }
    1738              :   return NULL_TREE;
    1739              : }
    1740              : 
    1741              : tree
    1742            0 : generic_simplify_324 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1743              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1744              :  const combined_fn ARG_UNUSED (copysigns))
    1745              : {
    1746            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1747            0 :   if (!REAL_VALUE_NEGATIVE (TREE_REAL_CST (captures[1]))
    1748              : )
    1749              :     {
    1750            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail596;
    1751            0 :       {
    1752            0 :         tree res_op0;
    1753            0 :         res_op0 = captures[0];
    1754            0 :         tree _r;
    1755            0 :         _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
    1756            0 :         if (TREE_SIDE_EFFECTS (captures[1]))
    1757            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1758            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 486, __FILE__, __LINE__, true);
    1759              :         return _r;
    1760              :       }
    1761            0 : next_after_fail596:;
    1762              :     }
    1763              :   return NULL_TREE;
    1764              : }
    1765              : 
    1766              : tree
    1767            0 : generic_simplify_328 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1768              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1769              :  const combined_fn ARG_UNUSED (COPYSIGN_ALL))
    1770              : {
    1771            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1772            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail600;
    1773            0 :   {
    1774            0 :     tree res_op0;
    1775            0 :     res_op0 = captures[0];
    1776            0 :     tree _r;
    1777            0 :     _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
    1778            0 :     if (TREE_SIDE_EFFECTS (captures[1]))
    1779            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1780            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 490, __FILE__, __LINE__, true);
    1781              :     return _r;
    1782              :   }
    1783            0 : next_after_fail600:;
    1784            0 :   return NULL_TREE;
    1785              : }
    1786              : 
    1787              : tree
    1788            1 : generic_simplify_335 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1789              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1790              :  const enum tree_code ARG_UNUSED (div))
    1791              : {
    1792            1 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1793            1 :   if (INTEGRAL_TYPE_P (type)
    1794            1 :  && TYPE_OVERFLOW_UNDEFINED (type)
    1795            1 :  && !integer_zerop (captures[0])
    1796            2 :  && (!flag_non_call_exceptions || tree_expr_nonzero_p (captures[0]))
    1797              : )
    1798              :     {
    1799            1 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail609;
    1800            1 :       {
    1801            1 :         tree res_op0;
    1802            1 :         {
    1803            1 :           tree _o1[2], _r1;
    1804            1 :           _o1[0] = captures[0];
    1805            1 :           _o1[1] =  build_zero_cst (type);
    1806            1 :           _r1 = fold_build2_loc (loc, LT_EXPR, boolean_type_node, _o1[0], _o1[1]);
    1807            1 :           res_op0 = _r1;
    1808              :         }
    1809            1 :         tree res_op1;
    1810            1 :         res_op1 =  build_minus_one_cst (type);
    1811            1 :         tree res_op2;
    1812            1 :         res_op2 =  build_one_cst (type);
    1813            1 :         tree _r;
    1814            1 :         _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
    1815            1 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 497, __FILE__, __LINE__, true);
    1816              :         return _r;
    1817              :       }
    1818            0 : next_after_fail609:;
    1819              :     }
    1820              :   return NULL_TREE;
    1821              : }
    1822              : 
    1823              : tree
    1824      2251868 : generic_simplify_342 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1825              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1826              :  const enum tree_code ARG_UNUSED (floor_divmod),
    1827              :  const enum tree_code ARG_UNUSED (trunc_divmod))
    1828              : {
    1829      2251868 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1830            0 :   if ((INTEGRAL_TYPE_P (type) || VECTOR_INTEGER_TYPE_P (type))
    1831      2251868 :  && TYPE_UNSIGNED (type)
    1832              : )
    1833              :     {
    1834      2242736 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail617;
    1835      2242736 :       {
    1836      2242736 :         tree res_op0;
    1837      2242736 :         res_op0 = captures[0];
    1838      2242736 :         tree res_op1;
    1839      2242736 :         res_op1 = captures[1];
    1840      2242736 :         tree _r;
    1841      2242736 :         _r = fold_build2_loc (loc, trunc_divmod, type, res_op0, res_op1);
    1842      2242736 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 505, __FILE__, __LINE__, true);
    1843              :         return _r;
    1844              :       }
    1845            0 : next_after_fail617:;
    1846              :     }
    1847              :   return NULL_TREE;
    1848              : }
    1849              : 
    1850              : tree
    1851          534 : generic_simplify_350 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1852              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1853              :  const enum tree_code ARG_UNUSED (mod))
    1854              : {
    1855          534 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1856          534 :   if (ANY_INTEGRAL_TYPE_P (type)
    1857              : )
    1858              :     {
    1859          534 :       if (TYPE_OVERFLOW_UNDEFINED (type) && !TYPE_OVERFLOW_SANITIZED (type)
    1860              : )
    1861              :         {
    1862            1 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail625;
    1863            1 :           {
    1864            1 :             tree _r;
    1865            1 :             _r =  build_zero_cst (type);
    1866            1 :             if (TREE_SIDE_EFFECTS (captures[1]))
    1867            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1868            1 :             if (TREE_SIDE_EFFECTS (captures[2]))
    1869            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1870            1 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 513, __FILE__, __LINE__, true);
    1871              :             return _r;
    1872              :           }
    1873            0 : next_after_fail625:;
    1874              :         }
    1875              :     }
    1876              :   return NULL_TREE;
    1877              : }
    1878              : 
    1879              : tree
    1880           24 : generic_simplify_361 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1881              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1882              :  const combined_fn ARG_UNUSED (POW))
    1883              : {
    1884           24 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1885           24 :   if (flag_unsafe_math_optimizations && canonicalize_math_p ()
    1886              : )
    1887              :     {
    1888            6 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail638;
    1889            6 :       {
    1890            6 :         tree res_op0;
    1891            6 :         res_op0 = captures[0];
    1892            6 :         tree res_op1;
    1893            6 :         {
    1894            6 :           tree _o1[2], _r1;
    1895            6 :           _o1[0] = captures[2];
    1896            6 :           {
    1897            6 :             tree _o2[1], _r2;
    1898            6 :             _o2[0] = captures[3];
    1899            6 :             _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
    1900            6 :             _o1[1] = _r2;
    1901              :           }
    1902            6 :           _r1 = maybe_build_call_expr_loc (loc, POW, TREE_TYPE (_o1[0]), 2, _o1[0], _o1[1]);
    1903            6 :           if (!_r1)
    1904            0 :             goto next_after_fail638;
    1905            6 :           res_op1 = _r1;
    1906              :         }
    1907            6 :         tree _r;
    1908            6 :         _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    1909            6 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 526, __FILE__, __LINE__, true);
    1910              :         return _r;
    1911              :       }
    1912           24 : next_after_fail638:;
    1913              :     }
    1914              :   return NULL_TREE;
    1915              : }
    1916              : 
    1917              : tree
    1918            0 : generic_simplify_370 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1919              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    1920              :  const enum tree_code ARG_UNUSED (cmp))
    1921              : {
    1922            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1923            0 :   if (INTEGRAL_TYPE_P (type)
    1924              : )
    1925              :     {
    1926            0 :       if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail653;
    1927            0 :       if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail653;
    1928            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail653;
    1929            0 :       {
    1930            0 :         tree res_op0;
    1931            0 :         res_op0 = captures[0];
    1932            0 :         tree res_op1;
    1933            0 :         res_op1 = captures[1];
    1934            0 :         tree _r;
    1935            0 :         _r = fold_build2_loc (loc, MAX_EXPR, type, res_op0, res_op1);
    1936            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 541, __FILE__, __LINE__, true);
    1937              :         return _r;
    1938              :       }
    1939            0 : next_after_fail653:;
    1940              :     }
    1941              :   return NULL_TREE;
    1942              : }
    1943              : 
    1944              : tree
    1945            0 : generic_simplify_374 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1946              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    1947              :  const enum tree_code ARG_UNUSED (op))
    1948              : {
    1949            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1950            0 :   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail657;
    1951            0 :   if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail657;
    1952            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail657;
    1953            0 :   {
    1954            0 :     tree _r;
    1955            0 :     _r = captures[2];
    1956            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 545, __FILE__, __LINE__, true);
    1957              :     return _r;
    1958              :   }
    1959            0 : next_after_fail657:;
    1960              :   return NULL_TREE;
    1961              : }
    1962              : 
    1963              : tree
    1964            0 : generic_simplify_378 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1965              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    1966              :  const enum tree_code ARG_UNUSED (neeq))
    1967              : {
    1968            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1969            0 :   if (neeq == NE_EXPR
    1970              : )
    1971              :     {
    1972            0 :       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail662;
    1973            0 :       if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail662;
    1974            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail662;
    1975            0 :       {
    1976            0 :         tree _r;
    1977            0 :         _r = captures[3];
    1978            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 550, __FILE__, __LINE__, true);
    1979              :         return _r;
    1980              :       }
    1981            0 : next_after_fail662:;
    1982              :     }
    1983              :   else
    1984              :     {
    1985            0 :       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail663;
    1986            0 :       if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail663;
    1987            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail663;
    1988            0 :       {
    1989            0 :         tree _r;
    1990            0 :         _r = captures[0];
    1991            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 551, __FILE__, __LINE__, true);
    1992              :         return _r;
    1993              :       }
    1994            0 : next_after_fail663:;
    1995              :     }
    1996              :   return NULL_TREE;
    1997              : }
    1998              : 
    1999              : tree
    2000            0 : generic_simplify_387 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2001              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    2002              :  const enum tree_code ARG_UNUSED (op))
    2003              : {
    2004            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2005            0 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail674;
    2006            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail674;
    2007            0 :   {
    2008            0 :     tree _r;
    2009            0 :     _r = captures[2];
    2010            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 562, __FILE__, __LINE__, true);
    2011              :     return _r;
    2012              :   }
    2013            0 : next_after_fail674:;
    2014              :   return NULL_TREE;
    2015              : }
    2016              : 
    2017              : tree
    2018         1664 : generic_simplify_394 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2019              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
    2020              : {
    2021         1664 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2022         1664 :   if (INTEGRAL_TYPE_P (type)
    2023              : )
    2024              :     {
    2025         1664 :       {
    2026         1664 :  tree itype = TREE_TYPE (captures[2]);
    2027         1664 :           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail682;
    2028         1664 :           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail682;
    2029         1664 :           if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail682;
    2030         1664 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail682;
    2031         1664 :           {
    2032         1664 :             tree res_op0;
    2033         1664 :             {
    2034         1664 :               tree _o1[2], _r1;
    2035         1664 :               _o1[0] = captures[2];
    2036         1664 :               {
    2037         1664 :                 tree _o2[1], _r2;
    2038         1664 :                 _o2[0] = captures[0];
    2039         1664 :                 if (TREE_TYPE (_o2[0]) != itype)
    2040              :                   {
    2041         1663 :                     _r2 = fold_build1_loc (loc, NOP_EXPR, itype, _o2[0]);
    2042              :                   }
    2043              :                 else
    2044              :                   _r2 = _o2[0];
    2045         1664 :                 _o1[1] = _r2;
    2046              :               }
    2047         1664 :               _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2048         1664 :               res_op0 = _r1;
    2049              :             }
    2050         1664 :             tree _r;
    2051         1664 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    2052         1664 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 569, __FILE__, __LINE__, true);
    2053              :             return _r;
    2054              :           }
    2055         1664 : next_after_fail682:;
    2056              :       }
    2057              :     }
    2058              :   return NULL_TREE;
    2059              : }
    2060              : 
    2061              : tree
    2062       488376 : generic_simplify_403 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2063              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2064              :  const enum tree_code ARG_UNUSED (op))
    2065              : {
    2066       488376 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2067       976751 :   if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    2068       976664 :  && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))
    2069       302855 :  && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[1]))
    2070       976708 :  && (CONSTANT_CLASS_P (captures[1]) || single_use (captures[0]))
    2071              : )
    2072              :     {
    2073       302782 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail695;
    2074       302782 :       {
    2075       302782 :         tree res_op0;
    2076       302782 :         res_op0 = captures[1];
    2077       302782 :         tree res_op1;
    2078       302782 :         res_op1 =  build_zero_cst (TREE_TYPE (captures[1]));
    2079       302782 :         tree _r;
    2080       302782 :         _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
    2081       302782 :         if (TREE_SIDE_EFFECTS (captures[2]))
    2082            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2083       302782 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 581, __FILE__, __LINE__, true);
    2084              :         return _r;
    2085              :       }
    2086            0 : next_after_fail695:;
    2087              :     }
    2088              :   return NULL_TREE;
    2089              : }
    2090              : 
    2091              : tree
    2092           10 : generic_simplify_411 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2093              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2094              :  const enum tree_code ARG_UNUSED (cmp),
    2095              :  const enum tree_code ARG_UNUSED (op))
    2096              : {
    2097           10 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2098           10 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail704;
    2099           10 :   {
    2100           10 :     tree res_op0;
    2101           10 :     res_op0 = captures[0];
    2102           10 :     tree res_op1;
    2103           10 :     res_op1 = captures[2];
    2104           10 :     tree _r;
    2105           10 :     _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    2106           10 :     if (TREE_SIDE_EFFECTS (captures[1]))
    2107            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2108           10 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 590, __FILE__, __LINE__, true);
    2109              :     return _r;
    2110              :   }
    2111            0 : next_after_fail704:;
    2112            0 :   return NULL_TREE;
    2113              : }
    2114              : 
    2115              : tree
    2116     22909863 : generic_simplify_419 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2117              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2118              :  const enum tree_code ARG_UNUSED (cmp))
    2119              : {
    2120     22909863 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2121     45813207 :   if ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
    2122        12106 :  || POINTER_TYPE_P (TREE_TYPE (captures[2]))
    2123         3262 :  || VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[2])))
    2124     45813207 :  && tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
    2125              : )
    2126              :     {
    2127     22909863 :       {
    2128     22909863 :  tree cst = uniform_integer_cst_p (captures[2]);
    2129     22909863 :  tree arg1_type = TREE_TYPE (cst);
    2130     22909863 :  unsigned int prec = TYPE_PRECISION (arg1_type);
    2131     22909863 :  wide_int max = wi::max_value (arg1_type);
    2132     22909863 :  wide_int signed_max = wi::max_value (prec, SIGNED);
    2133     22909863 :  wide_int min = wi::min_value (arg1_type);
    2134     22909863 :           if (wi::to_wide (cst) == max
    2135              : )
    2136              :             {
    2137       185724 :               if (cmp == GT_EXPR
    2138              : )
    2139              :                 {
    2140       129707 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail729;
    2141       129707 :                   {
    2142       129707 :                     tree _r;
    2143       129707 :                     _r =  constant_boolean_node (false, type);
    2144       129707 :                     if (TREE_SIDE_EFFECTS (captures[0]))
    2145           80 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    2146       129707 :                     if (TREE_SIDE_EFFECTS (captures[2]))
    2147            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2148       129707 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 599, __FILE__, __LINE__, true);
    2149              :                     return _r;
    2150              :                   }
    2151            0 : next_after_fail729:;
    2152              :                 }
    2153              :               else
    2154              :                 {
    2155        56017 :                   if (cmp == GE_EXPR
    2156              : )
    2157              :                     {
    2158            7 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail730;
    2159            7 :                       {
    2160            7 :                         tree res_op0;
    2161            7 :                         res_op0 = captures[0];
    2162            7 :                         tree res_op1;
    2163            7 :                         res_op1 = captures[2];
    2164            7 :                         tree _r;
    2165            7 :                         _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
    2166            7 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 600, __FILE__, __LINE__, true);
    2167              :                         return _r;
    2168              :                       }
    2169            0 : next_after_fail730:;
    2170              :                     }
    2171              :                   else
    2172              :                     {
    2173        56010 :                       if (cmp == LE_EXPR
    2174              : )
    2175              :                         {
    2176        56000 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail731;
    2177        56000 :                           {
    2178        56000 :                             tree _r;
    2179        56000 :                             _r =  constant_boolean_node (true, type);
    2180        56000 :                             if (TREE_SIDE_EFFECTS (captures[0]))
    2181           23 :                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    2182        56000 :                             if (TREE_SIDE_EFFECTS (captures[2]))
    2183            0 :                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2184        56000 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 601, __FILE__, __LINE__, true);
    2185              :                             return _r;
    2186              :                           }
    2187            0 : next_after_fail731:;
    2188              :                         }
    2189              :                       else
    2190              :                         {
    2191           10 :                           if (cmp == LT_EXPR
    2192              : )
    2193              :                             {
    2194           10 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail732;
    2195           10 :                               {
    2196           10 :                                 tree res_op0;
    2197           10 :                                 res_op0 = captures[0];
    2198           10 :                                 tree res_op1;
    2199           10 :                                 res_op1 = captures[2];
    2200           10 :                                 tree _r;
    2201           10 :                                 _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    2202           10 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 602, __FILE__, __LINE__, true);
    2203              :                                 return _r;
    2204              :                               }
    2205            0 : next_after_fail732:;
    2206              :                             }
    2207              :                         }
    2208              :                     }
    2209              :                 }
    2210              :             }
    2211              :           else
    2212              :             {
    2213     22724139 :               if (wi::to_wide (cst) == min
    2214              : )
    2215              :                 {
    2216      1378658 :                   if (cmp == LT_EXPR
    2217              : )
    2218              :                     {
    2219       430498 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail733;
    2220       430498 :                       {
    2221       430498 :                         tree _r;
    2222       430498 :                         _r =  constant_boolean_node (false, type);
    2223       430498 :                         if (TREE_SIDE_EFFECTS (captures[0]))
    2224           65 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    2225       430498 :                         if (TREE_SIDE_EFFECTS (captures[2]))
    2226            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2227       430498 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 603, __FILE__, __LINE__, true);
    2228              :                         return _r;
    2229              :                       }
    2230            0 : next_after_fail733:;
    2231              :                     }
    2232              :                   else
    2233              :                     {
    2234       948160 :                       if (cmp == LE_EXPR
    2235              : )
    2236              :                         {
    2237        92699 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail734;
    2238        92699 :                           {
    2239        92699 :                             tree res_op0;
    2240        92699 :                             res_op0 = captures[0];
    2241        92699 :                             tree res_op1;
    2242        92699 :                             res_op1 = captures[2];
    2243        92699 :                             tree _r;
    2244        92699 :                             _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
    2245        92699 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 604, __FILE__, __LINE__, true);
    2246              :                             return _r;
    2247              :                           }
    2248            0 : next_after_fail734:;
    2249              :                         }
    2250              :                       else
    2251              :                         {
    2252       855461 :                           if (cmp == GE_EXPR
    2253              : )
    2254              :                             {
    2255       247554 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail735;
    2256       247554 :                               {
    2257       247554 :                                 tree _r;
    2258       247554 :                                 _r =  constant_boolean_node (true, type);
    2259       247554 :                                 if (TREE_SIDE_EFFECTS (captures[0]))
    2260          505 :                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    2261       247554 :                                 if (TREE_SIDE_EFFECTS (captures[2]))
    2262            0 :                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2263       247554 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 605, __FILE__, __LINE__, true);
    2264              :                                 return _r;
    2265              :                               }
    2266            0 : next_after_fail735:;
    2267              :                             }
    2268              :                           else
    2269              :                             {
    2270       607907 :                               if (cmp == GT_EXPR
    2271              : )
    2272              :                                 {
    2273       607907 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail736;
    2274       607907 :                                   {
    2275       607907 :                                     tree res_op0;
    2276       607907 :                                     res_op0 = captures[0];
    2277       607907 :                                     tree res_op1;
    2278       607907 :                                     res_op1 = captures[2];
    2279       607907 :                                     tree _r;
    2280       607907 :                                     _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    2281       607907 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 606, __FILE__, __LINE__, true);
    2282              :                                     return _r;
    2283              :                                   }
    2284            0 : next_after_fail736:;
    2285              :                                 }
    2286              :                             }
    2287              :                         }
    2288              :                     }
    2289              :                 }
    2290              :               else
    2291              :                 {
    2292     21345489 :                   if (wi::to_wide (cst) == max - 1
    2293              : )
    2294              :                     {
    2295       394135 :                       if (cmp == GT_EXPR
    2296              : )
    2297              :                         {
    2298       154976 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail737;
    2299       154976 :                           {
    2300       154976 :                             tree res_op0;
    2301       154976 :                             res_op0 = captures[0];
    2302       154976 :                             tree res_op1;
    2303       154976 :                             res_op1 =  build_uniform_cst (TREE_TYPE (captures[2]),
    2304       154976 :  wide_int_to_tree (TREE_TYPE (cst),
    2305       154976 :  wi::to_wide (cst)
    2306       309952 :  + 1));
    2307       154976 :                             tree _r;
    2308       154976 :                             _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
    2309       154976 :                             if (TREE_SIDE_EFFECTS (captures[2]))
    2310            0 :                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2311       154976 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 607, __FILE__, __LINE__, true);
    2312              :                             return _r;
    2313              :                           }
    2314            0 : next_after_fail737:;
    2315              :                         }
    2316              :                       else
    2317              :                         {
    2318       239159 :                           if (cmp == LE_EXPR
    2319              : )
    2320              :                             {
    2321       239159 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail738;
    2322       239159 :                               {
    2323       239159 :                                 tree res_op0;
    2324       239159 :                                 res_op0 = captures[0];
    2325       239159 :                                 tree res_op1;
    2326       239159 :                                 res_op1 =  build_uniform_cst (TREE_TYPE (captures[2]),
    2327       239159 :  wide_int_to_tree (TREE_TYPE (cst),
    2328       239159 :  wi::to_wide (cst)
    2329       478318 :  + 1));
    2330       239159 :                                 tree _r;
    2331       239159 :                                 _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    2332       239159 :                                 if (TREE_SIDE_EFFECTS (captures[2]))
    2333            0 :                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2334       239159 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 608, __FILE__, __LINE__, true);
    2335              :                                 return _r;
    2336              :                               }
    2337            0 : next_after_fail738:;
    2338              :                             }
    2339              :                         }
    2340              :                     }
    2341              :                   else
    2342              :                     {
    2343     20951351 :                       if (wi::to_wide (cst) == min + 1
    2344              : )
    2345              :                         {
    2346       738924 :                           if (cmp == GE_EXPR
    2347              : )
    2348              :                             {
    2349        60552 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail739;
    2350        60552 :                               {
    2351        60552 :                                 tree res_op0;
    2352        60552 :                                 res_op0 = captures[0];
    2353        60552 :                                 tree res_op1;
    2354        60552 :                                 res_op1 =  build_uniform_cst (TREE_TYPE (captures[2]),
    2355        60552 :  wide_int_to_tree (TREE_TYPE (cst),
    2356        60552 :  wi::to_wide (cst)
    2357       121104 :  - 1));
    2358        60552 :                                 tree _r;
    2359        60552 :                                 _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    2360        60552 :                                 if (TREE_SIDE_EFFECTS (captures[2]))
    2361            0 :                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2362        60552 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 609, __FILE__, __LINE__, true);
    2363              :                                 return _r;
    2364              :                               }
    2365            0 : next_after_fail739:;
    2366              :                             }
    2367              :                           else
    2368              :                             {
    2369       678372 :                               if (cmp == LT_EXPR
    2370              : )
    2371              :                                 {
    2372        23527 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail740;
    2373        23527 :                                   {
    2374        23527 :                                     tree res_op0;
    2375        23527 :                                     res_op0 = captures[0];
    2376        23527 :                                     tree res_op1;
    2377        23527 :                                     res_op1 =  build_uniform_cst (TREE_TYPE (captures[2]),
    2378        23527 :  wide_int_to_tree (TREE_TYPE (cst),
    2379        23527 :  wi::to_wide (cst)
    2380        47054 :  - 1));
    2381        23527 :                                     tree _r;
    2382        23527 :                                     _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
    2383        23527 :                                     if (TREE_SIDE_EFFECTS (captures[2]))
    2384            0 :                                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2385        23527 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 610, __FILE__, __LINE__, true);
    2386              :                                     return _r;
    2387              :                                   }
    2388            0 : next_after_fail740:;
    2389              :                                 }
    2390              :                             }
    2391              :                         }
    2392              :                       else
    2393              :                         {
    2394     20212422 :                           if (wi::to_wide (cst) == signed_max
    2395       172792 :  && TYPE_UNSIGNED (arg1_type)
    2396       172792 :  && TYPE_MODE (arg1_type) != BLKmode
    2397     20212429 :  && prec == GET_MODE_PRECISION (SCALAR_INT_TYPE_MODE (arg1_type))
    2398     20384665 :  && INTEGRAL_TYPE_P (arg1_type)
    2399              : )
    2400              :                             {
    2401       172236 :                               if (cmp == LE_EXPR || cmp == GT_EXPR
    2402              : )
    2403              :                                 {
    2404       172236 :                                   {
    2405       172236 :  tree st = signed_type_for (TREE_TYPE (captures[2]));
    2406       172236 :                                       if (cst == captures[2] && cmp == LE_EXPR
    2407              : )
    2408              :                                         {
    2409        25810 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail741;
    2410        25810 :                                           {
    2411        25810 :                                             tree res_op0;
    2412        25810 :                                             {
    2413        25810 :                                               tree _o1[1], _r1;
    2414        25810 :                                               _o1[0] = captures[1];
    2415        25810 :                                               if (TREE_TYPE (_o1[0]) != st)
    2416              :                                                 {
    2417        25810 :                                                   _r1 = fold_build1_loc (loc, NOP_EXPR, st, _o1[0]);
    2418              :                                                 }
    2419              :                                               else
    2420              :                                                 _r1 = _o1[0];
    2421        25810 :                                               res_op0 = _r1;
    2422              :                                             }
    2423        25810 :                                             tree res_op1;
    2424        25810 :                                             res_op1 =  build_zero_cst (st);
    2425        25810 :                                             tree _r;
    2426        25810 :                                             _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
    2427        25810 :                                             if (TREE_SIDE_EFFECTS (captures[2]))
    2428            0 :                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2429        25810 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 611, __FILE__, __LINE__, true);
    2430              :                                             return _r;
    2431              :                                           }
    2432            0 : next_after_fail741:;
    2433            0 :                                         }
    2434              :                                       else
    2435              :                                         {
    2436       146426 :                                           if (cst == captures[2] && cmp == GT_EXPR
    2437              : )
    2438              :                                             {
    2439       146340 :                                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail742;
    2440       146340 :                                               {
    2441       146340 :                                                 tree res_op0;
    2442       146340 :                                                 {
    2443       146340 :                                                   tree _o1[1], _r1;
    2444       146340 :                                                   _o1[0] = captures[1];
    2445       146340 :                                                   if (TREE_TYPE (_o1[0]) != st)
    2446              :                                                     {
    2447       146340 :                                                       _r1 = fold_build1_loc (loc, NOP_EXPR, st, _o1[0]);
    2448              :                                                     }
    2449              :                                                   else
    2450              :                                                     _r1 = _o1[0];
    2451       146340 :                                                   res_op0 = _r1;
    2452              :                                                 }
    2453       146340 :                                                 tree res_op1;
    2454       146340 :                                                 res_op1 =  build_zero_cst (st);
    2455       146340 :                                                 tree _r;
    2456       146340 :                                                 _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
    2457       146340 :                                                 if (TREE_SIDE_EFFECTS (captures[2]))
    2458            0 :                                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2459       146340 :                                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 612, __FILE__, __LINE__, true);
    2460              :                                                 return _r;
    2461              :                                               }
    2462            0 : next_after_fail742:;
    2463            0 :                                             }
    2464              :                                           else
    2465              :                                             {
    2466           86 :                                               if (cmp == LE_EXPR
    2467              : )
    2468              :                                                 {
    2469           30 :                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail743;
    2470           30 :                                                   {
    2471           30 :                                                     tree res_op0;
    2472           30 :                                                     {
    2473           30 :                                                       tree _o1[1], _r1;
    2474           30 :                                                       _o1[0] = captures[1];
    2475           30 :                                                       if (TREE_TYPE (_o1[0]) != st)
    2476              :                                                         {
    2477           30 :                                                           _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, st, _o1[0]);
    2478              :                                                         }
    2479              :                                                       else
    2480              :                                                         _r1 = _o1[0];
    2481           30 :                                                       res_op0 = _r1;
    2482              :                                                     }
    2483           30 :                                                     tree res_op1;
    2484           30 :                                                     res_op1 =  build_zero_cst (st);
    2485           30 :                                                     tree _r;
    2486           30 :                                                     _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
    2487           30 :                                                     if (TREE_SIDE_EFFECTS (captures[2]))
    2488            0 :                                                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2489           30 :                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 613, __FILE__, __LINE__, true);
    2490              :                                                     return _r;
    2491              :                                                   }
    2492            0 : next_after_fail743:;
    2493              :                                                 }
    2494              :                                               else
    2495              :                                                 {
    2496           56 :                                                   if (cmp == GT_EXPR
    2497              : )
    2498              :                                                     {
    2499           56 :                                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail744;
    2500           56 :                                                       {
    2501           56 :                                                         tree res_op0;
    2502           56 :                                                         {
    2503           56 :                                                           tree _o1[1], _r1;
    2504           56 :                                                           _o1[0] = captures[1];
    2505           56 :                                                           if (TREE_TYPE (_o1[0]) != st)
    2506              :                                                             {
    2507           56 :                                                               _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, st, _o1[0]);
    2508              :                                                             }
    2509              :                                                           else
    2510              :                                                             _r1 = _o1[0];
    2511           56 :                                                           res_op0 = _r1;
    2512              :                                                         }
    2513           56 :                                                         tree res_op1;
    2514           56 :                                                         res_op1 =  build_zero_cst (st);
    2515           56 :                                                         tree _r;
    2516           56 :                                                         _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
    2517           56 :                                                         if (TREE_SIDE_EFFECTS (captures[2]))
    2518            0 :                                                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2519           56 :                                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 614, __FILE__, __LINE__, true);
    2520              :                                                         return _r;
    2521              :                                                       }
    2522            0 : next_after_fail744:;
    2523              :                                                     }
    2524              :                                                 }
    2525              :                                             }
    2526              :                                         }
    2527              :                                   }
    2528              :                                 }
    2529              :                             }
    2530              :                         }
    2531              :                     }
    2532              :                 }
    2533              :             }
    2534     22909881 :       }
    2535              :     }
    2536              :   return NULL_TREE;
    2537              : }
    2538              : 
    2539              : tree
    2540      5341119 : generic_simplify_478 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2541              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    2542              : {
    2543      5341119 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2544      5341119 :   {
    2545      5341119 :  bool wascmp;
    2546      5341119 :       if (types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
    2547      5341119 :  && bitwise_inverted_equal_p (captures[0], captures[1], wascmp)
    2548              : )
    2549              :         {
    2550          115 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail836;
    2551          115 :           {
    2552          115 :             tree _r;
    2553          115 :             _r =  wascmp ? constant_boolean_node (false, type) : build_zero_cst (type);
    2554          115 :             if (TREE_SIDE_EFFECTS (captures[0]))
    2555            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    2556          115 :             if (TREE_SIDE_EFFECTS (captures[1]))
    2557            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2558          115 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 687, __FILE__, __LINE__, true);
    2559          115 :             return _r;
    2560              :           }
    2561            0 : next_after_fail836:;
    2562              :         }
    2563              :   }
    2564      5341004 :   return NULL_TREE;
    2565              : }
    2566              : 
    2567              : tree
    2568           82 : generic_simplify_486 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2569              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2570              :  const enum tree_code ARG_UNUSED (bitop),
    2571              :  const enum tree_code ARG_UNUSED (op))
    2572              : {
    2573           82 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2574           82 :   {
    2575           82 :  tree pmop[2];
    2576           82 :  tree utype = fold_bit_and_mask (TREE_TYPE (captures[1]), captures[5], op, captures[1], bitop,
    2577              :  captures[2], captures[3], captures[4], ERROR_MARK, NULL_TREE,
    2578              :  NULL_TREE, pmop);
    2579           82 :       if (utype
    2580              : )
    2581              :         {
    2582           22 :           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail844;
    2583           22 :           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail844;
    2584           22 :           if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail844;
    2585           22 :           if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail844;
    2586           22 :           if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail844;
    2587           22 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail844;
    2588           22 :           {
    2589           22 :             tree res_op0;
    2590           22 :             {
    2591           22 :               tree _o1[2], _r1;
    2592           22 :               {
    2593           22 :                 tree _o2[2], _r2;
    2594           22 :                 {
    2595           22 :                   tree _o3[1], _r3;
    2596           22 :                   _o3[0] =  pmop[0];
    2597           22 :                   if (TREE_TYPE (_o3[0]) != utype)
    2598              :                     {
    2599           10 :                       _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
    2600              :                     }
    2601              :                   else
    2602              :                     _r3 = _o3[0];
    2603           22 :                   _o2[0] = _r3;
    2604              :                 }
    2605           22 :                 {
    2606           22 :                   tree _o3[1], _r3;
    2607           22 :                   _o3[0] =  pmop[1];
    2608           22 :                   if (TREE_TYPE (_o3[0]) != utype)
    2609              :                     {
    2610           10 :                       _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
    2611              :                     }
    2612              :                   else
    2613              :                     _r3 = _o3[0];
    2614           22 :                   _o2[1] = _r3;
    2615              :                 }
    2616           22 :                 _r2 = fold_build2_loc (loc, op, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    2617           22 :                 _o1[0] = _r2;
    2618              :               }
    2619           22 :               {
    2620           22 :                 tree _o2[1], _r2;
    2621           22 :                 _o2[0] = captures[5];
    2622           22 :                 if (TREE_TYPE (_o2[0]) != utype)
    2623              :                   {
    2624           10 :                     _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
    2625              :                   }
    2626              :                 else
    2627              :                   _r2 = _o2[0];
    2628           22 :                 _o1[1] = _r2;
    2629              :               }
    2630           22 :               _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2631           22 :               res_op0 = _r1;
    2632              :             }
    2633           22 :             tree _r;
    2634           22 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    2635           22 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 694, __FILE__, __LINE__, true);
    2636           22 :             return _r;
    2637              :           }
    2638           60 : next_after_fail844:;
    2639              :         }
    2640              :   }
    2641           60 :   return NULL_TREE;
    2642              : }
    2643              : 
    2644              : tree
    2645          202 : generic_simplify_502 (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 (code2),
    2648              :  const enum tree_code ARG_UNUSED (code1))
    2649              : {
    2650          202 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2651          202 :   if ((TREE_CODE (captures[2]) == INTEGER_CST
    2652            2 :  && TREE_CODE (captures[5]) == INTEGER_CST)
    2653          202 :  || ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
    2654            0 :  || ((VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[2]))
    2655            0 :  || VECTOR_BOOLEAN_TYPE_P (TREE_TYPE (captures[2])))
    2656            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, code2))
    2657            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[2])))
    2658          200 :  && bitwise_equal_p (captures[2], captures[5]))
    2659              : )
    2660              :     {
    2661            2 :       {
    2662            2 :  bool one_before = false;
    2663            2 :  bool one_after = false;
    2664            2 :  int cmp = 0;
    2665            2 :  bool allbits = true;
    2666            2 :  if (TREE_CODE (captures[2]) == INTEGER_CST
    2667            2 :  && TREE_CODE (captures[5]) == INTEGER_CST)
    2668              :  {
    2669            2 :  allbits = TYPE_PRECISION (TREE_TYPE (captures[2])) <= TYPE_PRECISION (TREE_TYPE (captures[5]));
    2670            2 :  auto t1 = wi::to_wide (fold_convert (TREE_TYPE (captures[5]), captures[2]));
    2671            2 :  auto t2 = wi::to_wide (captures[5]);
    2672            2 :  cmp = wi::cmp (t1, t2, TYPE_SIGN (TREE_TYPE (captures[5])));
    2673            2 :  if (cmp < 0
    2674            2 :  && t1 == t2 - 1)
    2675              :  one_before = true;
    2676            2 :  if (cmp > 0
    2677            2 :  && t1 == t2 + 1)
    2678              :  one_after = true;
    2679              :  }
    2680            2 :  bool val;
    2681            2 :  switch (code2)
    2682              :  {
    2683            0 :  case EQ_EXPR: val = (cmp == 0); break;
    2684            2 :  case NE_EXPR: val = (cmp != 0); break;
    2685            0 :  case LT_EXPR: val = (cmp < 0); break;
    2686            0 :  case GT_EXPR: val = (cmp > 0); break;
    2687            0 :  case LE_EXPR: val = (cmp <= 0); break;
    2688            0 :  case GE_EXPR: val = (cmp >= 0); break;
    2689            0 :  default: gcc_unreachable ();
    2690              :  }
    2691            2 :           if (code1 == EQ_EXPR && val
    2692              : )
    2693              :             {
    2694            0 :               if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail868;
    2695            0 :               if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail868;
    2696            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail868;
    2697            0 :               {
    2698            0 :                 tree _r;
    2699            0 :                 _r = captures[0];
    2700            0 :                 if (TREE_SIDE_EFFECTS (captures[4]))
    2701            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
    2702            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 710, __FILE__, __LINE__, true);
    2703              :                 return _r;
    2704              :               }
    2705          202 : next_after_fail868:;
    2706              :             }
    2707              :           else
    2708              :             {
    2709            2 :               if (code1 == EQ_EXPR && !val
    2710              : )
    2711              :                 {
    2712            0 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail869;
    2713            0 :                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail869;
    2714            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail869;
    2715            0 :                   {
    2716            0 :                     tree _r;
    2717            0 :                     _r =  constant_boolean_node (false, type);
    2718            0 :                     if (TREE_SIDE_EFFECTS (captures[4]))
    2719            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
    2720            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 711, __FILE__, __LINE__, true);
    2721              :                     return _r;
    2722              :                   }
    2723          202 : next_after_fail869:;
    2724              :                 }
    2725              :               else
    2726              :                 {
    2727            2 :                   if (code1 == NE_EXPR && !val && allbits
    2728              : )
    2729              :                     {
    2730            0 :                       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail870;
    2731            0 :                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail870;
    2732            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail870;
    2733            0 :                       {
    2734            0 :                         tree _r;
    2735            0 :                         _r = captures[3];
    2736            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 712, __FILE__, __LINE__, true);
    2737              :                         return _r;
    2738              :                       }
    2739          202 : next_after_fail870:;
    2740              :                     }
    2741              :                   else
    2742              :                     {
    2743            2 :                       if ((code1 == NE_EXPR
    2744            2 :  && code2 == GE_EXPR
    2745            0 :  && cmp == 0
    2746            0 :  && allbits)
    2747            2 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
    2748            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GT_EXPR))
    2749            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
    2750              : )
    2751              :                         {
    2752            0 :                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail871;
    2753            0 :                           if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail871;
    2754            0 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail871;
    2755            0 :                           {
    2756            0 :                             tree res_op0;
    2757            0 :                             res_op0 = captures[4];
    2758            0 :                             tree res_op1;
    2759            0 :                             {
    2760            0 :                               tree _o1[1], _r1;
    2761            0 :                               _o1[0] = captures[2];
    2762            0 :                               if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
    2763              :                                 {
    2764            0 :                                   _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
    2765              :                                 }
    2766              :                               else
    2767              :                                 _r1 = _o1[0];
    2768            0 :                               res_op1 = _r1;
    2769              :                             }
    2770            0 :                             tree _r;
    2771            0 :                             _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
    2772            0 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 713, __FILE__, __LINE__, true);
    2773              :                             return _r;
    2774              :                           }
    2775          202 : next_after_fail871:;
    2776              :                         }
    2777              :                       else
    2778              :                         {
    2779            2 :                           if ((code1 == NE_EXPR
    2780            2 :  && code2 == LE_EXPR
    2781            0 :  && cmp == 0
    2782            0 :  && allbits)
    2783            2 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
    2784            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LT_EXPR))
    2785            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
    2786              : )
    2787              :                             {
    2788            0 :                               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail872;
    2789            0 :                               if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail872;
    2790            0 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail872;
    2791            0 :                               {
    2792            0 :                                 tree res_op0;
    2793            0 :                                 res_op0 = captures[4];
    2794            0 :                                 tree res_op1;
    2795            0 :                                 {
    2796            0 :                                   tree _o1[1], _r1;
    2797            0 :                                   _o1[0] = captures[2];
    2798            0 :                                   if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
    2799              :                                     {
    2800            0 :                                       _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
    2801              :                                     }
    2802              :                                   else
    2803              :                                     _r1 = _o1[0];
    2804            0 :                                   res_op1 = _r1;
    2805              :                                 }
    2806            0 :                                 tree _r;
    2807            0 :                                 _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
    2808            0 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 714, __FILE__, __LINE__, true);
    2809              :                                 return _r;
    2810              :                               }
    2811          202 : next_after_fail872:;
    2812              :                             }
    2813              :                           else
    2814              :                             {
    2815            2 :                               if ((code1 == NE_EXPR
    2816            2 :  && code2 == GT_EXPR
    2817              :  && one_after
    2818            0 :  && allbits)
    2819            2 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
    2820            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GT_EXPR))
    2821            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
    2822              : )
    2823              :                                 {
    2824            0 :                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail873;
    2825            0 :                                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail873;
    2826            0 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail873;
    2827            0 :                                   {
    2828            0 :                                     tree res_op0;
    2829            0 :                                     res_op0 = captures[4];
    2830            0 :                                     tree res_op1;
    2831            0 :                                     {
    2832            0 :                                       tree _o1[1], _r1;
    2833            0 :                                       _o1[0] = captures[2];
    2834            0 :                                       if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
    2835              :                                         {
    2836            0 :                                           _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
    2837              :                                         }
    2838              :                                       else
    2839              :                                         _r1 = _o1[0];
    2840            0 :                                       res_op1 = _r1;
    2841              :                                     }
    2842            0 :                                     tree _r;
    2843            0 :                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
    2844            0 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 715, __FILE__, __LINE__, true);
    2845              :                                     return _r;
    2846              :                                   }
    2847          202 : next_after_fail873:;
    2848              :                                 }
    2849              :                               else
    2850              :                                 {
    2851            2 :                                   if ((code1 == NE_EXPR
    2852            2 :  && code2 == LT_EXPR
    2853              :  && one_before
    2854            0 :  && allbits)
    2855            2 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
    2856            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LT_EXPR))
    2857            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
    2858              : )
    2859              :                                     {
    2860            0 :                                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail874;
    2861            0 :                                       if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail874;
    2862            0 :                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail874;
    2863            0 :                                       {
    2864            0 :                                         tree res_op0;
    2865            0 :                                         res_op0 = captures[4];
    2866            0 :                                         tree res_op1;
    2867            0 :                                         {
    2868            0 :                                           tree _o1[1], _r1;
    2869            0 :                                           _o1[0] = captures[2];
    2870            0 :                                           if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
    2871              :                                             {
    2872            0 :                                               _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
    2873              :                                             }
    2874              :                                           else
    2875              :                                             _r1 = _o1[0];
    2876            0 :                                           res_op1 = _r1;
    2877              :                                         }
    2878            0 :                                         tree _r;
    2879            0 :                                         _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
    2880            0 :                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 716, __FILE__, __LINE__, true);
    2881              :                                         return _r;
    2882              :                                       }
    2883          202 : next_after_fail874:;
    2884              :                                     }
    2885              :                                 }
    2886              :                             }
    2887              :                         }
    2888              :                     }
    2889              :                 }
    2890              :             }
    2891              :       }
    2892              :     }
    2893              :   return NULL_TREE;
    2894              : }
    2895              : 
    2896              : tree
    2897           29 : generic_simplify_531 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2898              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
    2899              : {
    2900           29 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2901           29 :   if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
    2902              : )
    2903              :     {
    2904           29 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail933;
    2905           29 :       {
    2906           29 :         tree res_op0;
    2907           29 :         {
    2908           29 :           tree _o1[2], _r1;
    2909           29 :           _o1[0] = captures[0];
    2910           29 :           {
    2911           29 :             tree _o2[1], _r2;
    2912           29 :             _o2[0] = captures[1];
    2913           29 :             _r2 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
    2914           29 :             _o1[1] = _r2;
    2915              :           }
    2916           29 :           _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2917           29 :           res_op0 = _r1;
    2918              :         }
    2919           29 :         tree _r;
    2920           29 :         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    2921           29 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 745, __FILE__, __LINE__, true);
    2922              :         return _r;
    2923              :       }
    2924            0 : next_after_fail933:;
    2925              :     }
    2926              :   return NULL_TREE;
    2927              : }
    2928              : 
    2929              : tree
    2930           16 : generic_simplify_539 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2931              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
    2932              : {
    2933           16 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2934           16 :   if (ANY_INTEGRAL_TYPE_P (type) && !TYPE_OVERFLOW_SANITIZED (type)
    2935              : )
    2936              :     {
    2937           16 :       {
    2938           16 :  tree ptrdifftype = TREE_TYPE (captures[0]);
    2939           16 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail942;
    2940           16 :           {
    2941           16 :             tree res_op0;
    2942           16 :             {
    2943           16 :               tree _o1[2], _r1;
    2944           16 :               _o1[0] = captures[2];
    2945           16 :               _o1[1] = captures[1];
    2946           16 :               _r1 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ptrdifftype, _o1[0], _o1[1]);
    2947           16 :               res_op0 = _r1;
    2948              :             }
    2949           16 :             tree _r;
    2950           16 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    2951           16 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 752, __FILE__, __LINE__, true);
    2952              :             return _r;
    2953              :           }
    2954            0 : next_after_fail942:;
    2955              :       }
    2956              :     }
    2957              :   return NULL_TREE;
    2958              : }
    2959              : 
    2960              : tree
    2961            0 : generic_simplify_546 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2962              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2963              :  const enum tree_code ARG_UNUSED (minmax),
    2964              :  const enum tree_code ARG_UNUSED (maxmin))
    2965              : {
    2966            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2967            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail950;
    2968            0 :   {
    2969            0 :     tree _r;
    2970            0 :     _r = captures[0];
    2971            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 760, __FILE__, __LINE__, true);
    2972              :     return _r;
    2973              :   }
    2974            0 : next_after_fail950:;
    2975            0 :   return NULL_TREE;
    2976              : }
    2977              : 
    2978              : tree
    2979           72 : generic_simplify_553 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2980              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2981              :  const enum tree_code ARG_UNUSED (minmax),
    2982              :  const enum tree_code ARG_UNUSED (MINMAX))
    2983              : {
    2984           72 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2985            0 :   if (ANY_INTEGRAL_TYPE_P (type)
    2986           72 :  && ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    2987           25 :  && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
    2988           15 :  && element_precision (TREE_TYPE (captures[0])) < element_precision (type)
    2989            0 :  && TYPE_UNSIGNED (TREE_TYPE (captures[0])) == TYPE_UNSIGNED (type)
    2990           72 :  && (!VECTOR_TYPE_P (type)
    2991            0 :  || target_supports_op_p (TREE_TYPE (captures[0]), MINMAX, optab_vector))
    2992              : )
    2993              :     {
    2994            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail957;
    2995            0 :       {
    2996            0 :         tree res_op0;
    2997            0 :         {
    2998            0 :           tree _o1[2], _r1;
    2999            0 :           _o1[0] = captures[0];
    3000            0 :           _o1[1] = captures[1];
    3001            0 :           _r1 = fold_build2_loc (loc, minmax, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    3002            0 :           res_op0 = _r1;
    3003              :         }
    3004            0 :         tree _r;
    3005            0 :         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3006            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 766, __FILE__, __LINE__, true);
    3007              :         return _r;
    3008              :       }
    3009            0 : next_after_fail957:;
    3010              :     }
    3011              :   return NULL_TREE;
    3012              : }
    3013              : 
    3014              : tree
    3015            2 : generic_simplify_565 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3016              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    3017              : {
    3018            2 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3019            2 :   if (TREE_CODE (type) != COMPLEX_TYPE
    3020            2 :  && (! ANY_INTEGRAL_TYPE_P (type)
    3021            1 :  || TYPE_OVERFLOW_UNDEFINED (type))
    3022              : )
    3023              :     {
    3024            2 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail983;
    3025            2 :       {
    3026            2 :         tree res_op0;
    3027            2 :         res_op0 = captures[0];
    3028            2 :         tree _r;
    3029            2 :         _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
    3030            2 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 780, __FILE__, __LINE__, true);
    3031              :         return _r;
    3032              :       }
    3033            0 : next_after_fail983:;
    3034              :     }
    3035              :   return NULL_TREE;
    3036              : }
    3037              : 
    3038              : tree
    3039            0 : generic_simplify_569 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3040              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    3041              :  const combined_fn ARG_UNUSED (FMAX_ALL))
    3042              : {
    3043            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3044            0 :   if (flag_finite_math_only
    3045              : )
    3046              :     {
    3047            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail987;
    3048            0 :       {
    3049            0 :         tree res_op0;
    3050            0 :         res_op0 = captures[0];
    3051            0 :         tree res_op1;
    3052            0 :         res_op1 = captures[1];
    3053            0 :         tree _r;
    3054            0 :         _r = fold_build2_loc (loc, MAX_EXPR, type, res_op0, res_op1);
    3055            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 784, __FILE__, __LINE__, true);
    3056              :         return _r;
    3057              :       }
    3058            0 : next_after_fail987:;
    3059              :     }
    3060              :   return NULL_TREE;
    3061              : }
    3062              : 
    3063              : tree
    3064            0 : generic_simplify_577 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3065              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    3066              :  const combined_fn ARG_UNUSED (cond_op))
    3067              : {
    3068            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3069            0 :   {
    3070            0 :  tree op_type = TREE_TYPE (captures[6]);
    3071            0 :       if (inverse_conditions_p (captures[0], captures[2])
    3072            0 :  && element_precision (type) == element_precision (op_type)
    3073              : )
    3074              :         {
    3075            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail995;
    3076            0 :           {
    3077            0 :             tree res_op0;
    3078            0 :             {
    3079            0 :               tree _o1[5], _r1;
    3080            0 :               _o1[0] = captures[2];
    3081            0 :               _o1[1] = captures[3];
    3082            0 :               _o1[2] = captures[4];
    3083            0 :               _o1[3] = captures[5];
    3084            0 :               {
    3085            0 :                 tree _o2[1], _r2;
    3086            0 :                 _o2[0] = captures[1];
    3087            0 :                 if (TREE_TYPE (_o2[0]) != op_type)
    3088              :                   {
    3089            0 :                     _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, op_type, _o2[0]);
    3090              :                   }
    3091              :                 else
    3092              :                   _r2 = _o2[0];
    3093            0 :                 _o1[4] = _r2;
    3094              :               }
    3095            0 :               _r1 = maybe_build_call_expr_loc (loc, cond_op, TREE_TYPE (_o1[1]), 5, _o1[0], _o1[1], _o1[2], _o1[3], _o1[4]);
    3096            0 :               if (!_r1)
    3097            0 :                 goto next_after_fail995;
    3098            0 :               res_op0 = _r1;
    3099              :             }
    3100            0 :             tree _r;
    3101            0 :             _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
    3102            0 :             if (TREE_SIDE_EFFECTS (captures[0]))
    3103            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    3104            0 :             if (TREE_SIDE_EFFECTS (captures[6]))
    3105            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[6]), _r);
    3106            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 788, __FILE__, __LINE__, true);
    3107              :             return _r;
    3108              :           }
    3109            0 : next_after_fail995:;
    3110              :         }
    3111              :   }
    3112              :   return NULL_TREE;
    3113              : }
    3114              : 
    3115              : tree
    3116            0 : generic_simplify_590 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3117              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3118              :  const enum tree_code ARG_UNUSED (bitop),
    3119              :  const combined_fn ARG_UNUSED (bswap))
    3120              : {
    3121            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3122            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1011;
    3123            0 :   {
    3124            0 :     tree res_op0;
    3125            0 :     res_op0 = captures[0];
    3126            0 :     tree res_op1;
    3127            0 :     {
    3128            0 :       tree _o1[1], _r1;
    3129            0 :       _o1[0] = captures[1];
    3130            0 :       _r1 = maybe_build_call_expr_loc (loc, bswap, TREE_TYPE (_o1[0]), 1, _o1[0]);
    3131            0 :       if (!_r1)
    3132            0 :         goto next_after_fail1011;
    3133            0 :       res_op1 = _r1;
    3134              :     }
    3135            0 :     tree _r;
    3136            0 :     _r = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
    3137            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 804, __FILE__, __LINE__, true);
    3138              :     return _r;
    3139              :   }
    3140            0 : next_after_fail1011:;
    3141              :   return NULL_TREE;
    3142              : }
    3143              : 
    3144              : tree
    3145            0 : generic_simplify_598 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3146              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3147              :  const combined_fn ARG_UNUSED (logs),
    3148              :  const combined_fn ARG_UNUSED (pows))
    3149              : {
    3150            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3151            0 :   if (flag_unsafe_math_optimizations
    3152              : )
    3153              :     {
    3154            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1019;
    3155            0 :       {
    3156            0 :         tree res_op0;
    3157            0 :         res_op0 = captures[1];
    3158            0 :         tree res_op1;
    3159            0 :         {
    3160            0 :           tree _o1[1], _r1;
    3161            0 :           _o1[0] = captures[0];
    3162            0 :           _r1 = maybe_build_call_expr_loc (loc, logs, TREE_TYPE (_o1[0]), 1, _o1[0]);
    3163            0 :           if (!_r1)
    3164            0 :             goto next_after_fail1019;
    3165            0 :           res_op1 = _r1;
    3166              :         }
    3167            0 :         tree _r;
    3168            0 :         _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    3169            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 812, __FILE__, __LINE__, true);
    3170              :         return _r;
    3171              :       }
    3172            0 : next_after_fail1019:;
    3173              :     }
    3174              :   return NULL_TREE;
    3175              : }
    3176              : 
    3177              : tree
    3178            0 : generic_simplify_606 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3179              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3180              :  const combined_fn ARG_UNUSED (floors),
    3181              :  const combined_fn ARG_UNUSED (truncs))
    3182              : {
    3183            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3184            0 :   if (canonicalize_math_p ()
    3185              : )
    3186              :     {
    3187            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1027;
    3188            0 :       {
    3189            0 :         tree res_op0;
    3190            0 :         res_op0 = captures[0];
    3191            0 :         tree _r;
    3192            0 :         _r = maybe_build_call_expr_loc (loc, truncs, type, 1, res_op0);
    3193            0 :         if (!_r)
    3194            0 :           goto next_after_fail1027;
    3195            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 820, __FILE__, __LINE__, true);
    3196              :         return _r;
    3197              :       }
    3198            0 : next_after_fail1027:;
    3199              :     }
    3200              :   return NULL_TREE;
    3201              : }
    3202              : 
    3203              : tree
    3204            0 : generic_simplify_613 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3205              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3206              :  const combined_fn ARG_UNUSED (ifn),
    3207              :  const combined_fn ARG_UNUSED (lfn),
    3208              :  const combined_fn ARG_UNUSED (llfn))
    3209              : {
    3210            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3211            0 :   if (canonicalize_math_p ()
    3212              : )
    3213              :     {
    3214            0 :       if (TYPE_PRECISION (integer_type_node)
    3215            0 :  == TYPE_PRECISION (long_integer_type_node)
    3216              : )
    3217              :         {
    3218            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1034;
    3219            0 :           {
    3220            0 :             tree res_op0;
    3221            0 :             res_op0 = captures[0];
    3222            0 :             tree _r;
    3223            0 :             _r = maybe_build_call_expr_loc (loc, lfn, type, 1, res_op0);
    3224            0 :             if (!_r)
    3225            0 :               goto next_after_fail1034;
    3226            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 827, __FILE__, __LINE__, true);
    3227              :             return _r;
    3228              :           }
    3229            0 : next_after_fail1034:;
    3230              :         }
    3231              :     }
    3232              :   return NULL_TREE;
    3233              : }
    3234              : 
    3235              : tree
    3236            0 : generic_simplify_624 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3237              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
    3238              : {
    3239            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3240            0 :   if (canonicalize_math_after_vectorization_p ()
    3241              : )
    3242              :     {
    3243              :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1045;
    3244              :       {
    3245              :         tree res_op0;
    3246              :         res_op0 = captures[0];
    3247              :         tree res_op1;
    3248              :         res_op1 = captures[1];
    3249              :         tree res_op2;
    3250              :         res_op2 = captures[2];
    3251              :         tree _r;
    3252              :         _r = maybe_build_call_expr_loc (loc, CFN_FMA, type, 3, res_op0, res_op1, res_op2);
    3253              :         if (!_r)
    3254              :           goto next_after_fail1045;
    3255              :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 838, __FILE__, __LINE__, true);
    3256              :         return _r;
    3257              :       }
    3258            0 : next_after_fail1045:;
    3259              :     }
    3260            0 :   return NULL_TREE;
    3261              : }
    3262              : 
    3263              : tree
    3264            0 : generic_simplify_633 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3265              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree ARG_UNUSED (_p3), tree ARG_UNUSED (_p4), tree *ARG_UNUSED (captures))
    3266              : {
    3267            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3268            0 :   if (canonicalize_math_after_vectorization_p ()
    3269              : )
    3270              :     {
    3271              :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1054;
    3272              :       {
    3273              :         tree res_op0;
    3274              :         res_op0 = captures[0];
    3275              :         tree res_op1;
    3276              :         res_op1 = captures[1];
    3277              :         tree res_op2;
    3278              :         res_op2 = captures[2];
    3279              :         tree res_op3;
    3280              :         res_op3 = captures[3];
    3281              :         tree res_op4;
    3282              :         res_op4 = captures[4];
    3283              :         tree _r;
    3284              :         _r = maybe_build_call_expr_loc (loc, CFN_COND_FMS, type, 5, res_op0, res_op1, res_op2, res_op3, res_op4);
    3285              :         if (!_r)
    3286              :           goto next_after_fail1054;
    3287              :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 847, __FILE__, __LINE__, true);
    3288              :         return _r;
    3289              :       }
    3290            0 : next_after_fail1054:;
    3291              :     }
    3292            0 :   return NULL_TREE;
    3293              : }
    3294              : 
    3295              : tree
    3296            0 : generic_simplify_642 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3297              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3298              :  const combined_fn ARG_UNUSED (POPCOUNT))
    3299              : {
    3300            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3301            0 :   {
    3302            0 :  tree type0 = TREE_TYPE (captures[1]);
    3303            0 :  tree type2 = TREE_TYPE (captures[0]);
    3304            0 :       if (INTEGRAL_TYPE_P (type0)
    3305            0 :  && TYPE_PRECISION (type2) <= TYPE_PRECISION (type0)
    3306              : )
    3307              :         {
    3308            0 :           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1063;
    3309            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1063;
    3310            0 :           {
    3311            0 :             tree res_op0;
    3312            0 :             {
    3313            0 :               tree _o1[2], _r1;
    3314            0 :               {
    3315            0 :                 tree _o2[1], _r2;
    3316            0 :                 _o2[0] = captures[2];
    3317            0 :                 if (TREE_TYPE (_o2[0]) != type2)
    3318              :                   {
    3319            0 :                     _r2 = fold_build1_loc (loc, NOP_EXPR, type2, _o2[0]);
    3320              :                   }
    3321              :                 else
    3322              :                   _r2 = _o2[0];
    3323            0 :                 _o1[0] = _r2;
    3324              :               }
    3325            0 :               _o1[1] =  build_zero_cst (type2);
    3326            0 :               _r1 = fold_build2_loc (loc, NE_EXPR, boolean_type_node, _o1[0], _o1[1]);
    3327            0 :               res_op0 = _r1;
    3328              :             }
    3329            0 :             tree _r;
    3330            0 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3331            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 853, __FILE__, __LINE__, true);
    3332              :             return _r;
    3333              :           }
    3334            0 : next_after_fail1063:;
    3335              :         }
    3336              :   }
    3337              :   return NULL_TREE;
    3338              : }
    3339              : 
    3340              : tree
    3341            0 : generic_simplify_650 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3342              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3343              :  const enum tree_code ARG_UNUSED (rot),
    3344              :  const combined_fn ARG_UNUSED (parity))
    3345              : {
    3346            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3347            0 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    3348            0 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    3349            0 :  && (
    3350              : 
    3351            0 :  || !TREE_SIDE_EFFECTS (captures[3]))
    3352            0 :  && TYPE_PRECISION (TREE_TYPE (captures[0]))
    3353            0 :  >= TYPE_PRECISION (TREE_TYPE (captures[1]))
    3354              : )
    3355              :     {
    3356            0 :       {
    3357            0 :  tree type0 = TREE_TYPE (captures[0]);
    3358            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1073;
    3359            0 :           {
    3360            0 :             tree res_op0;
    3361            0 :             {
    3362            0 :               tree _o1[1], _r1;
    3363            0 :               _o1[0] = captures[2];
    3364            0 :               if (TREE_TYPE (_o1[0]) != type0)
    3365              :                 {
    3366            0 :                   _r1 = fold_build1_loc (loc, NOP_EXPR, type0, _o1[0]);
    3367              :                 }
    3368              :               else
    3369              :                 _r1 = _o1[0];
    3370            0 :               res_op0 = _r1;
    3371              :             }
    3372            0 :             tree _r;
    3373            0 :             _r = maybe_build_call_expr_loc (loc, parity, type, 1, res_op0);
    3374            0 :             if (!_r)
    3375            0 :               goto next_after_fail1073;
    3376            0 :             if (TREE_SIDE_EFFECTS (captures[3]))
    3377            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
    3378            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 859, __FILE__, __LINE__, true);
    3379              :             return _r;
    3380              :           }
    3381            0 : next_after_fail1073:;
    3382              :       }
    3383              :     }
    3384              :   return NULL_TREE;
    3385              : }
    3386              : 
    3387              : tree
    3388    491481728 : generic_simplify_VIEW_CONVERT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0)
    3389              : {
    3390    491481728 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3391    491481728 :   {
    3392    491481728 :     tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    3393    982963456 :     if ((
    3394              : 
    3395              :  && useless_type_conversion_p (type, TREE_TYPE (captures[0])))
    3396              :  || (
    3397              : 1
    3398    491481728 :  && type == TREE_TYPE (captures[0]))
    3399              : )
    3400              :       {
    3401    221085575 :         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1149;
    3402    221085575 :         {
    3403    221085575 :           tree _r;
    3404    221085575 :           _r = captures[0];
    3405    221085575 :           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 875, __FILE__, __LINE__, true);
    3406    491481728 :           return _r;
    3407              :         }
    3408            0 : next_after_fail1149:;
    3409              :       }
    3410              :   }
    3411    270396153 :   switch (TREE_CODE (_p0))
    3412              :     {
    3413     29826884 :     case VIEW_CONVERT_EXPR:
    3414     29826884 :       {
    3415     29826884 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3416     29826884 :         {
    3417     29826884 :           tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    3418     29826884 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1150;
    3419     29826884 :           {
    3420     29826884 :             tree res_op0;
    3421     29826884 :             res_op0 = captures[0];
    3422     29826884 :             tree _r;
    3423     29826884 :             _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
    3424     29826884 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 909, __FILE__, __LINE__, true);
    3425    491481728 :             return _r;
    3426              :           }
    3427            0 : next_after_fail1150:;
    3428              :         }
    3429            0 :         break;
    3430              :       }
    3431            0 :     case BIT_FIELD_REF:
    3432            0 :       {
    3433            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3434            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3435            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
    3436            0 :         {
    3437            0 :           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
    3438            0 :           if (is_gimple_reg_type (type)
    3439            0 :  && (!INTEGRAL_TYPE_P (type)
    3440            0 :  || type_has_mode_precision_p (type))
    3441            0 :  && (!INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    3442            0 :  || type_has_mode_precision_p (TREE_TYPE (captures[0])))
    3443              : )
    3444              :             {
    3445            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1151;
    3446            0 :               {
    3447            0 :                 tree res_op0;
    3448            0 :                 res_op0 = captures[1];
    3449            0 :                 tree res_op1;
    3450            0 :                 res_op1 = captures[2];
    3451            0 :                 tree res_op2;
    3452            0 :                 res_op2 = captures[3];
    3453            0 :                 tree _r;
    3454            0 :                 _r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
    3455            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 910, __FILE__, __LINE__, true);
    3456              :                 return _r;
    3457              :               }
    3458            0 : next_after_fail1151:;
    3459              :             }
    3460              :         }
    3461              :         break;
    3462              :       }
    3463    240569269 :     default:;
    3464              :     }
    3465    240569269 :   {
    3466    240569269 :     tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    3467    238757115 :     if ((INTEGRAL_TYPE_P (type) || POINTER_TYPE_P (type))
    3468      2879646 :  && (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) || POINTER_TYPE_P (TREE_TYPE (captures[0])))
    3469    243169465 :  && TYPE_PRECISION (type) == TYPE_PRECISION (TREE_TYPE (captures[0]))
    3470              : )
    3471              :       {
    3472      2218473 :         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1152;
    3473      2218473 :         {
    3474      2218473 :           tree res_op0;
    3475      2218473 :           res_op0 = captures[0];
    3476      2218473 :           tree _r;
    3477      2218473 :           _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3478      2218473 :           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 911, __FILE__, __LINE__, true);
    3479    491481728 :           return _r;
    3480              :         }
    3481            0 : next_after_fail1152:;
    3482              :       }
    3483              :   }
    3484    238350796 :   switch (TREE_CODE (_p0))
    3485              :     {
    3486         3498 :     CASE_CONVERT:
    3487         3498 :       {
    3488         3498 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3489         3498 :         {
    3490         3498 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
    3491         3498 :           {
    3492         3498 :  bool extended_bitint = false;
    3493         3498 :  if (BITINT_TYPE_P (TREE_TYPE (captures[0])))
    3494              :  {
    3495            0 :  struct bitint_info info;
    3496            0 :  extended_bitint
    3497            0 :  = targetm.c.bitint_type_info (TYPE_PRECISION (TREE_TYPE (captures[0])),
    3498              :  &info);
    3499            0 :  extended_bitint = extended_bitint && info.extended;
    3500              :  }
    3501         6996 :               if ((INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) || POINTER_TYPE_P (TREE_TYPE (captures[0])))
    3502           71 :  && (INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) || POINTER_TYPE_P (TREE_TYPE (captures[1])))
    3503           71 :  && !extended_bitint
    3504           71 :  && TYPE_SIZE (TREE_TYPE (captures[0])) == TYPE_SIZE (TREE_TYPE (captures[1]))
    3505         3498 :  && (TYPE_PRECISION (TREE_TYPE (captures[0])) == TYPE_PRECISION (TREE_TYPE (captures[1]))
    3506            0 :  || (TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (TREE_TYPE (captures[1]))
    3507            0 :  && TYPE_UNSIGNED (TREE_TYPE (captures[1]))))
    3508              : )
    3509              :                 {
    3510            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1153;
    3511            0 :                   {
    3512            0 :                     tree res_op0;
    3513            0 :                     res_op0 = captures[1];
    3514            0 :                     tree _r;
    3515            0 :                     _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
    3516            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 912, __FILE__, __LINE__, true);
    3517              :                     return _r;
    3518              :                   }
    3519            0 : next_after_fail1153:;
    3520              :                 }
    3521              :           }
    3522              :         }
    3523              :         break;
    3524              :       }
    3525        83651 :     case CONSTRUCTOR:
    3526        83651 :       {
    3527        83651 :         {
    3528        83651 :           tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    3529        83651 :           {
    3530        83651 :  tree ctor = (TREE_CODE (captures[0]) == SSA_NAME
    3531              :  ? gimple_assign_rhs1 (SSA_NAME_DEF_STMT (captures[0])) : captures[0]);
    3532        83651 :               if (CONSTRUCTOR_NELTS (ctor) == 0
    3533              : )
    3534              :                 {
    3535            6 :                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1154;
    3536            6 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1154;
    3537            6 :                   {
    3538            6 :                     tree _r;
    3539            6 :                     _r =  build_zero_cst (type);
    3540            6 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 913, __FILE__, __LINE__, true);
    3541              :                     return _r;
    3542              :                   }
    3543    491481728 : next_after_fail1154:;
    3544              :                 }
    3545              :               else
    3546              :                 {
    3547        83645 :                   if (CONSTRUCTOR_NELTS (ctor) == 1
    3548           40 :  && VECTOR_TYPE_P (TREE_TYPE (ctor))
    3549        83680 :  && operand_equal_p (TYPE_SIZE (type),
    3550           35 :  TYPE_SIZE (TREE_TYPE
    3551              :  (CONSTRUCTOR_ELT (ctor, 0)->value)))
    3552              : )
    3553              :                     {
    3554            0 :                       if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1155;
    3555            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1155;
    3556            0 :                       {
    3557            0 :                         tree res_op0;
    3558            0 :                         res_op0 =  CONSTRUCTOR_ELT (ctor, 0)->value;
    3559            0 :                         tree _r;
    3560            0 :                         _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
    3561            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 914, __FILE__, __LINE__, true);
    3562              :                         return _r;
    3563              :                       }
    3564    491481728 : next_after_fail1155:;
    3565              :                     }
    3566              :                 }
    3567              :           }
    3568              :         }
    3569              :         break;
    3570              :       }
    3571       290799 :     case VEC_COND_EXPR:
    3572       290799 :       {
    3573       290799 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3574       290799 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3575       290799 :         tree _q22 = TREE_OPERAND (_p0, 2);
    3576       290799 :         {
    3577       290799 :           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
    3578       290750 :           if (VECTOR_TYPE_P (type) && VECTOR_TYPE_P (TREE_TYPE (captures[2]))
    3579       333217 :  && known_eq (TYPE_VECTOR_SUBPARTS (type),
    3580              :  TYPE_VECTOR_SUBPARTS (TREE_TYPE (captures[2])))
    3581        42418 :  && tree_nop_conversion_p (TREE_TYPE (type), TREE_TYPE (TREE_TYPE (captures[2])))
    3582       332860 :  && (expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    3583          371 :  || !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1])))
    3584              : )
    3585              :             {
    3586        42061 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1156;
    3587        42061 :               {
    3588        42061 :                 tree res_op0;
    3589        42061 :                 res_op0 = captures[1];
    3590        42061 :                 tree res_op1;
    3591        42061 :                 {
    3592        42061 :                   tree _o1[1], _r1;
    3593        42061 :                   _o1[0] = captures[2];
    3594        42061 :                   if (TREE_TYPE (_o1[0]) != type)
    3595              :                     {
    3596        42061 :                       _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
    3597        42061 :                       if (EXPR_P (_r1))
    3598          166 :                         goto next_after_fail1156;
    3599              :                     }
    3600              :                   else
    3601              :                     _r1 = _o1[0];
    3602        41895 :                   res_op1 = _r1;
    3603              :                 }
    3604        41895 :                 tree res_op2;
    3605        41895 :                 {
    3606        41895 :                   tree _o1[1], _r1;
    3607        41895 :                   _o1[0] = captures[3];
    3608        41895 :                   if (TREE_TYPE (_o1[0]) != type)
    3609              :                     {
    3610        41895 :                       _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
    3611        41895 :                       if (EXPR_P (_r1))
    3612            0 :                         goto next_after_fail1156;
    3613              :                     }
    3614              :                   else
    3615              :                     _r1 = _o1[0];
    3616        41895 :                   res_op2 = _r1;
    3617              :                 }
    3618        41895 :                 tree _r;
    3619        41895 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    3620        41895 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 915, __FILE__, __LINE__, true);
    3621              :                 return _r;
    3622              :               }
    3623    491481728 : next_after_fail1156:;
    3624              :             }
    3625              :         }
    3626              :         break;
    3627              :       }
    3628              :     default:;
    3629              :     }
    3630              :   return NULL_TREE;
    3631              : }
    3632              : 
    3633              : tree
    3634   1799152741 : generic_simplify (location_t loc, enum tree_code code, const tree type ATTRIBUTE_UNUSED, tree _p0)
    3635              : {
    3636   1799152741 :   switch (code)
    3637              :     {
    3638      3462195 :     case ABS_EXPR:
    3639      3462195 :       return generic_simplify_ABS_EXPR (loc, code, type, _p0);
    3640    900923812 :     CASE_CONVERT:
    3641    900923812 :       return generic_simplify_CONVERT_EXPR (loc, code, type, _p0);
    3642      2887577 :     case BIT_NOT_EXPR:
    3643      2887577 :       return generic_simplify_BIT_NOT_EXPR (loc, code, type, _p0);
    3644          943 :     case ABSU_EXPR:
    3645          943 :       return generic_simplify_ABSU_EXPR (loc, code, type, _p0);
    3646      4353536 :     case NEGATE_EXPR:
    3647      4353536 :       return generic_simplify_NEGATE_EXPR (loc, code, type, _p0);
    3648      6630384 :     case FLOAT_EXPR:
    3649      6630384 :       return generic_simplify_FLOAT_EXPR (loc, code, type, _p0);
    3650    491481728 :     case VIEW_CONVERT_EXPR:
    3651    491481728 :       return generic_simplify_VIEW_CONVERT_EXPR (loc, code, type, _p0);
    3652       518652 :     case FIX_TRUNC_EXPR:
    3653       518652 :       return generic_simplify_FIX_TRUNC_EXPR (loc, code, type, _p0);
    3654         3678 :     case PAREN_EXPR:
    3655         3678 :       return generic_simplify_PAREN_EXPR (loc, code, type, _p0);
    3656      1951651 :     case REALPART_EXPR:
    3657      1951651 :       return generic_simplify_REALPART_EXPR (loc, code, type, _p0);
    3658      2220383 :     case IMAGPART_EXPR:
    3659      2220383 :       return generic_simplify_IMAGPART_EXPR (loc, code, type, _p0);
    3660         1330 :     case CONJ_EXPR:
    3661         1330 :       return generic_simplify_CONJ_EXPR (loc, code, type, _p0);
    3662              :     default:;
    3663              :     }
    3664              :   return NULL_TREE;
    3665              : }
    3666              : 
    3667              : tree
    3668     82268105 : generic_simplify_POINTER_PLUS_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
    3669              : {
    3670     82268105 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3671     82268105 :   if (integer_zerop (_p1))
    3672              :     {
    3673      2811071 :       {
    3674      2811071 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    3675      2811071 :         if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1313;
    3676      2811071 :         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1313;
    3677      2811071 :         {
    3678      2811071 :           tree res_op0;
    3679      2811071 :           res_op0 = captures[0];
    3680      2811071 :           tree _r;
    3681      2811071 :           _r = non_lvalue_loc (loc, res_op0);
    3682      2811071 :           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 927, __FILE__, __LINE__, true);
    3683     82268105 :           return _r;
    3684              :         }
    3685     79457034 : next_after_fail1313:;
    3686              :       }
    3687              :     }
    3688     79457034 :   switch (TREE_CODE (_p0))
    3689              :     {
    3690      6060060 :     case POINTER_PLUS_EXPR:
    3691      6060060 :       {
    3692      6060060 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3693      6060060 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3694      6060060 :         {
    3695      6060060 :           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    3696      6060060 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1314;
    3697      6060060 :           {
    3698      6060060 :             tree res_op0;
    3699      6060060 :             res_op0 = captures[1];
    3700      6060060 :             tree res_op1;
    3701      6060060 :             {
    3702      6060060 :               tree _o1[2], _r1;
    3703      6060060 :               _o1[0] = captures[2];
    3704      6060060 :               _o1[1] = captures[3];
    3705      6060060 :               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    3706      6060060 :               res_op1 = _r1;
    3707              :             }
    3708      6060060 :             tree _r;
    3709      6060060 :             _r = fold_build2_loc (loc, POINTER_PLUS_EXPR, type, res_op0, res_op1);
    3710      6060060 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 948, __FILE__, __LINE__, true);
    3711              :             return _r;
    3712              :           }
    3713            0 : next_after_fail1314:;
    3714              :         }
    3715            0 :         break;
    3716              :       }
    3717     49024054 :     CASE_CONVERT:
    3718     49024054 :       {
    3719     49024054 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3720     49024054 :         switch (TREE_CODE (_q20))
    3721              :           {
    3722        27611 :           case POINTER_PLUS_EXPR:
    3723        27611 :             {
    3724        27611 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3725        27611 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3726        27611 :               {
    3727        27611 :                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1 };
    3728        27611 :                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1315;
    3729        27611 :                 {
    3730        27611 :                   tree res_op0;
    3731        27611 :                   {
    3732        27611 :                     tree _o1[1], _r1;
    3733        27611 :                     _o1[0] = captures[2];
    3734        27611 :                     if (TREE_TYPE (_o1[0]) != type)
    3735              :                       {
    3736        27505 :                         _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    3737              :                       }
    3738              :                     else
    3739              :                       _r1 = _o1[0];
    3740        27611 :                     res_op0 = _r1;
    3741              :                   }
    3742        27611 :                   tree res_op1;
    3743        27611 :                   {
    3744        27611 :                     tree _o1[2], _r1;
    3745        27611 :                     _o1[0] = captures[3];
    3746        27611 :                     _o1[1] = captures[4];
    3747        27611 :                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    3748        27611 :                     res_op1 = _r1;
    3749              :                   }
    3750        27611 :                   tree _r;
    3751        27611 :                   _r = fold_build2_loc (loc, POINTER_PLUS_EXPR, type, res_op0, res_op1);
    3752        27611 :                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 949, __FILE__, __LINE__, true);
    3753              :                   return _r;
    3754              :                 }
    3755            0 : next_after_fail1315:;
    3756              :               }
    3757            0 :               break;
    3758              :             }
    3759              :           default:;
    3760              :           }
    3761              :         break;
    3762              :       }
    3763     73369363 :     default:;
    3764              :     }
    3765     73369363 : if (integer_zerop (_p0))
    3766              :   {
    3767          649 :     {
    3768          649 :       tree captures[1] ATTRIBUTE_UNUSED = { _p1 };
    3769          649 :       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1316;
    3770          649 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1316;
    3771          649 :       {
    3772          649 :         tree res_op0;
    3773          649 :         {
    3774          649 :           tree _o1[1], _r1;
    3775          649 :           _o1[0] = captures[0];
    3776          649 :           if (TREE_TYPE (_o1[0]) != type)
    3777              :             {
    3778          649 :               _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    3779              :             }
    3780              :           else
    3781              :             _r1 = _o1[0];
    3782          649 :           res_op0 = _r1;
    3783              :         }
    3784          649 :         tree _r;
    3785          649 :         _r = non_lvalue_loc (loc, res_op0);
    3786          649 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 950, __FILE__, __LINE__, true);
    3787     82268105 :         return _r;
    3788              :       }
    3789     73368714 : next_after_fail1316:;
    3790              :     }
    3791              :   }
    3792     73368714 :   switch (TREE_CODE (_p1))
    3793              :     {
    3794      9738565 :     CASE_CONVERT:
    3795      9738565 :       {
    3796      9738565 :         tree _q30 = TREE_OPERAND (_p1, 0);
    3797      9738565 :         switch (TREE_CODE (_q30))
    3798              :           {
    3799       209564 :           case MINUS_EXPR:
    3800       209564 :             {
    3801       209564 :               tree _q40 = TREE_OPERAND (_q30, 0);
    3802       209564 :               tree _q41 = TREE_OPERAND (_q30, 1);
    3803       209564 :               switch (TREE_CODE (_q40))
    3804              :                 {
    3805        94422 :                 CASE_CONVERT:
    3806        94422 :                   {
    3807        94422 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    3808        94422 :                     switch (TREE_CODE (_q41))
    3809              :                       {
    3810         7381 :                       CASE_CONVERT:
    3811         7381 :                         {
    3812         7381 :                           tree _q70 = TREE_OPERAND (_q41, 0);
    3813         7381 :                           if ((_q70 == _p0 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p0, 0) && types_match (_q70, _p0)))
    3814              :                             {
    3815         4488 :                               {
    3816         4488 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q50 };
    3817         4488 :                                 if (TYPE_PRECISION (TREE_TYPE (captures[1])) == TYPE_PRECISION (TREE_TYPE (captures[2]))
    3818         4488 :  && ((
    3819              : 
    3820              :  && useless_type_conversion_p (type, TREE_TYPE (captures[3])))
    3821              :  || (
    3822              : 1
    3823         4488 :  && type == TREE_TYPE (captures[3])))
    3824              : )
    3825              :                                   {
    3826         2915 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1317;
    3827         2915 :                                     {
    3828         2915 :                                       tree _r;
    3829         2915 :                                       _r = captures[3];
    3830         2915 :                                       if (TREE_SIDE_EFFECTS (captures[0]))
    3831            0 :                                         _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    3832         2915 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 951, __FILE__, __LINE__, true);
    3833              :                                       return _r;
    3834              :                                     }
    3835            0 : next_after_fail1317:;
    3836              :                                   }
    3837              :                               }
    3838              :                             }
    3839              :                           break;
    3840              :                         }
    3841              :                       default:;
    3842              :                       }
    3843              :                     break;
    3844              :                   }
    3845              :                 default:;
    3846              :                 }
    3847              :               break;
    3848              :             }
    3849          596 :           case POINTER_DIFF_EXPR:
    3850          596 :             {
    3851          596 :               tree _q40 = TREE_OPERAND (_q30, 0);
    3852          596 :               tree _q41 = TREE_OPERAND (_q30, 1);
    3853          596 :               if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _p0, 0))
    3854              :                 {
    3855            7 :                   {
    3856            7 :                     tree captures[5] ATTRIBUTE_UNUSED = { _q41, _p1, _q30, _q40, _p0 };
    3857            7 :                     if (TYPE_PRECISION (TREE_TYPE (captures[1])) >= TYPE_PRECISION (TREE_TYPE (captures[2]))
    3858              : )
    3859              :                       {
    3860            7 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1318;
    3861            7 :                         {
    3862            7 :                           tree res_op0;
    3863            7 :                           res_op0 = captures[3];
    3864            7 :                           tree _r;
    3865            7 :                           _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3866            7 :                           if (TREE_SIDE_EFFECTS (captures[4]))
    3867            0 :                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
    3868            7 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 952, __FILE__, __LINE__, true);
    3869              :                           return _r;
    3870              :                         }
    3871            0 : next_after_fail1318:;
    3872              :                       }
    3873              :                   }
    3874              :                 }
    3875              :               break;
    3876              :             }
    3877              :           default:;
    3878              :           }
    3879              :         break;
    3880              :       }
    3881        56001 :     case MINUS_EXPR:
    3882        56001 :       {
    3883        56001 :         tree _q30 = TREE_OPERAND (_p1, 0);
    3884        56001 :         tree _q31 = TREE_OPERAND (_p1, 1);
    3885        56001 :         switch (TREE_CODE (_q30))
    3886              :           {
    3887        52507 :           CASE_CONVERT:
    3888        52507 :             {
    3889        52507 :               tree _q40 = TREE_OPERAND (_q30, 0);
    3890        52507 :               switch (TREE_CODE (_q31))
    3891              :                 {
    3892        35445 :                 CASE_CONVERT:
    3893        35445 :                   {
    3894        35445 :                     tree _q60 = TREE_OPERAND (_q31, 0);
    3895        35445 :                     if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
    3896              :                       {
    3897           24 :                         {
    3898           24 :                           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _p1, _q40 };
    3899           24 :                           if (TYPE_PRECISION (TREE_TYPE (captures[1])) == TYPE_PRECISION (TREE_TYPE (captures[2]))
    3900           24 :  && ((
    3901              : 
    3902              :  && useless_type_conversion_p (type, TREE_TYPE (captures[3])))
    3903              :  || (
    3904              : 1
    3905           24 :  && type == TREE_TYPE (captures[3])))
    3906              : )
    3907              :                             {
    3908            0 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1319;
    3909            0 :                               {
    3910            0 :                                 tree _r;
    3911            0 :                                 _r = captures[3];
    3912            0 :                                 if (TREE_SIDE_EFFECTS (captures[0]))
    3913            0 :                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    3914            0 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 951, __FILE__, __LINE__, true);
    3915              :                                 return _r;
    3916              :                               }
    3917            0 : next_after_fail1319:;
    3918              :                             }
    3919              :                         }
    3920              :                       }
    3921              :                     break;
    3922              :                   }
    3923              :                 default:;
    3924              :                 }
    3925              :               break;
    3926              :             }
    3927          444 :           case INTEGER_CST:
    3928          444 :             {
    3929          444 :               switch (TREE_CODE (_q31))
    3930              :                 {
    3931           16 :                 case BIT_AND_EXPR:
    3932           16 :                   {
    3933           16 :                     tree _q50 = TREE_OPERAND (_q31, 0);
    3934           16 :                     tree _q51 = TREE_OPERAND (_q31, 1);
    3935           16 :                     switch (TREE_CODE (_q50))
    3936              :                       {
    3937           16 :                       CASE_CONVERT:
    3938           16 :                         {
    3939           16 :                           tree _q60 = TREE_OPERAND (_q50, 0);
    3940           16 :                           if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
    3941              :                             {
    3942            0 :                               switch (TREE_CODE (_q51))
    3943              :                                 {
    3944            0 :                                 case INTEGER_CST:
    3945            0 :                                   {
    3946            0 :                                     {
    3947            0 :                                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q51 };
    3948            0 :                                       if (tree_int_cst_min_precision (captures[3], UNSIGNED) <= tree_ctz (captures[2])
    3949              : )
    3950              :                                         {
    3951            0 :                                           {
    3952            0 :  tree algn = wide_int_to_tree (TREE_TYPE (captures[0]), ~wi::to_wide (captures[3]));
    3953            0 :                                               if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1320;
    3954            0 :                                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1320;
    3955            0 :                                               {
    3956            0 :                                                 tree res_op0;
    3957            0 :                                                 {
    3958            0 :                                                   tree _o1[2], _r1;
    3959            0 :                                                   _o1[0] = captures[0];
    3960            0 :                                                   _o1[1] =  algn;
    3961            0 :                                                   _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    3962            0 :                                                   res_op0 = _r1;
    3963              :                                                 }
    3964            0 :                                                 tree res_op1;
    3965            0 :                                                 res_op1 = captures[2];
    3966            0 :                                                 tree _r;
    3967            0 :                                                 _r = fold_build2_loc (loc, POINTER_PLUS_EXPR, type, res_op0, res_op1);
    3968            0 :                                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 953, __FILE__, __LINE__, true);
    3969              :                                                 return _r;
    3970              :                                               }
    3971           16 : next_after_fail1320:;
    3972              :                                           }
    3973              :                                         }
    3974              :                                     }
    3975              :                                     break;
    3976              :                                   }
    3977              :                                 default:;
    3978              :                                 }
    3979              :                             }
    3980           16 :                           switch (TREE_CODE (_q60))
    3981              :                             {
    3982            0 :                             case POINTER_PLUS_EXPR:
    3983            0 :                               {
    3984            0 :                                 tree _q70 = TREE_OPERAND (_q60, 0);
    3985            0 :                                 tree _q71 = TREE_OPERAND (_q60, 1);
    3986            0 :                                 if ((_q70 == _p0 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p0, 0) && types_match (_q70, _p0)))
    3987              :                                   {
    3988            0 :                                     switch (TREE_CODE (_q71))
    3989              :                                       {
    3990            0 :                                       case INTEGER_CST:
    3991            0 :                                         {
    3992            0 :                                           switch (TREE_CODE (_q51))
    3993              :                                             {
    3994            0 :                                             case INTEGER_CST:
    3995            0 :                                               {
    3996            0 :                                                 {
    3997            0 :                                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q71, _q51 };
    3998            0 :                                                   {
    3999            0 :  auto mask_width = tree_int_cst_min_precision (captures[4], UNSIGNED);
    4000            0 :                                                       if (mask_width <= tree_ctz (captures[2]) && mask_width <= tree_ctz (captures[3])
    4001              : )
    4002              :                                                         {
    4003            0 :                                                           {
    4004            0 :  tree algn = wide_int_to_tree (TREE_TYPE (captures[0]), ~wi::to_wide (captures[4]));
    4005            0 :                                                               if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1321;
    4006            0 :                                                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1321;
    4007            0 :                                                               {
    4008            0 :                                                                 tree res_op0;
    4009            0 :                                                                 {
    4010            0 :                                                                   tree _o1[2], _r1;
    4011            0 :                                                                   _o1[0] = captures[0];
    4012            0 :                                                                   _o1[1] =  algn;
    4013            0 :                                                                   _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    4014            0 :                                                                   res_op0 = _r1;
    4015              :                                                                 }
    4016            0 :                                                                 tree res_op1;
    4017            0 :                                                                 res_op1 = captures[2];
    4018            0 :                                                                 tree _r;
    4019            0 :                                                                 _r = fold_build2_loc (loc, POINTER_PLUS_EXPR, type, res_op0, res_op1);
    4020            0 :                                                                 if (TREE_SIDE_EFFECTS (captures[3]))
    4021            0 :                                                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
    4022            0 :                                                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 954, __FILE__, __LINE__, true);
    4023              :                                                                 return _r;
    4024              :                                                               }
    4025     82268105 : next_after_fail1321:;
    4026              :                                                           }
    4027              :                                                         }
    4028              :                                                   }
    4029              :                                                 }
    4030              :                                                 break;
    4031              :                                               }
    4032              :                                             default:;
    4033              :                                             }
    4034              :                                           break;
    4035              :                                         }
    4036              :                                       default:;
    4037              :                                       }
    4038              :                                   }
    4039              :                                 break;
    4040              :                               }
    4041              :                             default:;
    4042              :                             }
    4043              :                           break;
    4044              :                         }
    4045              :                       default:;
    4046              :                       }
    4047              :                     break;
    4048              :                   }
    4049              :                 default:;
    4050              :                 }
    4051              :               break;
    4052              :             }
    4053              :           default:;
    4054              :           }
    4055              :         break;
    4056              :       }
    4057            0 :     case POINTER_DIFF_EXPR:
    4058            0 :       {
    4059            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    4060            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
    4061            0 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || operand_equal_p (_q31, _p0, 0))
    4062              :           {
    4063            0 :             {
    4064            0 :               tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p1, _p1, _q30, _p0 };
    4065            0 :               if (TYPE_PRECISION (TREE_TYPE (captures[1])) >= TYPE_PRECISION (TREE_TYPE (captures[2]))
    4066              : )
    4067              :                 {
    4068            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1322;
    4069            0 :                   {
    4070            0 :                     tree res_op0;
    4071            0 :                     res_op0 = captures[3];
    4072            0 :                     tree _r;
    4073            0 :                     _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4074            0 :                     if (TREE_SIDE_EFFECTS (captures[4]))
    4075            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
    4076            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 952, __FILE__, __LINE__, true);
    4077              :                     return _r;
    4078              :                   }
    4079            0 : next_after_fail1322:;
    4080              :                 }
    4081              :             }
    4082              :           }
    4083              :         break;
    4084              :       }
    4085       372556 :     case NEGATE_EXPR:
    4086       372556 :       {
    4087       372556 :         tree _q30 = TREE_OPERAND (_p1, 0);
    4088       372556 :         switch (TREE_CODE (_q30))
    4089              :           {
    4090           22 :           case BIT_AND_EXPR:
    4091           22 :             {
    4092           22 :               tree _q40 = TREE_OPERAND (_q30, 0);
    4093           22 :               tree _q41 = TREE_OPERAND (_q30, 1);
    4094           22 :               switch (TREE_CODE (_q40))
    4095              :                 {
    4096           22 :                 CASE_CONVERT:
    4097           22 :                   {
    4098           22 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    4099           22 :                     if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    4100              :                       {
    4101            1 :                         switch (TREE_CODE (_q41))
    4102              :                           {
    4103            1 :                           case INTEGER_CST:
    4104            1 :                             {
    4105            1 :                               {
    4106            1 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
    4107            1 :                                 {
    4108            1 :  tree algn = wide_int_to_tree (TREE_TYPE (captures[0]), ~wi::to_wide (captures[1]));
    4109            1 :                                     if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1323;
    4110            1 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1323;
    4111            1 :                                     {
    4112            1 :                                       tree res_op0;
    4113            1 :                                       res_op0 = captures[0];
    4114            1 :                                       tree res_op1;
    4115            1 :                                       res_op1 =  algn;
    4116            1 :                                       tree _r;
    4117            1 :                                       _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    4118            1 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 955, __FILE__, __LINE__, true);
    4119              :                                       return _r;
    4120              :                                     }
    4121           21 : next_after_fail1323:;
    4122              :                                 }
    4123              :                               }
    4124              :                               break;
    4125              :                             }
    4126              :                           default:;
    4127              :                           }
    4128              :                       }
    4129           21 :                     switch (TREE_CODE (_q50))
    4130              :                       {
    4131            0 :                       case POINTER_PLUS_EXPR:
    4132            0 :                         {
    4133            0 :                           tree _q60 = TREE_OPERAND (_q50, 0);
    4134            0 :                           tree _q61 = TREE_OPERAND (_q50, 1);
    4135            0 :                           if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
    4136              :                             {
    4137            0 :                               switch (TREE_CODE (_q61))
    4138              :                                 {
    4139            0 :                                 case INTEGER_CST:
    4140            0 :                                   {
    4141            0 :                                     switch (TREE_CODE (_q41))
    4142              :                                       {
    4143            0 :                                       case INTEGER_CST:
    4144            0 :                                         {
    4145            0 :                                           {
    4146            0 :                                             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q61, _q41 };
    4147            0 :                                             if (tree_int_cst_min_precision (captures[2], UNSIGNED) <= tree_ctz (captures[1])
    4148              : )
    4149              :                                               {
    4150            0 :                                                 {
    4151            0 :  tree algn = wide_int_to_tree (TREE_TYPE (captures[0]), ~wi::to_wide (captures[2]));
    4152            0 :                                                     if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1324;
    4153            0 :                                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1324;
    4154            0 :                                                     {
    4155            0 :                                                       tree res_op0;
    4156            0 :                                                       res_op0 = captures[0];
    4157            0 :                                                       tree res_op1;
    4158            0 :                                                       res_op1 =  algn;
    4159            0 :                                                       tree _r;
    4160            0 :                                                       _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    4161            0 :                                                       if (TREE_SIDE_EFFECTS (captures[1]))
    4162            0 :                                                         _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    4163            0 :                                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 956, __FILE__, __LINE__, true);
    4164              :                                                       return _r;
    4165              :                                                     }
    4166     82268105 : next_after_fail1324:;
    4167              :                                                 }
    4168              :                                               }
    4169              :                                           }
    4170              :                                           break;
    4171              :                                         }
    4172              :                                       default:;
    4173              :                                       }
    4174              :                                     break;
    4175              :                                   }
    4176              :                                 default:;
    4177              :                                 }
    4178              :                             }
    4179              :                           break;
    4180              :                         }
    4181              :                       default:;
    4182              :                       }
    4183              :                     break;
    4184              :                   }
    4185              :                 default:;
    4186              :                 }
    4187              :               break;
    4188              :             }
    4189              :           default:;
    4190              :           }
    4191              :         break;
    4192              :       }
    4193              :     default:;
    4194              :     }
    4195              :   return NULL_TREE;
    4196              : }
    4197              : 
    4198              : tree
    4199     39445458 : generic_simplify_NE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
    4200              : {
    4201     39445458 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    4202     39445458 :   switch (TREE_CODE (_p1))
    4203              :     {
    4204         2266 :     case NEGATE_EXPR:
    4205         2266 :       {
    4206         2266 :         tree _q30 = TREE_OPERAND (_p1, 0);
    4207         2266 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    4208              :           {
    4209            0 :             {
    4210            0 :               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4211            0 :               tree res = generic_simplify_218 (loc, type, _p0, _p1, captures, NE_EXPR);
    4212            0 :               if (res) return res;
    4213              :             }
    4214              :           }
    4215              :         break;
    4216              :       }
    4217     39445458 :     default:;
    4218              :     }
    4219     39445458 :   switch (TREE_CODE (_p0))
    4220              :     {
    4221         6238 :     case NEGATE_EXPR:
    4222         6238 :       {
    4223         6238 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4224         6238 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    4225              :           {
    4226           88 :             {
    4227           88 :               tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    4228           88 :               tree res = generic_simplify_218 (loc, type, _p0, _p1, captures, NE_EXPR);
    4229           88 :               if (res) return res;
    4230              :             }
    4231              :           }
    4232              :         break;
    4233              :       }
    4234            0 :     case CEIL_MOD_EXPR:
    4235            0 :       {
    4236            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4237            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4238            0 :         if (integer_pow2p (_q21))
    4239              :           {
    4240            0 :             if (integer_zerop (_p1))
    4241              :               {
    4242            0 :                 {
    4243            0 :                   tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    4244            0 :                   tree res = generic_simplify_219 (loc, type, _p0, _p1, captures, NE_EXPR, CEIL_MOD_EXPR);
    4245            0 :                   if (res) return res;
    4246              :                 }
    4247              :               }
    4248              :           }
    4249              :         break;
    4250              :       }
    4251         1617 :     case FLOOR_MOD_EXPR:
    4252         1617 :       {
    4253         1617 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4254         1617 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4255         1617 :         if (integer_pow2p (_q21))
    4256              :           {
    4257           20 :             if (integer_zerop (_p1))
    4258              :               {
    4259           20 :                 {
    4260           20 :                   tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    4261           20 :                   tree res = generic_simplify_219 (loc, type, _p0, _p1, captures, NE_EXPR, FLOOR_MOD_EXPR);
    4262           20 :                   if (res) return res;
    4263              :                 }
    4264              :               }
    4265              :           }
    4266              :         break;
    4267              :       }
    4268            0 :     case ROUND_MOD_EXPR:
    4269            0 :       {
    4270            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4271            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4272            0 :         if (integer_pow2p (_q21))
    4273              :           {
    4274            0 :             if (integer_zerop (_p1))
    4275              :               {
    4276            0 :                 {
    4277            0 :                   tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    4278            0 :                   tree res = generic_simplify_219 (loc, type, _p0, _p1, captures, NE_EXPR, ROUND_MOD_EXPR);
    4279            0 :                   if (res) return res;
    4280              :                 }
    4281              :               }
    4282              :           }
    4283              :         break;
    4284              :       }
    4285        84641 :     case TRUNC_MOD_EXPR:
    4286        84641 :       {
    4287        84641 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4288        84641 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4289        84641 :         if (integer_pow2p (_q21))
    4290              :           {
    4291        21750 :             if (integer_zerop (_p1))
    4292              :               {
    4293        20368 :                 {
    4294        20368 :                   tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    4295        20368 :                   tree res = generic_simplify_219 (loc, type, _p0, _p1, captures, NE_EXPR, TRUNC_MOD_EXPR);
    4296        20368 :                   if (res) return res;
    4297              :                 }
    4298              :               }
    4299              :           }
    4300              :         break;
    4301              :       }
    4302      8839211 :     CASE_CONVERT:
    4303      8839211 :       {
    4304      8839211 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4305      8839211 :         switch (TREE_CODE (_p1))
    4306              :           {
    4307           69 :           case LSHIFT_EXPR:
    4308           69 :             {
    4309           69 :               tree _q40 = TREE_OPERAND (_p1, 0);
    4310           69 :               tree _q41 = TREE_OPERAND (_p1, 1);
    4311           69 :               if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
    4312              :                 {
    4313            0 :                   {
    4314            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
    4315            0 :                     tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, NE_EXPR);
    4316            0 :                     if (res) return res;
    4317              :                   }
    4318              :                 }
    4319              :               break;
    4320              :             }
    4321      8839211 :           default:;
    4322              :           }
    4323      8839211 :       {
    4324      8839211 :         tree _p1_pops[1];
    4325      8839211 :         if (tree_nop_convert (_p1, _p1_pops))
    4326              :           {
    4327      4783923 :             tree _q40 = _p1_pops[0];
    4328      4783923 :             switch (TREE_CODE (_q40))
    4329              :               {
    4330            0 :               case LSHIFT_EXPR:
    4331            0 :                 {
    4332            0 :                   tree _q50 = TREE_OPERAND (_q40, 0);
    4333            0 :                   tree _q51 = TREE_OPERAND (_q40, 1);
    4334            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    4335              :                     {
    4336            0 :                       {
    4337            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q20 };
    4338            0 :                         tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, NE_EXPR);
    4339            0 :                         if (res) return res;
    4340              :                       }
    4341              :                     }
    4342              :                   break;
    4343              :                 }
    4344              :               default:;
    4345              :               }
    4346              :           }
    4347              :       }
    4348      8839211 :         switch (TREE_CODE (_q20))
    4349              :           {
    4350            0 :           case EXACT_DIV_EXPR:
    4351            0 :             {
    4352            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4353            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4354            0 :               switch (TREE_CODE (_q31))
    4355              :                 {
    4356            0 :                 case INTEGER_CST:
    4357            0 :                   {
    4358            0 :                     switch (TREE_CODE (_p1))
    4359              :                       {
    4360            0 :                       CASE_CONVERT:
    4361            0 :                         {
    4362            0 :                           tree _q60 = TREE_OPERAND (_p1, 0);
    4363            0 :                           switch (TREE_CODE (_q60))
    4364              :                             {
    4365            0 :                             case EXACT_DIV_EXPR:
    4366            0 :                               {
    4367            0 :                                 tree _q70 = TREE_OPERAND (_q60, 0);
    4368            0 :                                 tree _q71 = TREE_OPERAND (_q60, 1);
    4369            0 :                                 if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
    4370              :                                   {
    4371            0 :                                     {
    4372            0 :                                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q70 };
    4373            0 :                                       tree res = generic_simplify_222 (loc, type, _p0, _p1, captures, NE_EXPR);
    4374            0 :                                       if (res) return res;
    4375              :                                     }
    4376              :                                   }
    4377              :                                 break;
    4378              :                               }
    4379              :                             default:;
    4380              :                             }
    4381              :                           break;
    4382              :                         }
    4383              :                       default:;
    4384              :                       }
    4385              :                     break;
    4386              :                   }
    4387              :                 default:;
    4388              :                 }
    4389              :               break;
    4390              :             }
    4391      8839211 :           default:;
    4392              :           }
    4393      8839211 :         switch (TREE_CODE (_p1))
    4394              :           {
    4395        20860 :           case PLUS_EXPR:
    4396        20860 :             {
    4397        20860 :               tree _q40 = TREE_OPERAND (_p1, 0);
    4398        20860 :               tree _q41 = TREE_OPERAND (_p1, 1);
    4399        20860 :               switch (TREE_CODE (_q41))
    4400              :                 {
    4401          203 :                 CASE_CONVERT:
    4402          203 :                   {
    4403          203 :                     tree _q60 = TREE_OPERAND (_q41, 0);
    4404          203 :                     if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    4405              :                       {
    4406            0 :                         {
    4407            0 :                           tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q40, _q20 };
    4408            0 :                           tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, NE_EXPR);
    4409            0 :                           if (res) return res;
    4410              :                         }
    4411              :                       }
    4412              :                     break;
    4413              :                   }
    4414        20860 :                 default:;
    4415              :                 }
    4416        20860 :               switch (TREE_CODE (_q40))
    4417              :                 {
    4418          798 :                 CASE_CONVERT:
    4419          798 :                   {
    4420          798 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    4421          798 :                     if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    4422              :                       {
    4423           13 :                         {
    4424           13 :                           tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q41, _q20 };
    4425           13 :                           tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, NE_EXPR);
    4426           13 :                           if (res) return res;
    4427              :                         }
    4428              :                       }
    4429              :                     break;
    4430              :                   }
    4431        20855 :                 default:;
    4432              :                 }
    4433        20855 :               if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
    4434              :                 {
    4435            0 :                   {
    4436            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q40, _q20 };
    4437            0 :                     tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, NE_EXPR);
    4438            0 :                     if (res) return res;
    4439              :                   }
    4440              :                 }
    4441        20855 :               if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
    4442              :                 {
    4443            0 :                   {
    4444            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q41, _q20 };
    4445            0 :                     tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, NE_EXPR);
    4446            0 :                     if (res) return res;
    4447              :                   }
    4448              :                 }
    4449              :               break;
    4450              :             }
    4451      8839206 :           default:;
    4452              :           }
    4453      8839206 :       {
    4454      8839206 :         tree _p1_pops[1];
    4455      8839206 :         if (tree_nop_convert (_p1, _p1_pops))
    4456              :           {
    4457      4783923 :             tree _q40 = _p1_pops[0];
    4458      4783923 :             switch (TREE_CODE (_q40))
    4459              :               {
    4460          170 :               case PLUS_EXPR:
    4461          170 :                 {
    4462          170 :                   tree _q50 = TREE_OPERAND (_q40, 0);
    4463          170 :                   tree _q51 = TREE_OPERAND (_q40, 1);
    4464          170 :                   switch (TREE_CODE (_q51))
    4465              :                     {
    4466            0 :                     CASE_CONVERT:
    4467            0 :                       {
    4468            0 :                         tree _q70 = TREE_OPERAND (_q51, 0);
    4469            0 :                         if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
    4470              :                           {
    4471            0 :                             {
    4472            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q20 };
    4473            0 :                               tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, NE_EXPR);
    4474            0 :                               if (res) return res;
    4475              :                             }
    4476              :                           }
    4477              :                         break;
    4478              :                       }
    4479          170 :                     default:;
    4480              :                     }
    4481          170 :                   switch (TREE_CODE (_q50))
    4482              :                     {
    4483           85 :                     CASE_CONVERT:
    4484           85 :                       {
    4485           85 :                         tree _q60 = TREE_OPERAND (_q50, 0);
    4486           85 :                         if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    4487              :                           {
    4488            0 :                             {
    4489            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q51, _q20 };
    4490            0 :                               tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, NE_EXPR);
    4491            0 :                               if (res) return res;
    4492              :                             }
    4493              :                           }
    4494              :                         break;
    4495              :                       }
    4496          170 :                     default:;
    4497              :                     }
    4498          170 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    4499              :                     {
    4500            0 :                       {
    4501            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q50, _q20 };
    4502            0 :                         tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, NE_EXPR);
    4503            0 :                         if (res) return res;
    4504              :                       }
    4505              :                     }
    4506          170 :                   if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    4507              :                     {
    4508            0 :                       {
    4509            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q51, _q20 };
    4510            0 :                         tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, NE_EXPR);
    4511            0 :                         if (res) return res;
    4512              :                       }
    4513              :                     }
    4514              :                   break;
    4515              :                 }
    4516              :               default:;
    4517              :               }
    4518              :           }
    4519              :       }
    4520      8839206 :         break;
    4521              :       }
    4522     39425065 :     default:;
    4523              :     }
    4524     39425065 : {
    4525     39425065 :   tree _p0_pops[1];
    4526     39425065 :   if (tree_nop_convert (_p0, _p0_pops))
    4527              :     {
    4528      6507897 :       tree _q20 = _p0_pops[0];
    4529      6507897 :       switch (TREE_CODE (_q20))
    4530              :         {
    4531           15 :         case LSHIFT_EXPR:
    4532           15 :           {
    4533           15 :             tree _q30 = TREE_OPERAND (_q20, 0);
    4534           15 :             tree _q31 = TREE_OPERAND (_q20, 1);
    4535           15 :             switch (TREE_CODE (_p1))
    4536              :               {
    4537            1 :               CASE_CONVERT:
    4538            1 :                 {
    4539            1 :                   tree _q60 = TREE_OPERAND (_p1, 0);
    4540            1 :                   if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
    4541              :                     {
    4542            0 :                       {
    4543            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
    4544            0 :                         tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, NE_EXPR);
    4545            0 :                         if (res) return res;
    4546              :                       }
    4547              :                     }
    4548              :                   break;
    4549              :                 }
    4550           15 :               default:;
    4551              :               }
    4552           15 :             if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
    4553              :               {
    4554            1 :                 {
    4555            1 :                   tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
    4556            1 :                   tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, NE_EXPR);
    4557            1 :                   if (res) return res;
    4558              :                 }
    4559              :               }
    4560              :             break;
    4561              :           }
    4562        33818 :         case PLUS_EXPR:
    4563        33818 :           {
    4564        33818 :             tree _q30 = TREE_OPERAND (_q20, 0);
    4565        33818 :             tree _q31 = TREE_OPERAND (_q20, 1);
    4566        33818 :             switch (TREE_CODE (_q31))
    4567              :               {
    4568           37 :               CASE_CONVERT:
    4569           37 :                 {
    4570           37 :                   tree _q50 = TREE_OPERAND (_q31, 0);
    4571           37 :                   switch (TREE_CODE (_p1))
    4572              :                     {
    4573            0 :                     CASE_CONVERT:
    4574            0 :                       {
    4575            0 :                         tree _q70 = TREE_OPERAND (_p1, 0);
    4576            0 :                         if ((_q70 == _q50 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q50, 0) && types_match (_q70, _q50)))
    4577              :                           {
    4578            0 :                             {
    4579            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50 };
    4580            0 :                               tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, NE_EXPR);
    4581            0 :                               if (res) return res;
    4582              :                             }
    4583              :                           }
    4584              :                         break;
    4585              :                       }
    4586              :                     default:;
    4587              :                     }
    4588              :                   break;
    4589              :                 }
    4590        33818 :               default:;
    4591              :               }
    4592        33818 :             switch (TREE_CODE (_q30))
    4593              :               {
    4594        26431 :               CASE_CONVERT:
    4595        26431 :                 {
    4596        26431 :                   tree _q40 = TREE_OPERAND (_q30, 0);
    4597        26431 :                   switch (TREE_CODE (_p1))
    4598              :                     {
    4599          351 :                     CASE_CONVERT:
    4600          351 :                       {
    4601          351 :                         tree _q70 = TREE_OPERAND (_p1, 0);
    4602          351 :                         if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
    4603              :                           {
    4604          100 :                             {
    4605          100 :                               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q40 };
    4606          100 :                               tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, NE_EXPR);
    4607          100 :                               if (res) return res;
    4608              :                             }
    4609              :                           }
    4610              :                         break;
    4611              :                       }
    4612        26331 :                     default:;
    4613              :                     }
    4614        26331 :                   if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    4615              :                     {
    4616           20 :                       {
    4617           20 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q40 };
    4618           20 :                         tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, NE_EXPR);
    4619           20 :                         if (res) return res;
    4620              :                       }
    4621              :                     }
    4622              :                   break;
    4623              :                 }
    4624        33698 :               default:;
    4625              :               }
    4626        33698 :             switch (TREE_CODE (_q31))
    4627              :               {
    4628           37 :               CASE_CONVERT:
    4629           37 :                 {
    4630           37 :                   tree _q50 = TREE_OPERAND (_q31, 0);
    4631           37 :                   if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50)))
    4632              :                     {
    4633            0 :                       {
    4634            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50 };
    4635            0 :                         tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, NE_EXPR);
    4636            0 :                         if (res) return res;
    4637              :                       }
    4638              :                     }
    4639              :                   break;
    4640              :                 }
    4641        33698 :               default:;
    4642              :               }
    4643        33698 :             switch (TREE_CODE (_p1))
    4644              :               {
    4645          357 :               CASE_CONVERT:
    4646          357 :                 {
    4647          357 :                   tree _q60 = TREE_OPERAND (_p1, 0);
    4648          357 :                   if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
    4649              :                     {
    4650            0 :                       {
    4651            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    4652            0 :                         tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, NE_EXPR);
    4653            0 :                         if (res) return res;
    4654              :                       }
    4655              :                     }
    4656          357 :                   if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
    4657              :                     {
    4658           62 :                       {
    4659           62 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30 };
    4660           62 :                         tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, NE_EXPR);
    4661           62 :                         if (res) return res;
    4662              :                       }
    4663              :                     }
    4664              :                   break;
    4665              :                 }
    4666        33636 :               default:;
    4667              :               }
    4668        33636 :             if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
    4669              :               {
    4670            0 :                 {
    4671            0 :                   tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    4672            0 :                   tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, NE_EXPR);
    4673            0 :                   if (res) return res;
    4674              :                 }
    4675              :               }
    4676        33636 :             if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    4677              :               {
    4678            0 :                 {
    4679            0 :                   tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30 };
    4680            0 :                   tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, NE_EXPR);
    4681            0 :                   if (res) return res;
    4682              :                 }
    4683              :               }
    4684              :             break;
    4685              :           }
    4686              :         default:;
    4687              :         }
    4688              :     }
    4689              : }
    4690     39424882 :   {
    4691     39424882 :     tree _p1_pops[1];
    4692     39424882 :     if (tree_nop_convert (_p1, _p1_pops))
    4693              :       {
    4694      5155691 :         tree _q30 = _p1_pops[0];
    4695      5155691 :         switch (TREE_CODE (_q30))
    4696              :           {
    4697            0 :           case LSHIFT_EXPR:
    4698            0 :             {
    4699            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    4700            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    4701            0 :               if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
    4702              :                 {
    4703            0 :                   {
    4704            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _q40, _p0 };
    4705            0 :                     tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, NE_EXPR);
    4706            0 :                     if (res) return res;
    4707              :                   }
    4708              :                 }
    4709              :               break;
    4710              :             }
    4711              :           default:;
    4712              :           }
    4713              :       }
    4714              :   }
    4715     39424882 :   switch (TREE_CODE (_p0))
    4716              :     {
    4717         5113 :     case LSHIFT_EXPR:
    4718         5113 :       {
    4719         5113 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4720         5113 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4721         5113 :         switch (TREE_CODE (_p1))
    4722              :           {
    4723           35 :           CASE_CONVERT:
    4724           35 :             {
    4725           35 :               tree _q50 = TREE_OPERAND (_p1, 0);
    4726           35 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    4727              :                 {
    4728            4 :                   {
    4729            4 :                     tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4730            4 :                     tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, NE_EXPR);
    4731            4 :                     if (res) return res;
    4732              :                   }
    4733              :                 }
    4734              :               break;
    4735              :             }
    4736         5112 :           default:;
    4737              :           }
    4738         5112 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    4739              :           {
    4740           27 :             {
    4741           27 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4742           27 :               tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, NE_EXPR);
    4743           27 :               if (res) return res;
    4744              :             }
    4745              :           }
    4746         5108 :         if (tree_zero_one_valued_p (_q20))
    4747              :           {
    4748          474 :             switch (TREE_CODE (_q21))
    4749              :               {
    4750          114 :               case INTEGER_CST:
    4751          114 :                 {
    4752          114 :                   if (integer_zerop (_p1))
    4753              :                     {
    4754            5 :                       {
    4755            5 :                         tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    4756            5 :                         tree res = generic_simplify_224 (loc, type, _p0, _p1, captures, NE_EXPR);
    4757            5 :                         if (res) return res;
    4758              :                       }
    4759              :                     }
    4760              :                   break;
    4761              :                 }
    4762              :               default:;
    4763              :               }
    4764              :           }
    4765              :         break;
    4766              :       }
    4767     39424872 :     default:;
    4768              :     }
    4769     39424872 :   switch (TREE_CODE (_p1))
    4770              :     {
    4771          264 :     case LSHIFT_EXPR:
    4772          264 :       {
    4773          264 :         tree _q30 = TREE_OPERAND (_p1, 0);
    4774          264 :         tree _q31 = TREE_OPERAND (_p1, 1);
    4775          264 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    4776              :           {
    4777            0 :             {
    4778            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
    4779            0 :               tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, NE_EXPR);
    4780            0 :               if (res) return res;
    4781              :             }
    4782              :           }
    4783              :         break;
    4784              :       }
    4785     39424872 :     default:;
    4786              :     }
    4787     39424872 :   switch (TREE_CODE (_p0))
    4788              :     {
    4789        64708 :     case EQ_EXPR:
    4790        64708 :       {
    4791        64708 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4792        64708 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4793        64708 :         switch (TREE_CODE (_q20))
    4794              :           {
    4795          326 :           case BIT_AND_EXPR:
    4796          326 :             {
    4797          326 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4798          326 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4799          326 :               if (integer_pow2p (_q31))
    4800              :                 {
    4801          312 :                   if (integer_zerop (_q21))
    4802              :                     {
    4803          312 :                       switch (TREE_CODE (_p1))
    4804              :                         {
    4805            0 :                         case EQ_EXPR:
    4806            0 :                           {
    4807            0 :                             tree _q70 = TREE_OPERAND (_p1, 0);
    4808            0 :                             tree _q71 = TREE_OPERAND (_p1, 1);
    4809            0 :                             switch (TREE_CODE (_q70))
    4810              :                               {
    4811            0 :                               case BIT_AND_EXPR:
    4812            0 :                                 {
    4813            0 :                                   tree _q80 = TREE_OPERAND (_q70, 0);
    4814            0 :                                   tree _q81 = TREE_OPERAND (_q70, 1);
    4815            0 :                                   if ((_q81 == _q31 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q31, 0) && types_match (_q81, _q31)))
    4816              :                                     {
    4817            0 :                                       if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
    4818              :                                         {
    4819            0 :                                           {
    4820            0 :                                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q70, _q80 };
    4821            0 :                                             const enum tree_code icmp0 = EQ_EXPR;
    4822            0 :                                             const enum tree_code icmp1 = EQ_EXPR;
    4823            0 :                                             if (types_match (captures[2], captures[7])
    4824              : )
    4825              :                                               {
    4826            0 :                                                 {
    4827            0 :  bool innersame = icmp0 == icmp1;
    4828            0 :                                                     if (innersame == (NE_EXPR == EQ_EXPR)
    4829              : )
    4830              :                                                       {
    4831              :                                                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1590;
    4832              :                                                         {
    4833              :                                                           tree res_op0;
    4834              :                                                           {
    4835              :                                                             tree _o1[2], _r1;
    4836              :                                                             {
    4837              :                                                               tree _o2[2], _r2;
    4838              :                                                               _o2[0] = captures[2];
    4839              :                                                               _o2[1] = captures[7];
    4840              :                                                               _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    4841              :                                                               _o1[0] = _r2;
    4842              :                                                             }
    4843              :                                                             _o1[1] = captures[3];
    4844              :                                                             _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    4845              :                                                             res_op0 = _r1;
    4846              :                                                           }
    4847              :                                                           tree res_op1;
    4848              :                                                           res_op1 = captures[4];
    4849              :                                                           tree _r;
    4850              :                                                           _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
    4851              :                                                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 928, __FILE__, __LINE__, true);
    4852              :                                                           return _r;
    4853              :                                                         }
    4854              : next_after_fail1590:;
    4855              :                                                       }
    4856              :                                                     else
    4857              :                                                       {
    4858            0 :                                                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1591;
    4859            0 :                                                         {
    4860            0 :                                                           tree res_op0;
    4861            0 :                                                           {
    4862            0 :                                                             tree _o1[2], _r1;
    4863            0 :                                                             {
    4864            0 :                                                               tree _o2[2], _r2;
    4865            0 :                                                               _o2[0] = captures[2];
    4866            0 :                                                               _o2[1] = captures[7];
    4867            0 :                                                               _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    4868            0 :                                                               _o1[0] = _r2;
    4869              :                                                             }
    4870            0 :                                                             _o1[1] = captures[3];
    4871            0 :                                                             _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    4872            0 :                                                             res_op0 = _r1;
    4873              :                                                           }
    4874            0 :                                                           tree res_op1;
    4875            0 :                                                           res_op1 = captures[4];
    4876            0 :                                                           tree _r;
    4877            0 :                                                           _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    4878            0 :                                                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 929, __FILE__, __LINE__, true);
    4879              :                                                           return _r;
    4880              :                                                         }
    4881            0 : next_after_fail1591:;
    4882              :                                                       }
    4883              :                                                 }
    4884              :                                               }
    4885              :                                           }
    4886              :                                         }
    4887              :                                     }
    4888              :                                   break;
    4889              :                                 }
    4890              :                               default:;
    4891              :                               }
    4892              :                             break;
    4893              :                           }
    4894            0 :                         case NE_EXPR:
    4895            0 :                           {
    4896            0 :                             tree _q70 = TREE_OPERAND (_p1, 0);
    4897            0 :                             tree _q71 = TREE_OPERAND (_p1, 1);
    4898            0 :                             switch (TREE_CODE (_q70))
    4899              :                               {
    4900            0 :                               case BIT_AND_EXPR:
    4901            0 :                                 {
    4902            0 :                                   tree _q80 = TREE_OPERAND (_q70, 0);
    4903            0 :                                   tree _q81 = TREE_OPERAND (_q70, 1);
    4904            0 :                                   if ((_q81 == _q31 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q31, 0) && types_match (_q81, _q31)))
    4905              :                                     {
    4906            0 :                                       if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
    4907              :                                         {
    4908            0 :                                           {
    4909            0 :                                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q70, _q80 };
    4910            0 :                                             const enum tree_code icmp0 = EQ_EXPR;
    4911            0 :                                             const enum tree_code icmp1 = NE_EXPR;
    4912            0 :                                             if (types_match (captures[2], captures[7])
    4913              : )
    4914              :                                               {
    4915            0 :                                                 {
    4916            0 :  bool innersame = icmp0 == icmp1;
    4917            0 :                                                     if (innersame == (NE_EXPR == EQ_EXPR)
    4918              : )
    4919              :                                                       {
    4920            0 :                                                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1592;
    4921            0 :                                                         {
    4922            0 :                                                           tree res_op0;
    4923            0 :                                                           {
    4924            0 :                                                             tree _o1[2], _r1;
    4925            0 :                                                             {
    4926            0 :                                                               tree _o2[2], _r2;
    4927            0 :                                                               _o2[0] = captures[2];
    4928            0 :                                                               _o2[1] = captures[7];
    4929            0 :                                                               _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    4930            0 :                                                               _o1[0] = _r2;
    4931              :                                                             }
    4932            0 :                                                             _o1[1] = captures[3];
    4933            0 :                                                             _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    4934            0 :                                                             res_op0 = _r1;
    4935              :                                                           }
    4936            0 :                                                           tree res_op1;
    4937            0 :                                                           res_op1 = captures[4];
    4938            0 :                                                           tree _r;
    4939            0 :                                                           _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
    4940            0 :                                                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 928, __FILE__, __LINE__, true);
    4941              :                                                           return _r;
    4942              :                                                         }
    4943            0 : next_after_fail1592:;
    4944              :                                                       }
    4945              :                                                     else
    4946              :                                                       {
    4947              :                                                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1593;
    4948              :                                                         {
    4949              :                                                           tree res_op0;
    4950              :                                                           {
    4951              :                                                             tree _o1[2], _r1;
    4952              :                                                             {
    4953              :                                                               tree _o2[2], _r2;
    4954              :                                                               _o2[0] = captures[2];
    4955              :                                                               _o2[1] = captures[7];
    4956              :                                                               _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    4957              :                                                               _o1[0] = _r2;
    4958              :                                                             }
    4959              :                                                             _o1[1] = captures[3];
    4960              :                                                             _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    4961              :                                                             res_op0 = _r1;
    4962              :                                                           }
    4963              :                                                           tree res_op1;
    4964              :                                                           res_op1 = captures[4];
    4965              :                                                           tree _r;
    4966              :                                                           _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    4967              :                                                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 929, __FILE__, __LINE__, true);
    4968              :                                                           return _r;
    4969              :                                                         }
    4970              : next_after_fail1593:;
    4971              :                                                       }
    4972              :                                                 }
    4973              :                                               }
    4974              :                                           }
    4975              :                                         }
    4976              :                                     }
    4977              :                                   break;
    4978              :                                 }
    4979              :                               default:;
    4980              :                               }
    4981              :                             break;
    4982              :                           }
    4983              :                         default:;
    4984              :                         }
    4985              :                     }
    4986              :                 }
    4987              :               break;
    4988              :             }
    4989              :           default:;
    4990              :           }
    4991              :         break;
    4992              :       }
    4993        70032 :     case NE_EXPR:
    4994        70032 :       {
    4995        70032 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4996        70032 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4997        70032 :         switch (TREE_CODE (_q20))
    4998              :           {
    4999           15 :           case BIT_AND_EXPR:
    5000           15 :             {
    5001           15 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5002           15 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5003           15 :               if (integer_pow2p (_q31))
    5004              :                 {
    5005           15 :                   if (integer_zerop (_q21))
    5006              :                     {
    5007           15 :                       switch (TREE_CODE (_p1))
    5008              :                         {
    5009            0 :                         case EQ_EXPR:
    5010            0 :                           {
    5011            0 :                             tree _q70 = TREE_OPERAND (_p1, 0);
    5012            0 :                             tree _q71 = TREE_OPERAND (_p1, 1);
    5013            0 :                             switch (TREE_CODE (_q70))
    5014              :                               {
    5015            0 :                               case BIT_AND_EXPR:
    5016            0 :                                 {
    5017            0 :                                   tree _q80 = TREE_OPERAND (_q70, 0);
    5018            0 :                                   tree _q81 = TREE_OPERAND (_q70, 1);
    5019            0 :                                   if ((_q81 == _q31 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q31, 0) && types_match (_q81, _q31)))
    5020              :                                     {
    5021            0 :                                       if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
    5022              :                                         {
    5023            0 :                                           {
    5024            0 :                                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q70, _q80 };
    5025            0 :                                             const enum tree_code icmp0 = NE_EXPR;
    5026            0 :                                             const enum tree_code icmp1 = EQ_EXPR;
    5027            0 :                                             if (types_match (captures[2], captures[7])
    5028              : )
    5029              :                                               {
    5030            0 :                                                 {
    5031            0 :  bool innersame = icmp0 == icmp1;
    5032            0 :                                                     if (innersame == (NE_EXPR == EQ_EXPR)
    5033              : )
    5034              :                                                       {
    5035            0 :                                                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1594;
    5036            0 :                                                         {
    5037            0 :                                                           tree res_op0;
    5038            0 :                                                           {
    5039            0 :                                                             tree _o1[2], _r1;
    5040            0 :                                                             {
    5041            0 :                                                               tree _o2[2], _r2;
    5042            0 :                                                               _o2[0] = captures[2];
    5043            0 :                                                               _o2[1] = captures[7];
    5044            0 :                                                               _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    5045            0 :                                                               _o1[0] = _r2;
    5046              :                                                             }
    5047            0 :                                                             _o1[1] = captures[3];
    5048            0 :                                                             _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    5049            0 :                                                             res_op0 = _r1;
    5050              :                                                           }
    5051            0 :                                                           tree res_op1;
    5052            0 :                                                           res_op1 = captures[4];
    5053            0 :                                                           tree _r;
    5054            0 :                                                           _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
    5055            0 :                                                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 928, __FILE__, __LINE__, true);
    5056              :                                                           return _r;
    5057              :                                                         }
    5058            0 : next_after_fail1594:;
    5059              :                                                       }
    5060              :                                                     else
    5061              :                                                       {
    5062              :                                                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1595;
    5063              :                                                         {
    5064              :                                                           tree res_op0;
    5065              :                                                           {
    5066              :                                                             tree _o1[2], _r1;
    5067              :                                                             {
    5068              :                                                               tree _o2[2], _r2;
    5069              :                                                               _o2[0] = captures[2];
    5070              :                                                               _o2[1] = captures[7];
    5071              :                                                               _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    5072              :                                                               _o1[0] = _r2;
    5073              :                                                             }
    5074              :                                                             _o1[1] = captures[3];
    5075              :                                                             _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    5076              :                                                             res_op0 = _r1;
    5077              :                                                           }
    5078              :                                                           tree res_op1;
    5079              :                                                           res_op1 = captures[4];
    5080              :                                                           tree _r;
    5081              :                                                           _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    5082              :                                                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 929, __FILE__, __LINE__, true);
    5083              :                                                           return _r;
    5084              :                                                         }
    5085              : next_after_fail1595:;
    5086              :                                                       }
    5087              :                                                 }
    5088              :                                               }
    5089              :                                           }
    5090              :                                         }
    5091              :                                     }
    5092              :                                   break;
    5093              :                                 }
    5094              :                               default:;
    5095              :                               }
    5096              :                             break;
    5097              :                           }
    5098            8 :                         case NE_EXPR:
    5099            8 :                           {
    5100            8 :                             tree _q70 = TREE_OPERAND (_p1, 0);
    5101            8 :                             tree _q71 = TREE_OPERAND (_p1, 1);
    5102            8 :                             switch (TREE_CODE (_q70))
    5103              :                               {
    5104            0 :                               case BIT_AND_EXPR:
    5105            0 :                                 {
    5106            0 :                                   tree _q80 = TREE_OPERAND (_q70, 0);
    5107            0 :                                   tree _q81 = TREE_OPERAND (_q70, 1);
    5108            0 :                                   if ((_q81 == _q31 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q31, 0) && types_match (_q81, _q31)))
    5109              :                                     {
    5110            0 :                                       if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
    5111              :                                         {
    5112            0 :                                           {
    5113            0 :                                             tree captures[8] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q70, _q80 };
    5114            0 :                                             const enum tree_code icmp0 = NE_EXPR;
    5115            0 :                                             const enum tree_code icmp1 = NE_EXPR;
    5116            0 :                                             if (types_match (captures[2], captures[7])
    5117              : )
    5118              :                                               {
    5119            0 :                                                 {
    5120            0 :  bool innersame = icmp0 == icmp1;
    5121            0 :                                                     if (innersame == (NE_EXPR == EQ_EXPR)
    5122              : )
    5123              :                                                       {
    5124              :                                                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1596;
    5125              :                                                         {
    5126              :                                                           tree res_op0;
    5127              :                                                           {
    5128              :                                                             tree _o1[2], _r1;
    5129              :                                                             {
    5130              :                                                               tree _o2[2], _r2;
    5131              :                                                               _o2[0] = captures[2];
    5132              :                                                               _o2[1] = captures[7];
    5133              :                                                               _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    5134              :                                                               _o1[0] = _r2;
    5135              :                                                             }
    5136              :                                                             _o1[1] = captures[3];
    5137              :                                                             _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    5138              :                                                             res_op0 = _r1;
    5139              :                                                           }
    5140              :                                                           tree res_op1;
    5141              :                                                           res_op1 = captures[4];
    5142              :                                                           tree _r;
    5143              :                                                           _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
    5144              :                                                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 928, __FILE__, __LINE__, true);
    5145              :                                                           return _r;
    5146              :                                                         }
    5147              : next_after_fail1596:;
    5148              :                                                       }
    5149              :                                                     else
    5150              :                                                       {
    5151            0 :                                                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1597;
    5152            0 :                                                         {
    5153            0 :                                                           tree res_op0;
    5154            0 :                                                           {
    5155            0 :                                                             tree _o1[2], _r1;
    5156            0 :                                                             {
    5157            0 :                                                               tree _o2[2], _r2;
    5158            0 :                                                               _o2[0] = captures[2];
    5159            0 :                                                               _o2[1] = captures[7];
    5160            0 :                                                               _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    5161            0 :                                                               _o1[0] = _r2;
    5162              :                                                             }
    5163            0 :                                                             _o1[1] = captures[3];
    5164            0 :                                                             _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    5165            0 :                                                             res_op0 = _r1;
    5166              :                                                           }
    5167            0 :                                                           tree res_op1;
    5168            0 :                                                           res_op1 = captures[4];
    5169            0 :                                                           tree _r;
    5170            0 :                                                           _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    5171            0 :                                                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 929, __FILE__, __LINE__, true);
    5172              :                                                           return _r;
    5173              :                                                         }
    5174            0 : next_after_fail1597:;
    5175              :                                                       }
    5176              :                                                 }
    5177              :                                               }
    5178              :                                           }
    5179              :                                         }
    5180              :                                     }
    5181              :                                   break;
    5182              :                                 }
    5183              :                               default:;
    5184              :                               }
    5185              :                             break;
    5186              :                           }
    5187              :                         default:;
    5188              :                         }
    5189              :                     }
    5190              :                 }
    5191              :               break;
    5192              :             }
    5193              :           default:;
    5194              :           }
    5195              :         break;
    5196              :       }
    5197          255 :     case VIEW_CONVERT_EXPR:
    5198          255 :       {
    5199          255 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5200          255 :         if (tree_zero_one_valued_p (_q20))
    5201              :           {
    5202            0 :             if (integer_zerop (_p1))
    5203              :               {
    5204            0 :                 {
    5205            0 :                   tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
    5206            0 :                   tree res = generic_simplify_226 (loc, type, _p0, _p1, captures, NE_EXPR);
    5207            0 :                   if (res) return res;
    5208              :                 }
    5209              :               }
    5210              :           }
    5211              :         break;
    5212              :       }
    5213        21345 :     case RSHIFT_EXPR:
    5214        21345 :       {
    5215        21345 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5216        21345 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5217        21345 :         switch (TREE_CODE (_q21))
    5218              :           {
    5219        18993 :           case INTEGER_CST:
    5220        18993 :             {
    5221        18993 :               switch (TREE_CODE (_p1))
    5222              :                 {
    5223          210 :                 case RSHIFT_EXPR:
    5224          210 :                   {
    5225          210 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    5226          210 :                     tree _q51 = TREE_OPERAND (_p1, 1);
    5227          210 :                     if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    5228              :                       {
    5229           15 :                         switch (TREE_CODE (_q51))
    5230              :                           {
    5231           15 :                           case INTEGER_CST:
    5232           15 :                             {
    5233           15 :                               {
    5234           15 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    5235           15 :                                 tree res = generic_simplify_227 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR);
    5236           15 :                                 if (res) return res;
    5237              :                               }
    5238            3 :                               break;
    5239              :                             }
    5240              :                           default:;
    5241              :                           }
    5242              :                       }
    5243              :                     break;
    5244              :                   }
    5245        18981 :                 default:;
    5246              :                 }
    5247        18981 :             if (integer_zerop (_p1))
    5248              :               {
    5249         8330 :                 {
    5250         8330 :                   tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    5251         8330 :                   tree res = generic_simplify_228 (loc, type, _p0, _p1, captures, NE_EXPR, LT_EXPR);
    5252         8330 :                   if (res) return res;
    5253              :                 }
    5254              :               }
    5255              :               break;
    5256              :             }
    5257              :           default:;
    5258              :           }
    5259              :         break;
    5260              :       }
    5261       110311 :     case MULT_EXPR:
    5262       110311 :       {
    5263       110311 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5264       110311 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5265       110311 :         switch (TREE_CODE (_p1))
    5266              :           {
    5267         3466 :           case MULT_EXPR:
    5268         3466 :             {
    5269         3466 :               tree _q50 = TREE_OPERAND (_p1, 0);
    5270         3466 :               tree _q51 = TREE_OPERAND (_p1, 1);
    5271         3466 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    5272              :                 {
    5273         1781 :                   {
    5274         1781 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    5275         1781 :                     tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, NE_EXPR);
    5276         1781 :                     if (res) return res;
    5277              :                   }
    5278              :                 }
    5279         3462 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    5280              :                 {
    5281           53 :                   {
    5282           53 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
    5283           53 :                     tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, NE_EXPR);
    5284           53 :                     if (res) return res;
    5285              :                   }
    5286              :                 }
    5287         3462 :               if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    5288              :                 {
    5289           22 :                   {
    5290           22 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
    5291           22 :                     tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, NE_EXPR);
    5292           22 :                     if (res) return res;
    5293              :                   }
    5294              :                 }
    5295         3462 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5296              :                 {
    5297          260 :                   {
    5298          260 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
    5299          260 :                     tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, NE_EXPR);
    5300          260 :                     if (res) return res;
    5301              :                   }
    5302              :                 }
    5303              :               break;
    5304              :             }
    5305       110307 :           default:;
    5306              :           }
    5307       110307 :         switch (TREE_CODE (_q21))
    5308              :           {
    5309        91458 :           case INTEGER_CST:
    5310        91458 :             {
    5311        91458 :               switch (TREE_CODE (_p1))
    5312              :                 {
    5313         2604 :                 case MULT_EXPR:
    5314         2604 :                   {
    5315         2604 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    5316         2604 :                     tree _q51 = TREE_OPERAND (_p1, 1);
    5317         2604 :                     if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    5318              :                       {
    5319         1249 :                         {
    5320         1249 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    5321         1249 :                           tree res = generic_simplify_230 (loc, type, _p0, _p1, captures, NE_EXPR);
    5322         1249 :                           if (res) return res;
    5323              :                         }
    5324              :                       }
    5325              :                     break;
    5326              :                   }
    5327              :                 default:;
    5328              :                 }
    5329              :               break;
    5330              :             }
    5331              :           default:;
    5332              :           }
    5333              :         break;
    5334              :       }
    5335         1850 :     case EXACT_DIV_EXPR:
    5336         1850 :       {
    5337         1850 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5338         1850 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5339         1850 :         switch (TREE_CODE (_q21))
    5340              :           {
    5341         1850 :           case INTEGER_CST:
    5342         1850 :             {
    5343         1850 :               switch (TREE_CODE (_p1))
    5344              :                 {
    5345           22 :                 case EXACT_DIV_EXPR:
    5346           22 :                   {
    5347           22 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    5348           22 :                     tree _q51 = TREE_OPERAND (_p1, 1);
    5349           22 :                     if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    5350              :                       {
    5351           12 :                         {
    5352           12 :                           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
    5353           12 :                           tree res = generic_simplify_222 (loc, type, _p0, _p1, captures, NE_EXPR);
    5354           12 :                           if (res) return res;
    5355              :                         }
    5356              :                       }
    5357              :                     break;
    5358              :                   }
    5359              :                 default:;
    5360              :                 }
    5361              :               break;
    5362              :             }
    5363              :           default:;
    5364              :           }
    5365              :         break;
    5366              :       }
    5367        11666 :     case TRUNC_DIV_EXPR:
    5368        11666 :       {
    5369        11666 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5370        11666 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5371        11666 :         switch (TREE_CODE (_q21))
    5372              :           {
    5373         8645 :           case INTEGER_CST:
    5374         8645 :             {
    5375         8645 :               switch (TREE_CODE (_p1))
    5376              :                 {
    5377         2490 :                 case INTEGER_CST:
    5378         2490 :                   {
    5379         2490 :                     {
    5380         2490 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    5381         2490 :                       tree res = generic_simplify_231 (loc, type, _p0, _p1, captures, NE_EXPR);
    5382         2490 :                       if (res) return res;
    5383              :                     }
    5384          386 :                     break;
    5385              :                   }
    5386              :                 default:;
    5387              :                 }
    5388              :               break;
    5389              :             }
    5390              :           default:;
    5391              :           }
    5392              :         break;
    5393              :       }
    5394      1563622 :     case PLUS_EXPR:
    5395      1563622 :       {
    5396      1563622 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5397      1563622 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5398      1563622 :         switch (TREE_CODE (_p1))
    5399              :           {
    5400       195130 :           case PLUS_EXPR:
    5401       195130 :             {
    5402       195130 :               tree _q50 = TREE_OPERAND (_p1, 0);
    5403       195130 :               tree _q51 = TREE_OPERAND (_p1, 1);
    5404       195130 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    5405              :                 {
    5406          763 :                   {
    5407          763 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    5408         1526 :                     if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    5409         1495 :  && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
    5410          645 :  || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
    5411              : )
    5412              :                       {
    5413          732 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1598;
    5414          732 :                         {
    5415          732 :                           tree res_op0;
    5416          732 :                           res_op0 = captures[0];
    5417          732 :                           tree res_op1;
    5418          732 :                           res_op1 = captures[2];
    5419          732 :                           tree _r;
    5420          732 :                           _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    5421          732 :                           if (TREE_SIDE_EFFECTS (captures[1]))
    5422            0 :                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    5423          732 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 966, __FILE__, __LINE__, true);
    5424              :                           return _r;
    5425              :                         }
    5426            0 : next_after_fail1598:;
    5427              :                       }
    5428              :                   }
    5429              :                 }
    5430       194398 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    5431              :                 {
    5432            0 :                   {
    5433            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
    5434            0 :                     if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    5435            0 :  && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
    5436            0 :  || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
    5437              : )
    5438              :                       {
    5439            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1599;
    5440            0 :                         {
    5441            0 :                           tree res_op0;
    5442            0 :                           res_op0 = captures[0];
    5443            0 :                           tree res_op1;
    5444            0 :                           res_op1 = captures[2];
    5445            0 :                           tree _r;
    5446            0 :                           _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    5447            0 :                           if (TREE_SIDE_EFFECTS (captures[1]))
    5448            0 :                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    5449            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 966, __FILE__, __LINE__, true);
    5450              :                           return _r;
    5451              :                         }
    5452            0 : next_after_fail1599:;
    5453              :                       }
    5454              :                   }
    5455              :                 }
    5456       194398 :               if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    5457              :                 {
    5458          106 :                   {
    5459          106 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
    5460          212 :                     if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    5461          212 :  && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
    5462          106 :  || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
    5463              : )
    5464              :                       {
    5465          106 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1600;
    5466          106 :                         {
    5467          106 :                           tree res_op0;
    5468          106 :                           res_op0 = captures[0];
    5469          106 :                           tree res_op1;
    5470          106 :                           res_op1 = captures[2];
    5471          106 :                           tree _r;
    5472          106 :                           _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    5473          106 :                           if (TREE_SIDE_EFFECTS (captures[1]))
    5474            0 :                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    5475          106 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 966, __FILE__, __LINE__, true);
    5476              :                           return _r;
    5477              :                         }
    5478            0 : next_after_fail1600:;
    5479              :                       }
    5480              :                   }
    5481              :                 }
    5482       194292 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5483              :                 {
    5484       111550 :                   {
    5485       111550 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
    5486       223100 :                     if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    5487       223077 :  && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
    5488       111527 :  || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
    5489              : )
    5490              :                       {
    5491       111527 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1601;
    5492       111527 :                         {
    5493       111527 :                           tree res_op0;
    5494       111527 :                           res_op0 = captures[0];
    5495       111527 :                           tree res_op1;
    5496       111527 :                           res_op1 = captures[2];
    5497       111527 :                           tree _r;
    5498       111527 :                           _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    5499       111527 :                           if (TREE_SIDE_EFFECTS (captures[1]))
    5500            0 :                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    5501       111527 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 966, __FILE__, __LINE__, true);
    5502              :                           return _r;
    5503              :                         }
    5504            0 : next_after_fail1601:;
    5505              :                       }
    5506              :                   }
    5507              :                 }
    5508              :               break;
    5509              :             }
    5510      1451257 :           default:;
    5511              :           }
    5512      1451257 :         switch (TREE_CODE (_q21))
    5513              :           {
    5514          819 :           CASE_CONVERT:
    5515          819 :             {
    5516          819 :               tree _q40 = TREE_OPERAND (_q21, 0);
    5517          819 :               switch (TREE_CODE (_p1))
    5518              :                 {
    5519           88 :                 CASE_CONVERT:
    5520           88 :                   {
    5521           88 :                     tree _q60 = TREE_OPERAND (_p1, 0);
    5522           88 :                     if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
    5523              :                       {
    5524            0 :                         {
    5525            0 :                           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40 };
    5526            0 :                           tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, NE_EXPR);
    5527            0 :                           if (res) return res;
    5528              :                         }
    5529              :                       }
    5530              :                     break;
    5531              :                   }
    5532              :                 default:;
    5533              :                 }
    5534              :               break;
    5535              :             }
    5536      1451257 :           default:;
    5537              :           }
    5538      1451257 :         switch (TREE_CODE (_q20))
    5539              :           {
    5540       141944 :           CASE_CONVERT:
    5541       141944 :             {
    5542       141944 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5543       141944 :               switch (TREE_CODE (_p1))
    5544              :                 {
    5545         3925 :                 CASE_CONVERT:
    5546         3925 :                   {
    5547         3925 :                     tree _q60 = TREE_OPERAND (_p1, 0);
    5548         3925 :                     if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
    5549              :                       {
    5550          369 :                         {
    5551          369 :                           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q30 };
    5552          369 :                           tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, NE_EXPR);
    5553          369 :                           if (res) return res;
    5554              :                         }
    5555              :                       }
    5556              :                     break;
    5557              :                   }
    5558       141575 :                 default:;
    5559              :                 }
    5560       141575 :               if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    5561              :                 {
    5562            0 :                   {
    5563            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q30 };
    5564            0 :                     tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, NE_EXPR);
    5565            0 :                     if (res) return res;
    5566              :                   }
    5567              :                 }
    5568              :               break;
    5569              :             }
    5570      1450888 :           default:;
    5571              :           }
    5572      1450888 :         switch (TREE_CODE (_q21))
    5573              :           {
    5574          819 :           CASE_CONVERT:
    5575          819 :             {
    5576          819 :               tree _q40 = TREE_OPERAND (_q21, 0);
    5577          819 :               if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    5578              :                 {
    5579            0 :                   {
    5580            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40 };
    5581            0 :                     tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, NE_EXPR);
    5582            0 :                     if (res) return res;
    5583              :                   }
    5584              :                 }
    5585              :               break;
    5586              :             }
    5587      1450888 :           default:;
    5588              :           }
    5589      1450888 :         switch (TREE_CODE (_p1))
    5590              :           {
    5591        44884 :           CASE_CONVERT:
    5592        44884 :             {
    5593        44884 :               tree _q50 = TREE_OPERAND (_p1, 0);
    5594        44884 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    5595              :                 {
    5596            0 :                   {
    5597            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
    5598            0 :                     tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, NE_EXPR);
    5599            0 :                     if (res) return res;
    5600              :                   }
    5601              :                 }
    5602        44884 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5603              :                 {
    5604            0 :                   {
    5605            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q20 };
    5606            0 :                     tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, NE_EXPR);
    5607            0 :                     if (res) return res;
    5608              :                   }
    5609              :                 }
    5610              :               break;
    5611              :             }
    5612      1450888 :           default:;
    5613              :           }
    5614      1450888 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5615              :           {
    5616        77804 :             {
    5617        77804 :               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
    5618        77804 :               tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, NE_EXPR);
    5619        77804 :               if (res) return res;
    5620              :             }
    5621              :           }
    5622      1373792 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    5623              :           {
    5624        19393 :             {
    5625        19393 :               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q21, _q20 };
    5626        19393 :               tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, NE_EXPR);
    5627        19393 :               if (res) return res;
    5628              :             }
    5629              :           }
    5630              :         break;
    5631              :       }
    5632       554331 :     case POINTER_PLUS_EXPR:
    5633       554331 :       {
    5634       554331 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5635       554331 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5636       554331 :         switch (TREE_CODE (_p1))
    5637              :           {
    5638        36700 :           case POINTER_PLUS_EXPR:
    5639        36700 :             {
    5640        36700 :               tree _q50 = TREE_OPERAND (_p1, 0);
    5641        36700 :               tree _q51 = TREE_OPERAND (_p1, 1);
    5642        36700 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5643              :                 {
    5644        10024 :                   {
    5645        10024 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
    5646        10024 :                     tree res = generic_simplify_232 (loc, type, _p0, _p1, captures, NE_EXPR);
    5647        10024 :                     if (res) return res;
    5648              :                   }
    5649              :                 }
    5650              :               break;
    5651              :             }
    5652       544307 :           default:;
    5653              :           }
    5654       544307 :         switch (TREE_CODE (_q20))
    5655              :           {
    5656        80441 :           CASE_CONVERT:
    5657        80441 :             {
    5658        80441 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5659        80441 :               switch (TREE_CODE (_p1))
    5660              :                 {
    5661          200 :                 CASE_CONVERT:
    5662          200 :                   {
    5663          200 :                     tree _q60 = TREE_OPERAND (_p1, 0);
    5664          200 :                     if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
    5665              :                       {
    5666            0 :                         {
    5667            0 :                           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q30, _q21 };
    5668            0 :                           tree res = generic_simplify_233 (loc, type, _p0, _p1, captures, NE_EXPR);
    5669            0 :                           if (res) return res;
    5670              :                         }
    5671              :                       }
    5672              :                     break;
    5673              :                   }
    5674        80441 :                 default:;
    5675              :                 }
    5676        80441 :               if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    5677              :                 {
    5678           63 :                   {
    5679           63 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q30, _q21 };
    5680           63 :                     tree res = generic_simplify_233 (loc, type, _p0, _p1, captures, NE_EXPR);
    5681           63 :                     if (res) return res;
    5682              :                   }
    5683              :                 }
    5684              :               break;
    5685              :             }
    5686       544244 :           default:;
    5687              :           }
    5688       544244 :         switch (TREE_CODE (_p1))
    5689              :           {
    5690         3766 :           CASE_CONVERT:
    5691         3766 :             {
    5692         3766 :               tree _q50 = TREE_OPERAND (_p1, 0);
    5693         3766 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5694              :                 {
    5695            0 :                   {
    5696            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
    5697            0 :                     tree res = generic_simplify_233 (loc, type, _p0, _p1, captures, NE_EXPR);
    5698            0 :                     if (res) return res;
    5699              :                   }
    5700              :                 }
    5701              :               break;
    5702              :             }
    5703       544244 :           default:;
    5704              :           }
    5705       544244 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    5706              :           {
    5707         6029 :             {
    5708         6029 :               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
    5709         6029 :               tree res = generic_simplify_233 (loc, type, _p0, _p1, captures, NE_EXPR);
    5710         6029 :               if (res) return res;
    5711              :             }
    5712              :           }
    5713              :         break;
    5714              :       }
    5715       107721 :     case MINUS_EXPR:
    5716       107721 :       {
    5717       107721 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5718       107721 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5719       107721 :         switch (TREE_CODE (_p1))
    5720              :           {
    5721         5736 :           case MINUS_EXPR:
    5722         5736 :             {
    5723         5736 :               tree _q50 = TREE_OPERAND (_p1, 0);
    5724         5736 :               tree _q51 = TREE_OPERAND (_p1, 1);
    5725         5736 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    5726              :                 {
    5727          170 :                   {
    5728          170 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    5729          340 :                     if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    5730          173 :  && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
    5731            0 :  || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
    5732              : )
    5733              :                       {
    5734            3 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1602;
    5735            3 :                         {
    5736            3 :                           tree res_op0;
    5737            3 :                           res_op0 = captures[0];
    5738            3 :                           tree res_op1;
    5739            3 :                           res_op1 = captures[2];
    5740            3 :                           tree _r;
    5741            3 :                           _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    5742            3 :                           if (TREE_SIDE_EFFECTS (captures[1]))
    5743            0 :                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    5744            3 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 967, __FILE__, __LINE__, true);
    5745              :                           return _r;
    5746              :                         }
    5747            0 : next_after_fail1602:;
    5748              :                       }
    5749              :                   }
    5750              :                 }
    5751         5733 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5752              :                 {
    5753          166 :                   {
    5754          166 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
    5755          332 :                     if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    5756          166 :  && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))
    5757            0 :  || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1])))
    5758              : )
    5759              :                       {
    5760            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1603;
    5761            0 :                         {
    5762            0 :                           tree res_op0;
    5763            0 :                           res_op0 = captures[2];
    5764            0 :                           tree res_op1;
    5765            0 :                           res_op1 = captures[1];
    5766            0 :                           tree _r;
    5767            0 :                           _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    5768            0 :                           if (TREE_SIDE_EFFECTS (captures[0]))
    5769            0 :                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    5770            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 968, __FILE__, __LINE__, true);
    5771              :                           return _r;
    5772              :                         }
    5773            0 : next_after_fail1603:;
    5774              :                       }
    5775              :                   }
    5776              :                 }
    5777              :               break;
    5778              :             }
    5779              :           default:;
    5780              :           }
    5781              :         break;
    5782              :       }
    5783        26572 :     case POINTER_DIFF_EXPR:
    5784        26572 :       {
    5785        26572 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5786        26572 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5787        26572 :         switch (TREE_CODE (_p1))
    5788              :           {
    5789         2314 :           case POINTER_DIFF_EXPR:
    5790         2314 :             {
    5791         2314 :               tree _q50 = TREE_OPERAND (_p1, 0);
    5792         2314 :               tree _q51 = TREE_OPERAND (_p1, 1);
    5793         2314 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    5794              :                 {
    5795            0 :                   {
    5796            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
    5797            0 :                     tree res = generic_simplify_234 (loc, type, _p0, _p1, captures, NE_EXPR);
    5798            0 :                     if (res) return res;
    5799              :                   }
    5800              :                 }
    5801         2314 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5802              :                 {
    5803            0 :                   {
    5804            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
    5805            0 :                     tree res = generic_simplify_235 (loc, type, _p0, _p1, captures, NE_EXPR);
    5806            0 :                     if (res) return res;
    5807              :                   }
    5808              :                 }
    5809              :               break;
    5810              :             }
    5811              :           default:;
    5812              :           }
    5813              :         break;
    5814              :       }
    5815     39197243 :     default:;
    5816              :     }
    5817     39197243 : {
    5818     39197243 :   tree _p0_pops[1];
    5819     39197243 :   if (tree_logical_inverted_value (_p0, _p0_pops))
    5820              :     {
    5821       677524 :       tree _q20 = _p0_pops[0];
    5822       677524 :       if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    5823              :         {
    5824           24 :           if (tree_truth_valued_p (_p1))
    5825              :             {
    5826            0 :               {
    5827            0 :                 tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    5828            0 :                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1604;
    5829            0 :                 {
    5830            0 :                   tree _r;
    5831            0 :                   _r =  constant_boolean_node (NE_EXPR != EQ_EXPR, type);
    5832            0 :                   if (TREE_SIDE_EFFECTS (captures[0]))
    5833            0 :                     _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    5834            0 :                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 935, __FILE__, __LINE__, true);
    5835            0 :                   return _r;
    5836              :                 }
    5837            0 : next_after_fail1604:;
    5838              :               }
    5839              :             }
    5840              :         }
    5841              :     }
    5842              : }
    5843     39197243 : if (tree_truth_valued_p (_p0))
    5844              :   {
    5845      5726774 :     {
    5846      5726774 :       tree _p1_pops[1];
    5847      5726774 :       if (tree_logical_inverted_value (_p1, _p1_pops))
    5848              :         {
    5849         1168 :           tree _q30 = _p1_pops[0];
    5850         1168 :           if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    5851              :             {
    5852            0 :               {
    5853            0 :                 tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5854            0 :                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1605;
    5855            0 :                 {
    5856            0 :                   tree _r;
    5857            0 :                   _r =  constant_boolean_node (NE_EXPR != EQ_EXPR, type);
    5858            0 :                   if (TREE_SIDE_EFFECTS (captures[0]))
    5859            0 :                     _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    5860            0 :                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 935, __FILE__, __LINE__, true);
    5861            0 :                   return _r;
    5862              :                 }
    5863            0 : next_after_fail1605:;
    5864              :               }
    5865              :             }
    5866              :         }
    5867              :     }
    5868              :   }
    5869     39197243 :   switch (TREE_CODE (_p1))
    5870              :     {
    5871       123920 :     case PLUS_EXPR:
    5872       123920 :       {
    5873       123920 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5874       123920 :         tree _q31 = TREE_OPERAND (_p1, 1);
    5875       123920 :         switch (TREE_CODE (_q31))
    5876              :           {
    5877          368 :           CASE_CONVERT:
    5878          368 :             {
    5879          368 :               tree _q50 = TREE_OPERAND (_q31, 0);
    5880          368 :               if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    5881              :                 {
    5882            0 :                   {
    5883            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0 };
    5884            0 :                     tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, NE_EXPR);
    5885            0 :                     if (res) return res;
    5886              :                   }
    5887              :                 }
    5888              :               break;
    5889              :             }
    5890       123920 :           default:;
    5891              :           }
    5892       123920 :         switch (TREE_CODE (_q30))
    5893              :           {
    5894         5379 :           CASE_CONVERT:
    5895         5379 :             {
    5896         5379 :               tree _q40 = TREE_OPERAND (_q30, 0);
    5897         5379 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    5898              :                 {
    5899            0 :                   {
    5900            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q31, _p0 };
    5901            0 :                     tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, NE_EXPR);
    5902            0 :                     if (res) return res;
    5903              :                   }
    5904              :                 }
    5905              :               break;
    5906              :             }
    5907       123920 :           default:;
    5908              :           }
    5909       123920 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    5910              :           {
    5911            0 :             {
    5912            0 :               tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0 };
    5913            0 :               tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, NE_EXPR);
    5914            0 :               if (res) return res;
    5915              :             }
    5916              :           }
    5917       123920 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    5918              :           {
    5919            8 :             {
    5920            8 :               tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q31, _p0 };
    5921            8 :               tree res = generic_simplify_223 (loc, type, _p0, _p1, captures, NE_EXPR);
    5922            8 :               if (res) return res;
    5923              :             }
    5924              :           }
    5925              :         break;
    5926              :       }
    5927     39197235 :     default:;
    5928              :     }
    5929     39197235 : {
    5930     39197235 :   tree _p1_pops[1];
    5931     39197235 :   if (tree_nop_convert (_p1, _p1_pops))
    5932              :     {
    5933      5155320 :       tree _q30 = _p1_pops[0];
    5934      5155320 :       switch (TREE_CODE (_q30))
    5935              :         {
    5936         1977 :         case PLUS_EXPR:
    5937         1977 :           {
    5938         1977 :             tree _q40 = TREE_OPERAND (_q30, 0);
    5939         1977 :             tree _q41 = TREE_OPERAND (_q30, 1);
    5940         1977 :             switch (TREE_CODE (_q41))
    5941              :               {
    5942            3 :               CASE_CONVERT:
    5943            3 :                 {
    5944            3 :                   tree _q60 = TREE_OPERAND (_q41, 0);
    5945            3 :                   if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
    5946              :                     {
    5947            0 :                       {
    5948            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0 };
    5949            0 :                         tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, NE_EXPR);
    5950            0 :                         if (res) return res;
    5951              :                       }
    5952              :                     }
    5953              :                   break;
    5954              :                 }
    5955         1977 :               default:;
    5956              :               }
    5957         1977 :             switch (TREE_CODE (_q40))
    5958              :               {
    5959         1160 :               CASE_CONVERT:
    5960         1160 :                 {
    5961         1160 :                   tree _q50 = TREE_OPERAND (_q40, 0);
    5962         1160 :                   if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    5963              :                     {
    5964            0 :                       {
    5965            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q41, _p0 };
    5966            0 :                         tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, NE_EXPR);
    5967            0 :                         if (res) return res;
    5968              :                       }
    5969              :                     }
    5970              :                   break;
    5971              :                 }
    5972         1977 :               default:;
    5973              :               }
    5974         1977 :             if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
    5975              :               {
    5976            0 :                 {
    5977            0 :                   tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0 };
    5978            0 :                   tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, NE_EXPR);
    5979            0 :                   if (res) return res;
    5980              :                 }
    5981              :               }
    5982         1977 :             if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    5983              :               {
    5984            0 :                 {
    5985            0 :                   tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q41, _p0 };
    5986            0 :                   tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, NE_EXPR);
    5987            0 :                   if (res) return res;
    5988              :                 }
    5989              :               }
    5990              :             break;
    5991              :           }
    5992              :         default:;
    5993              :         }
    5994              :     }
    5995              : }
    5996     39197235 :   switch (TREE_CODE (_p0))
    5997              :     {
    5998      8839015 :     CASE_CONVERT:
    5999      8839015 :       {
    6000      8839015 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6001      8839015 :         switch (TREE_CODE (_p1))
    6002              :           {
    6003          164 :           case POINTER_PLUS_EXPR:
    6004          164 :             {
    6005          164 :               tree _q40 = TREE_OPERAND (_p1, 0);
    6006          164 :               tree _q41 = TREE_OPERAND (_p1, 1);
    6007          164 :               switch (TREE_CODE (_q40))
    6008              :                 {
    6009           48 :                 CASE_CONVERT:
    6010           48 :                   {
    6011           48 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    6012           48 :                     if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6013              :                       {
    6014            0 :                         {
    6015            0 :                           tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q20, _q41 };
    6016            0 :                           tree res = generic_simplify_233 (loc, type, _p0, _p1, captures, NE_EXPR);
    6017            0 :                           if (res) return res;
    6018              :                         }
    6019              :                       }
    6020              :                     break;
    6021              :                   }
    6022          164 :                 default:;
    6023              :                 }
    6024          164 :               if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
    6025              :                 {
    6026            0 :                   {
    6027            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _q20, _q41 };
    6028            0 :                     tree res = generic_simplify_233 (loc, type, _p0, _p1, captures, NE_EXPR);
    6029            0 :                     if (res) return res;
    6030              :                   }
    6031              :                 }
    6032              :               break;
    6033              :             }
    6034      8839015 :           default:;
    6035              :           }
    6036      8839015 :       {
    6037      8839015 :         tree _p1_pops[1];
    6038      8839015 :         if (tree_nop_convert (_p1, _p1_pops))
    6039              :           {
    6040      4783761 :             tree _q40 = _p1_pops[0];
    6041      4783761 :             switch (TREE_CODE (_q40))
    6042              :               {
    6043           48 :               case POINTER_PLUS_EXPR:
    6044           48 :                 {
    6045           48 :                   tree _q50 = TREE_OPERAND (_q40, 0);
    6046           48 :                   tree _q51 = TREE_OPERAND (_q40, 1);
    6047           48 :                   switch (TREE_CODE (_q50))
    6048              :                     {
    6049            8 :                     CASE_CONVERT:
    6050            8 :                       {
    6051            8 :                         tree _q60 = TREE_OPERAND (_q50, 0);
    6052            8 :                         if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    6053              :                           {
    6054            0 :                             {
    6055            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q20, _q51 };
    6056            0 :                               tree res = generic_simplify_236 (loc, type, _p0, _p1, captures, NE_EXPR);
    6057            0 :                               if (res) return res;
    6058              :                             }
    6059              :                           }
    6060              :                         break;
    6061              :                       }
    6062           48 :                     default:;
    6063              :                     }
    6064           48 :                   if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6065              :                     {
    6066            0 :                       {
    6067            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q40, _q20, _q51 };
    6068            0 :                         tree res = generic_simplify_236 (loc, type, _p0, _p1, captures, NE_EXPR);
    6069            0 :                         if (res) return res;
    6070              :                       }
    6071              :                     }
    6072              :                   break;
    6073              :                 }
    6074              :               default:;
    6075              :               }
    6076              :           }
    6077              :       }
    6078      8839015 :         break;
    6079              :       }
    6080     39197235 :     default:;
    6081              :     }
    6082     39197235 : {
    6083     39197235 :   tree _p0_pops[1];
    6084     39197235 :   if (tree_nop_convert (_p0, _p0_pops))
    6085              :     {
    6086      6507714 :       tree _q20 = _p0_pops[0];
    6087      6507714 :       switch (TREE_CODE (_q20))
    6088              :         {
    6089          185 :         case POINTER_PLUS_EXPR:
    6090          185 :           {
    6091          185 :             tree _q30 = TREE_OPERAND (_q20, 0);
    6092          185 :             tree _q31 = TREE_OPERAND (_q20, 1);
    6093          185 :             switch (TREE_CODE (_q30))
    6094              :               {
    6095           24 :               CASE_CONVERT:
    6096           24 :                 {
    6097           24 :                   tree _q40 = TREE_OPERAND (_q30, 0);
    6098           24 :                   switch (TREE_CODE (_p1))
    6099              :                     {
    6100            8 :                     CASE_CONVERT:
    6101            8 :                       {
    6102            8 :                         tree _q70 = TREE_OPERAND (_p1, 0);
    6103            8 :                         if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
    6104              :                           {
    6105            0 :                             {
    6106            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _q31 };
    6107            0 :                               tree res = generic_simplify_236 (loc, type, _p0, _p1, captures, NE_EXPR);
    6108            0 :                               if (res) return res;
    6109              :                             }
    6110              :                           }
    6111              :                         break;
    6112              :                       }
    6113           24 :                     default:;
    6114              :                     }
    6115           24 :                   if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    6116              :                     {
    6117            0 :                       {
    6118            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _q31 };
    6119            0 :                         tree res = generic_simplify_236 (loc, type, _p0, _p1, captures, NE_EXPR);
    6120            0 :                         if (res) return res;
    6121              :                       }
    6122              :                     }
    6123              :                   break;
    6124              :                 }
    6125          185 :               default:;
    6126              :               }
    6127          185 :             switch (TREE_CODE (_p1))
    6128              :               {
    6129           50 :               CASE_CONVERT:
    6130           50 :                 {
    6131           50 :                   tree _q60 = TREE_OPERAND (_p1, 0);
    6132           50 :                   if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
    6133              :                     {
    6134            0 :                       {
    6135            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    6136            0 :                         tree res = generic_simplify_236 (loc, type, _p0, _p1, captures, NE_EXPR);
    6137            0 :                         if (res) return res;
    6138              :                       }
    6139              :                     }
    6140              :                   break;
    6141              :                 }
    6142          185 :               default:;
    6143              :               }
    6144          185 :             if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    6145              :               {
    6146            0 :                 {
    6147            0 :                   tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    6148            0 :                   tree res = generic_simplify_236 (loc, type, _p0, _p1, captures, NE_EXPR);
    6149            0 :                   if (res) return res;
    6150              :                 }
    6151              :               }
    6152              :             break;
    6153              :           }
    6154              :         default:;
    6155              :         }
    6156              :     }
    6157              : }
    6158     39197235 :   switch (TREE_CODE (_p1))
    6159              :     {
    6160        31487 :     case POINTER_PLUS_EXPR:
    6161        31487 :       {
    6162        31487 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6163        31487 :         tree _q31 = TREE_OPERAND (_p1, 1);
    6164        31487 :         switch (TREE_CODE (_q30))
    6165              :           {
    6166         3534 :           CASE_CONVERT:
    6167         3534 :             {
    6168         3534 :               tree _q40 = TREE_OPERAND (_q30, 0);
    6169         3534 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    6170              :                 {
    6171            0 :                   {
    6172            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _p0, _q31 };
    6173            0 :                     tree res = generic_simplify_233 (loc, type, _p0, _p1, captures, NE_EXPR);
    6174            0 :                     if (res) return res;
    6175              :                   }
    6176              :                 }
    6177              :               break;
    6178              :             }
    6179        31487 :           default:;
    6180              :           }
    6181        31487 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    6182              :           {
    6183            0 :             {
    6184            0 :               tree captures[4] ATTRIBUTE_UNUSED = { _p1, _p1, _p0, _q31 };
    6185            0 :               tree res = generic_simplify_233 (loc, type, _p0, _p1, captures, NE_EXPR);
    6186            0 :               if (res) return res;
    6187              :             }
    6188              :           }
    6189              :         break;
    6190              :       }
    6191     39197235 :     default:;
    6192              :     }
    6193     39197235 : {
    6194     39197235 :   tree _p1_pops[1];
    6195     39197235 :   if (tree_nop_convert (_p1, _p1_pops))
    6196              :     {
    6197      5155320 :       tree _q30 = _p1_pops[0];
    6198      5155320 :       switch (TREE_CODE (_q30))
    6199              :         {
    6200          387 :         case POINTER_PLUS_EXPR:
    6201          387 :           {
    6202          387 :             tree _q40 = TREE_OPERAND (_q30, 0);
    6203          387 :             tree _q41 = TREE_OPERAND (_q30, 1);
    6204          387 :             switch (TREE_CODE (_q40))
    6205              :               {
    6206            8 :               CASE_CONVERT:
    6207            8 :                 {
    6208            8 :                   tree _q50 = TREE_OPERAND (_q40, 0);
    6209            8 :                   if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    6210              :                     {
    6211            0 :                       {
    6212            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _p0, _q41 };
    6213            0 :                         tree res = generic_simplify_236 (loc, type, _p0, _p1, captures, NE_EXPR);
    6214            0 :                         if (res) return res;
    6215              :                       }
    6216              :                     }
    6217              :                   break;
    6218              :                 }
    6219          387 :               default:;
    6220              :               }
    6221          387 :             if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    6222              :               {
    6223            0 :                 {
    6224            0 :                   tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _p0, _q41 };
    6225            0 :                   tree res = generic_simplify_236 (loc, type, _p0, _p1, captures, NE_EXPR);
    6226            0 :                   if (res) return res;
    6227              :                 }
    6228              :               }
    6229              :             break;
    6230              :           }
    6231              :         default:;
    6232              :         }
    6233              :     }
    6234              : }
    6235     39197235 :   switch (TREE_CODE (_p0))
    6236              :     {
    6237       538215 :     case POINTER_PLUS_EXPR:
    6238       538215 :       {
    6239       538215 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6240       538215 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6241       538215 :         {
    6242       538215 :           tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    6243       538215 :           tree res = generic_simplify_237 (loc, type, _p0, _p1, captures, NE_EXPR);
    6244       538215 :           if (res) return res;
    6245              :         }
    6246       515547 :         switch (TREE_CODE (_p1))
    6247              :           {
    6248        25266 :           case POINTER_PLUS_EXPR:
    6249        25266 :             {
    6250        25266 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6251        25266 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6252        25266 :               {
    6253        25266 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q50, _q51 };
    6254        25266 :                 tree res = generic_simplify_238 (loc, type, _p0, _p1, captures, NE_EXPR);
    6255        25266 :                 if (res) return res;
    6256              :               }
    6257        25266 :               break;
    6258              :             }
    6259              :           default:;
    6260              :           }
    6261              :         break;
    6262              :       }
    6263     39174567 :     default:;
    6264              :     }
    6265     39174567 :   switch (TREE_CODE (_p1))
    6266              :     {
    6267        30077 :     case POINTER_PLUS_EXPR:
    6268        30077 :       {
    6269        30077 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6270        30077 :         tree _q31 = TREE_OPERAND (_p1, 1);
    6271        30077 :         {
    6272        30077 :           tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p0 };
    6273        30077 :           tree res = generic_simplify_237 (loc, type, _p0, _p1, captures, NE_EXPR);
    6274        30077 :           if (res) return res;
    6275              :         }
    6276        30077 :         break;
    6277              :       }
    6278        30501 :     case MINUS_EXPR:
    6279        30501 :       {
    6280        30501 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6281        30501 :         tree _q31 = TREE_OPERAND (_p1, 1);
    6282        30501 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    6283              :           {
    6284            0 :             {
    6285            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
    6286            0 :               tree res = generic_simplify_239 (loc, type, _p0, _p1, captures, NE_EXPR);
    6287            0 :               if (res) return res;
    6288              :             }
    6289              :           }
    6290              :         break;
    6291              :       }
    6292     39174567 :     default:;
    6293              :     }
    6294     39174567 :   switch (TREE_CODE (_p0))
    6295              :     {
    6296       107718 :     case MINUS_EXPR:
    6297       107718 :       {
    6298       107718 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6299       107718 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6300       107718 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    6301              :           {
    6302         1754 :             {
    6303         1754 :               tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
    6304         1754 :               tree res = generic_simplify_239 (loc, type, _p0, _p1, captures, NE_EXPR);
    6305         1754 :               if (res) return res;
    6306              :             }
    6307              :           }
    6308              :         break;
    6309              :       }
    6310         9562 :     case TRUNC_DIV_EXPR:
    6311         9562 :       {
    6312         9562 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6313         9562 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6314         9562 :         if (tree_expr_nonnegative_p (_q20))
    6315              :           {
    6316         3826 :             if (tree_expr_nonnegative_p (_q21))
    6317              :               {
    6318         3680 :                 if (integer_zerop (_p1))
    6319              :                   {
    6320          449 :                     {
    6321          449 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6322          449 :                       tree res = generic_simplify_240 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR);
    6323          449 :                       if (res) return res;
    6324              :                     }
    6325              :                   }
    6326              :               }
    6327              :           }
    6328              :         break;
    6329              :       }
    6330        64273 :     case TRUNC_MOD_EXPR:
    6331        64273 :       {
    6332        64273 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6333        64273 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6334        64273 :         if (tree_expr_nonnegative_p (_q20))
    6335              :           {
    6336        51961 :             if (tree_expr_nonnegative_p (_q21))
    6337              :               {
    6338        51504 :                 if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    6339              :                   {
    6340           85 :                     {
    6341           85 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6342           85 :                       tree res = generic_simplify_241 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR);
    6343           85 :                       if (res) return res;
    6344              :                     }
    6345              :                   }
    6346              :               }
    6347              :           }
    6348              :         break;
    6349              :       }
    6350     39172828 :     default:;
    6351              :     }
    6352     39172828 :   switch (TREE_CODE (_p1))
    6353              :     {
    6354        12887 :     case TRUNC_MOD_EXPR:
    6355        12887 :       {
    6356        12887 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6357        12887 :         tree _q31 = TREE_OPERAND (_p1, 1);
    6358        12887 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    6359              :           {
    6360            0 :             if (tree_expr_nonnegative_p (_q30))
    6361              :               {
    6362            0 :                 if (tree_expr_nonnegative_p (_q31))
    6363              :                   {
    6364            0 :                     {
    6365            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    6366            0 :                       tree res = generic_simplify_241 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR);
    6367            0 :                       if (res) return res;
    6368              :                     }
    6369              :                   }
    6370              :               }
    6371              :           }
    6372              :         break;
    6373              :       }
    6374     39172828 :     default:;
    6375              :     }
    6376     39172828 :   switch (TREE_CODE (_p0))
    6377              :     {
    6378      8839015 :     CASE_CONVERT:
    6379      8839015 :       {
    6380      8839015 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6381      8839015 :         switch (TREE_CODE (_p1))
    6382              :           {
    6383      4924766 :           CASE_CONVERT:
    6384      4924766 :             {
    6385      4924766 :               tree _q40 = TREE_OPERAND (_p1, 0);
    6386      4924766 :               switch (TREE_CODE (_q40))
    6387              :                 {
    6388            0 :                 case MINUS_EXPR:
    6389            0 :                   {
    6390            0 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    6391            0 :                     tree _q51 = TREE_OPERAND (_q40, 1);
    6392            0 :                     switch (TREE_CODE (_q50))
    6393              :                       {
    6394            0 :                       case INTEGER_CST:
    6395            0 :                         {
    6396            0 :                           switch (TREE_CODE (_q51))
    6397              :                             {
    6398            0 :                             CASE_CONVERT:
    6399            0 :                               {
    6400            0 :                                 tree _q70 = TREE_OPERAND (_q51, 0);
    6401            0 :                                 if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
    6402              :                                   {
    6403            0 :                                     {
    6404            0 :                                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
    6405            0 :                                       tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, NE_EXPR);
    6406            0 :                                       if (res) return res;
    6407              :                                     }
    6408              :                                   }
    6409              :                                 break;
    6410              :                               }
    6411              :                             default:;
    6412              :                             }
    6413              :                           break;
    6414              :                         }
    6415              :                       default:;
    6416              :                       }
    6417              :                     break;
    6418              :                   }
    6419              :                 default:;
    6420              :                 }
    6421              :               break;
    6422              :             }
    6423      8839015 :           default:;
    6424              :           }
    6425      8839015 :         switch (TREE_CODE (_q20))
    6426              :           {
    6427          108 :           case MINUS_EXPR:
    6428          108 :             {
    6429          108 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6430          108 :               tree _q31 = TREE_OPERAND (_q20, 1);
    6431          108 :               switch (TREE_CODE (_q30))
    6432              :                 {
    6433           58 :                 case INTEGER_CST:
    6434           58 :                   {
    6435           58 :                     switch (TREE_CODE (_q31))
    6436              :                       {
    6437            0 :                       CASE_CONVERT:
    6438            0 :                         {
    6439            0 :                           tree _q50 = TREE_OPERAND (_q31, 0);
    6440            0 :                           switch (TREE_CODE (_p1))
    6441              :                             {
    6442            0 :                             CASE_CONVERT:
    6443            0 :                               {
    6444            0 :                                 tree _q70 = TREE_OPERAND (_p1, 0);
    6445            0 :                                 if ((_q70 == _q50 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q50, 0) && types_match (_q70, _q50)))
    6446              :                                   {
    6447            0 :                                     {
    6448            0 :                                       tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
    6449            0 :                                       tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, NE_EXPR);
    6450            0 :                                       if (res) return res;
    6451              :                                     }
    6452              :                                   }
    6453              :                                 break;
    6454              :                               }
    6455            0 :                             default:;
    6456              :                             }
    6457            0 :                           if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50)))
    6458              :                             {
    6459            0 :                               {
    6460            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
    6461            0 :                                 tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, NE_EXPR);
    6462            0 :                                 if (res) return res;
    6463              :                               }
    6464              :                             }
    6465              :                           break;
    6466              :                         }
    6467           58 :                       default:;
    6468              :                       }
    6469           58 :                     switch (TREE_CODE (_p1))
    6470              :                       {
    6471            0 :                       CASE_CONVERT:
    6472            0 :                         {
    6473            0 :                           tree _q60 = TREE_OPERAND (_p1, 0);
    6474            0 :                           if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q31, 0) && types_match (_q60, _q31)))
    6475              :                             {
    6476            0 :                               {
    6477            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q30 };
    6478            0 :                                 tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, NE_EXPR);
    6479            0 :                                 if (res) return res;
    6480              :                               }
    6481              :                             }
    6482              :                           break;
    6483              :                         }
    6484           58 :                       default:;
    6485              :                       }
    6486           58 :                     if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
    6487              :                       {
    6488            0 :                         {
    6489            0 :                           tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q30 };
    6490            0 :                           tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, NE_EXPR);
    6491            0 :                           if (res) return res;
    6492              :                         }
    6493              :                       }
    6494              :                     break;
    6495              :                   }
    6496              :                 default:;
    6497              :                 }
    6498              :               break;
    6499              :             }
    6500      8839015 :           default:;
    6501              :           }
    6502      8839015 :         switch (TREE_CODE (_p1))
    6503              :           {
    6504      4924766 :           CASE_CONVERT:
    6505      4924766 :             {
    6506      4924766 :               tree _q40 = TREE_OPERAND (_p1, 0);
    6507      4924766 :               switch (TREE_CODE (_q40))
    6508              :                 {
    6509            0 :                 case MINUS_EXPR:
    6510            0 :                   {
    6511            0 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    6512            0 :                     tree _q51 = TREE_OPERAND (_q40, 1);
    6513            0 :                     switch (TREE_CODE (_q50))
    6514              :                       {
    6515            0 :                       case INTEGER_CST:
    6516            0 :                         {
    6517            0 :                           if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    6518              :                             {
    6519            0 :                               {
    6520            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
    6521            0 :                                 tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, NE_EXPR);
    6522            0 :                                 if (res) return res;
    6523              :                               }
    6524              :                             }
    6525              :                           break;
    6526              :                         }
    6527              :                       default:;
    6528              :                       }
    6529              :                     break;
    6530              :                   }
    6531              :                 default:;
    6532              :                 }
    6533              :               break;
    6534              :             }
    6535        21620 :           case MINUS_EXPR:
    6536        21620 :             {
    6537        21620 :               tree _q40 = TREE_OPERAND (_p1, 0);
    6538        21620 :               tree _q41 = TREE_OPERAND (_p1, 1);
    6539        21620 :               switch (TREE_CODE (_q40))
    6540              :                 {
    6541          401 :                 case INTEGER_CST:
    6542          401 :                   {
    6543          401 :                     switch (TREE_CODE (_q41))
    6544              :                       {
    6545           20 :                       CASE_CONVERT:
    6546           20 :                         {
    6547           20 :                           tree _q60 = TREE_OPERAND (_q41, 0);
    6548           20 :                           if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    6549              :                             {
    6550            0 :                               {
    6551            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    6552            0 :                                 tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, NE_EXPR);
    6553            0 :                                 if (res) return res;
    6554              :                               }
    6555              :                             }
    6556              :                           break;
    6557              :                         }
    6558          401 :                       default:;
    6559              :                       }
    6560          401 :                     if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
    6561              :                       {
    6562            0 :                         {
    6563            0 :                           tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    6564            0 :                           tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, NE_EXPR);
    6565            0 :                           if (res) return res;
    6566              :                         }
    6567              :                       }
    6568              :                     break;
    6569              :                   }
    6570              :                 default:;
    6571              :                 }
    6572              :               break;
    6573              :             }
    6574      8839015 :           default:;
    6575              :           }
    6576      8839015 :         switch (TREE_CODE (_q20))
    6577              :           {
    6578          399 :           case EQ_EXPR:
    6579          399 :             {
    6580          399 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6581          399 :               tree _q31 = TREE_OPERAND (_q20, 1);
    6582          399 :               if (tree_zero_one_valued_p (_q30))
    6583              :                 {
    6584            0 :                   if (integer_zerop (_q31))
    6585              :                     {
    6586            0 :                       switch (TREE_CODE (_p1))
    6587              :                         {
    6588            0 :                         CASE_CONVERT:
    6589            0 :                           {
    6590            0 :                             tree _q60 = TREE_OPERAND (_p1, 0);
    6591            0 :                             if (tree_zero_one_valued_p (_q60))
    6592              :                               {
    6593            0 :                                 {
    6594            0 :                                   tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q60 };
    6595            0 :                                   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6596            0 :  && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
    6597              : )
    6598              :                                     {
    6599            0 :                                       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1606;
    6600            0 :                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1606;
    6601            0 :                                       {
    6602            0 :                                         tree res_op0;
    6603            0 :                                         res_op0 = captures[0];
    6604            0 :                                         tree res_op1;
    6605            0 :                                         res_op1 = captures[1];
    6606            0 :                                         tree _r;
    6607            0 :                                         _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
    6608            0 :                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1030, __FILE__, __LINE__, true);
    6609              :                                         return _r;
    6610              :                                       }
    6611      8839015 : next_after_fail1606:;
    6612              :                                     }
    6613              :                                 }
    6614              :                               }
    6615              :                             break;
    6616              :                           }
    6617              :                         default:;
    6618              :                         }
    6619              :                     }
    6620              :                 }
    6621              :               break;
    6622              :             }
    6623      8839015 :           default:;
    6624              :           }
    6625      8839015 :       if (tree_zero_one_valued_p (_q20))
    6626              :         {
    6627       751721 :           switch (TREE_CODE (_p1))
    6628              :             {
    6629        12984 :             CASE_CONVERT:
    6630        12984 :               {
    6631        12984 :                 tree _q40 = TREE_OPERAND (_p1, 0);
    6632        12984 :                 switch (TREE_CODE (_q40))
    6633              :                   {
    6634            0 :                   case EQ_EXPR:
    6635            0 :                     {
    6636            0 :                       tree _q50 = TREE_OPERAND (_q40, 0);
    6637            0 :                       tree _q51 = TREE_OPERAND (_q40, 1);
    6638            0 :                       if (tree_zero_one_valued_p (_q50))
    6639              :                         {
    6640            0 :                           if (integer_zerop (_q51))
    6641              :                             {
    6642            0 :                               {
    6643            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q20 };
    6644            0 :                                 if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6645            0 :  && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
    6646              : )
    6647              :                                   {
    6648            0 :                                     if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1607;
    6649            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1607;
    6650            0 :                                     {
    6651            0 :                                       tree res_op0;
    6652            0 :                                       res_op0 = captures[0];
    6653            0 :                                       tree res_op1;
    6654            0 :                                       res_op1 = captures[1];
    6655            0 :                                       tree _r;
    6656            0 :                                       _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
    6657            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1030, __FILE__, __LINE__, true);
    6658              :                                       return _r;
    6659              :                                     }
    6660     39172827 : next_after_fail1607:;
    6661              :                                   }
    6662              :                               }
    6663              :                             }
    6664              :                         }
    6665              :                       break;
    6666              :                     }
    6667              :                   default:;
    6668              :                   }
    6669              :                 break;
    6670              :               }
    6671              :             default:;
    6672              :             }
    6673              :         }
    6674              :         break;
    6675              :       }
    6676       106006 :     case MINUS_EXPR:
    6677       106006 :       {
    6678       106006 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6679       106006 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6680       106006 :         switch (TREE_CODE (_q20))
    6681              :           {
    6682         2335 :           case INTEGER_CST:
    6683         2335 :             {
    6684         2335 :               switch (TREE_CODE (_q21))
    6685              :                 {
    6686          199 :                 CASE_CONVERT:
    6687          199 :                   {
    6688          199 :                     tree _q40 = TREE_OPERAND (_q21, 0);
    6689          199 :                     switch (TREE_CODE (_p1))
    6690              :                       {
    6691            0 :                       CASE_CONVERT:
    6692            0 :                         {
    6693            0 :                           tree _q60 = TREE_OPERAND (_p1, 0);
    6694            0 :                           if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
    6695              :                             {
    6696            0 :                               {
    6697            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
    6698            0 :                                 tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, NE_EXPR);
    6699            0 :                                 if (res) return res;
    6700              :                               }
    6701              :                             }
    6702              :                           break;
    6703              :                         }
    6704          199 :                       default:;
    6705              :                       }
    6706          199 :                     if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    6707              :                       {
    6708            0 :                         {
    6709            0 :                           tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
    6710            0 :                           tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, NE_EXPR);
    6711            0 :                           if (res) return res;
    6712              :                         }
    6713              :                       }
    6714              :                     break;
    6715              :                   }
    6716         2335 :                 default:;
    6717              :                 }
    6718         2335 :               switch (TREE_CODE (_p1))
    6719              :                 {
    6720          318 :                 CASE_CONVERT:
    6721          318 :                   {
    6722          318 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    6723          318 :                     if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6724              :                       {
    6725            0 :                         {
    6726            0 :                           tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    6727            0 :                           tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, NE_EXPR);
    6728            0 :                           if (res) return res;
    6729              :                         }
    6730              :                       }
    6731              :                     break;
    6732              :                   }
    6733         2335 :                 default:;
    6734              :                 }
    6735         2335 :               if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    6736              :                 {
    6737           19 :                   {
    6738           19 :                     tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    6739           19 :                     tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, NE_EXPR);
    6740           19 :                     if (res) return res;
    6741              :                   }
    6742              :                 }
    6743              :               break;
    6744              :             }
    6745              :           default:;
    6746              :           }
    6747              :         break;
    6748              :       }
    6749     39172827 :     default:;
    6750              :     }
    6751     39172827 :   switch (TREE_CODE (_p1))
    6752              :     {
    6753      5325507 :     CASE_CONVERT:
    6754      5325507 :       {
    6755      5325507 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6756      5325507 :         switch (TREE_CODE (_q30))
    6757              :           {
    6758          556 :           case MINUS_EXPR:
    6759          556 :             {
    6760          556 :               tree _q40 = TREE_OPERAND (_q30, 0);
    6761          556 :               tree _q41 = TREE_OPERAND (_q30, 1);
    6762          556 :               switch (TREE_CODE (_q40))
    6763              :                 {
    6764           17 :                 case INTEGER_CST:
    6765           17 :                   {
    6766           17 :                     switch (TREE_CODE (_q41))
    6767              :                       {
    6768            0 :                       CASE_CONVERT:
    6769            0 :                         {
    6770            0 :                           tree _q60 = TREE_OPERAND (_q41, 0);
    6771            0 :                           if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
    6772              :                             {
    6773            0 :                               {
    6774            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
    6775            0 :                                 tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, NE_EXPR);
    6776            0 :                                 if (res) return res;
    6777              :                               }
    6778              :                             }
    6779              :                           break;
    6780              :                         }
    6781           17 :                       default:;
    6782              :                       }
    6783           17 :                     if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
    6784              :                       {
    6785            0 :                         {
    6786            0 :                           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
    6787            0 :                           tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, NE_EXPR);
    6788            0 :                           if (res) return res;
    6789              :                         }
    6790              :                       }
    6791              :                     break;
    6792              :                   }
    6793              :                 default:;
    6794              :                 }
    6795              :               break;
    6796              :             }
    6797              :           default:;
    6798              :           }
    6799              :         break;
    6800              :       }
    6801        30501 :     case MINUS_EXPR:
    6802        30501 :       {
    6803        30501 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6804        30501 :         tree _q31 = TREE_OPERAND (_p1, 1);
    6805        30501 :         switch (TREE_CODE (_q30))
    6806              :           {
    6807          658 :           case INTEGER_CST:
    6808          658 :             {
    6809          658 :               switch (TREE_CODE (_q31))
    6810              :                 {
    6811           28 :                 CASE_CONVERT:
    6812           28 :                   {
    6813           28 :                     tree _q50 = TREE_OPERAND (_q31, 0);
    6814           28 :                     if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    6815              :                       {
    6816            0 :                         {
    6817            0 :                           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
    6818            0 :                           tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, NE_EXPR);
    6819            0 :                           if (res) return res;
    6820              :                         }
    6821              :                       }
    6822              :                     break;
    6823              :                   }
    6824          658 :                 default:;
    6825              :                 }
    6826          658 :               if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    6827              :                 {
    6828            0 :                   {
    6829            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
    6830            0 :                     tree res = generic_simplify_242 (loc, type, _p0, _p1, captures, NE_EXPR);
    6831            0 :                     if (res) return res;
    6832              :                   }
    6833              :                 }
    6834              :               break;
    6835              :             }
    6836              :           default:;
    6837              :           }
    6838              :         break;
    6839              :       }
    6840     39172827 :     default:;
    6841              :     }
    6842     39172827 :   switch (TREE_CODE (_p0))
    6843              :     {
    6844        18915 :     case LT_EXPR:
    6845        18915 :       {
    6846        18915 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6847        18915 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6848        18915 :         switch (TREE_CODE (_p1))
    6849              :           {
    6850           18 :           case GT_EXPR:
    6851           18 :             {
    6852           18 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6853           18 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6854           18 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6855              :                 {
    6856            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6857              :                     {
    6858            0 :                       {
    6859            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6860            0 :                         const enum tree_code cmp1 = LT_EXPR;
    6861            0 :                         const enum tree_code cmp2 = GT_EXPR;
    6862            0 :                         const enum tree_code rcmp = NE_EXPR;
    6863            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6864            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6865            0 :  || ((VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[1]))
    6866            0 :  || VECTOR_BOOLEAN_TYPE_P (TREE_TYPE (captures[1])))
    6867            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6868              : )
    6869              :                           {
    6870            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1608;
    6871            0 :                             {
    6872            0 :                               tree res_op0;
    6873            0 :                               res_op0 = captures[0];
    6874            0 :                               tree res_op1;
    6875            0 :                               res_op1 = captures[1];
    6876            0 :                               tree _r;
    6877            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6878            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 936, __FILE__, __LINE__, true);
    6879              :                               return _r;
    6880              :                             }
    6881            0 : next_after_fail1608:;
    6882              :                           }
    6883              :                       }
    6884              :                     }
    6885              :                 }
    6886              :               break;
    6887              :             }
    6888          100 :           case EQ_EXPR:
    6889          100 :             {
    6890          100 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6891          100 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6892          100 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6893              :                 {
    6894            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6895              :                     {
    6896            0 :                       {
    6897            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6898            0 :                         const enum tree_code cmp1 = LT_EXPR;
    6899            0 :                         const enum tree_code cmp2 = EQ_EXPR;
    6900            0 :                         const enum tree_code rcmp = LE_EXPR;
    6901            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6902            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6903            0 :  || ((VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[1]))
    6904            0 :  || VECTOR_BOOLEAN_TYPE_P (TREE_TYPE (captures[1])))
    6905            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6906              : )
    6907              :                           {
    6908            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1609;
    6909            0 :                             {
    6910            0 :                               tree res_op0;
    6911            0 :                               res_op0 = captures[0];
    6912            0 :                               tree res_op1;
    6913            0 :                               res_op1 = captures[1];
    6914            0 :                               tree _r;
    6915            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6916            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 936, __FILE__, __LINE__, true);
    6917              :                               return _r;
    6918              :                             }
    6919            0 : next_after_fail1609:;
    6920              :                           }
    6921              :                       }
    6922              :                     }
    6923              :                 }
    6924              :               break;
    6925              :             }
    6926           23 :           case NE_EXPR:
    6927           23 :             {
    6928           23 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6929           23 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6930           23 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6931              :                 {
    6932            9 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6933              :                     {
    6934            0 :                       {
    6935            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6936            0 :                         const enum tree_code cmp1 = LT_EXPR;
    6937            0 :                         const enum tree_code cmp2 = NE_EXPR;
    6938            0 :                         const enum tree_code rcmp = GT_EXPR;
    6939            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6940            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6941            0 :  || ((VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[1]))
    6942            0 :  || VECTOR_BOOLEAN_TYPE_P (TREE_TYPE (captures[1])))
    6943            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6944              : )
    6945              :                           {
    6946            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1610;
    6947            0 :                             {
    6948            0 :                               tree res_op0;
    6949            0 :                               res_op0 = captures[0];
    6950            0 :                               tree res_op1;
    6951            0 :                               res_op1 = captures[1];
    6952            0 :                               tree _r;
    6953            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    6954            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 936, __FILE__, __LINE__, true);
    6955              :                               return _r;
    6956              :                             }
    6957            0 : next_after_fail1610:;
    6958              :                           }
    6959              :                       }
    6960              :                     }
    6961              :                 }
    6962              :               break;
    6963              :             }
    6964              :           default:;
    6965              :           }
    6966              :         break;
    6967              :       }
    6968        12262 :     case LE_EXPR:
    6969        12262 :       {
    6970        12262 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6971        12262 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6972        12262 :         switch (TREE_CODE (_p1))
    6973              :           {
    6974           25 :           case GE_EXPR:
    6975           25 :             {
    6976           25 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6977           25 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6978           25 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6979              :                 {
    6980            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6981              :                     {
    6982            0 :                       {
    6983            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6984            0 :                         const enum tree_code cmp1 = LE_EXPR;
    6985            0 :                         const enum tree_code cmp2 = GE_EXPR;
    6986            0 :                         const enum tree_code rcmp = NE_EXPR;
    6987            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    6988            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6989            0 :  || ((VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[1]))
    6990            0 :  || VECTOR_BOOLEAN_TYPE_P (TREE_TYPE (captures[1])))
    6991            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    6992              : )
    6993              :                           {
    6994            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1611;
    6995            0 :                             {
    6996            0 :                               tree res_op0;
    6997            0 :                               res_op0 = captures[0];
    6998            0 :                               tree res_op1;
    6999            0 :                               res_op1 = captures[1];
    7000            0 :                               tree _r;
    7001            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    7002            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 936, __FILE__, __LINE__, true);
    7003              :                               return _r;
    7004              :                             }
    7005            0 : next_after_fail1611:;
    7006              :                           }
    7007              :                       }
    7008              :                     }
    7009              :                 }
    7010              :               break;
    7011              :             }
    7012           41 :           case EQ_EXPR:
    7013           41 :             {
    7014           41 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7015           41 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7016           41 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    7017              :                 {
    7018            9 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    7019              :                     {
    7020            0 :                       {
    7021            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7022            0 :                         const enum tree_code cmp1 = LE_EXPR;
    7023            0 :                         const enum tree_code cmp2 = EQ_EXPR;
    7024            0 :                         const enum tree_code rcmp = LT_EXPR;
    7025            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    7026            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    7027            0 :  || ((VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[1]))
    7028            0 :  || VECTOR_BOOLEAN_TYPE_P (TREE_TYPE (captures[1])))
    7029            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    7030              : )
    7031              :                           {
    7032            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1612;
    7033            0 :                             {
    7034            0 :                               tree res_op0;
    7035            0 :                               res_op0 = captures[0];
    7036            0 :                               tree res_op1;
    7037            0 :                               res_op1 = captures[1];
    7038            0 :                               tree _r;
    7039            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    7040            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 936, __FILE__, __LINE__, true);
    7041              :                               return _r;
    7042              :                             }
    7043            0 : next_after_fail1612:;
    7044              :                           }
    7045              :                       }
    7046              :                     }
    7047              :                 }
    7048              :               break;
    7049              :             }
    7050           67 :           case NE_EXPR:
    7051           67 :             {
    7052           67 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7053           67 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7054           67 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    7055              :                 {
    7056            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    7057              :                     {
    7058            0 :                       {
    7059            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7060            0 :                         const enum tree_code cmp1 = LE_EXPR;
    7061            0 :                         const enum tree_code cmp2 = NE_EXPR;
    7062            0 :                         const enum tree_code rcmp = GE_EXPR;
    7063            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    7064            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    7065            0 :  || ((VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[1]))
    7066            0 :  || VECTOR_BOOLEAN_TYPE_P (TREE_TYPE (captures[1])))
    7067            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    7068              : )
    7069              :                           {
    7070            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1613;
    7071            0 :                             {
    7072            0 :                               tree res_op0;
    7073            0 :                               res_op0 = captures[0];
    7074            0 :                               tree res_op1;
    7075            0 :                               res_op1 = captures[1];
    7076            0 :                               tree _r;
    7077            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    7078            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 936, __FILE__, __LINE__, true);
    7079              :                               return _r;
    7080              :                             }
    7081            0 : next_after_fail1613:;
    7082              :                           }
    7083              :                       }
    7084              :                     }
    7085              :                 }
    7086              :               break;
    7087              :             }
    7088              :           default:;
    7089              :           }
    7090              :         break;
    7091              :       }
    7092        36367 :     case GT_EXPR:
    7093        36367 :       {
    7094        36367 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7095        36367 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7096        36367 :         switch (TREE_CODE (_p1))
    7097              :           {
    7098           77 :           case GT_EXPR:
    7099           77 :             {
    7100           77 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7101           77 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7102           77 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    7103              :                 {
    7104            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    7105              :                     {
    7106            0 :                       {
    7107            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    7108            0 :                         const enum tree_code cmp1 = LT_EXPR;
    7109            0 :                         const enum tree_code cmp2 = GT_EXPR;
    7110            0 :                         const enum tree_code rcmp = NE_EXPR;
    7111            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    7112            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    7113            0 :  || ((VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[1]))
    7114            0 :  || VECTOR_BOOLEAN_TYPE_P (TREE_TYPE (captures[1])))
    7115            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    7116              : )
    7117              :                           {
    7118            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1614;
    7119            0 :                             {
    7120            0 :                               tree res_op0;
    7121            0 :                               res_op0 = captures[0];
    7122            0 :                               tree res_op1;
    7123            0 :                               res_op1 = captures[1];
    7124            0 :                               tree _r;
    7125            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    7126            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 936, __FILE__, __LINE__, true);
    7127              :                               return _r;
    7128              :                             }
    7129            0 : next_after_fail1614:;
    7130              :                           }
    7131              :                       }
    7132            0 :                       {
    7133            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7134            0 :                         const enum tree_code cmp1 = LT_EXPR;
    7135            0 :                         const enum tree_code cmp2 = GT_EXPR;
    7136            0 :                         const enum tree_code rcmp = NE_EXPR;
    7137            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    7138            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    7139            0 :  || ((VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[1]))
    7140            0 :  || VECTOR_BOOLEAN_TYPE_P (TREE_TYPE (captures[1])))
    7141            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    7142              : )
    7143              :                           {
    7144            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1615;
    7145            0 :                             {
    7146            0 :                               tree res_op0;
    7147            0 :                               res_op0 = captures[0];
    7148            0 :                               tree res_op1;
    7149            0 :                               res_op1 = captures[1];
    7150            0 :                               tree _r;
    7151            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    7152            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 936, __FILE__, __LINE__, true);
    7153              :                               return _r;
    7154              :                             }
    7155            0 : next_after_fail1615:;
    7156              :                           }
    7157              :                       }
    7158              :                     }
    7159              :                 }
    7160              :               break;
    7161              :             }
    7162          101 :           case EQ_EXPR:
    7163          101 :             {
    7164          101 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7165          101 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7166          101 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    7167              :                 {
    7168            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    7169              :                     {
    7170            0 :                       {
    7171            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    7172            0 :                         const enum tree_code cmp1 = LT_EXPR;
    7173            0 :                         const enum tree_code cmp2 = EQ_EXPR;
    7174            0 :                         const enum tree_code rcmp = LE_EXPR;
    7175            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    7176            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    7177            0 :  || ((VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[1]))
    7178            0 :  || VECTOR_BOOLEAN_TYPE_P (TREE_TYPE (captures[1])))
    7179            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    7180              : )
    7181              :                           {
    7182            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1616;
    7183            0 :                             {
    7184            0 :                               tree res_op0;
    7185            0 :                               res_op0 = captures[0];
    7186            0 :                               tree res_op1;
    7187            0 :                               res_op1 = captures[1];
    7188            0 :                               tree _r;
    7189            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    7190            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 936, __FILE__, __LINE__, true);
    7191              :                               return _r;
    7192              :                             }
    7193            0 : next_after_fail1616:;
    7194              :                           }
    7195              :                       }
    7196              :                     }
    7197              :                 }
    7198              :               break;
    7199              :             }
    7200           53 :           case NE_EXPR:
    7201           53 :             {
    7202           53 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7203           53 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7204           53 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    7205              :                 {
    7206            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    7207              :                     {
    7208            0 :                       {
    7209            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    7210            0 :                         const enum tree_code cmp1 = LT_EXPR;
    7211            0 :                         const enum tree_code cmp2 = NE_EXPR;
    7212            0 :                         const enum tree_code rcmp = GT_EXPR;
    7213            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    7214            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    7215            0 :  || ((VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[1]))
    7216            0 :  || VECTOR_BOOLEAN_TYPE_P (TREE_TYPE (captures[1])))
    7217            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    7218              : )
    7219              :                           {
    7220            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1617;
    7221            0 :                             {
    7222            0 :                               tree res_op0;
    7223            0 :                               res_op0 = captures[0];
    7224            0 :                               tree res_op1;
    7225            0 :                               res_op1 = captures[1];
    7226            0 :                               tree _r;
    7227            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    7228            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 936, __FILE__, __LINE__, true);
    7229              :                               return _r;
    7230              :                             }
    7231            0 : next_after_fail1617:;
    7232              :                           }
    7233              :                       }
    7234              :                     }
    7235              :                 }
    7236              :               break;
    7237              :             }
    7238           32 :           case LT_EXPR:
    7239           32 :             {
    7240           32 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7241           32 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7242           32 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    7243              :                 {
    7244            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    7245              :                     {
    7246            0 :                       {
    7247            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7248            0 :                         const enum tree_code cmp1 = LT_EXPR;
    7249            0 :                         const enum tree_code cmp2 = GT_EXPR;
    7250            0 :                         const enum tree_code rcmp = NE_EXPR;
    7251            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    7252            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    7253            0 :  || ((VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[1]))
    7254            0 :  || VECTOR_BOOLEAN_TYPE_P (TREE_TYPE (captures[1])))
    7255            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    7256              : )
    7257              :                           {
    7258            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1618;
    7259            0 :                             {
    7260            0 :                               tree res_op0;
    7261            0 :                               res_op0 = captures[0];
    7262            0 :                               tree res_op1;
    7263            0 :                               res_op1 = captures[1];
    7264            0 :                               tree _r;
    7265            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    7266            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 936, __FILE__, __LINE__, true);
    7267              :                               return _r;
    7268              :                             }
    7269            0 : next_after_fail1618:;
    7270              :                           }
    7271              :                       }
    7272              :                     }
    7273              :                 }
    7274              :               break;
    7275              :             }
    7276              :           default:;
    7277              :           }
    7278              :         break;
    7279              :       }
    7280         6323 :     case GE_EXPR:
    7281         6323 :       {
    7282         6323 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7283         6323 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7284         6323 :         switch (TREE_CODE (_p1))
    7285              :           {
    7286           76 :           case GE_EXPR:
    7287           76 :             {
    7288           76 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7289           76 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7290           76 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    7291              :                 {
    7292            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    7293              :                     {
    7294            0 :                       {
    7295            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    7296            0 :                         const enum tree_code cmp1 = LE_EXPR;
    7297            0 :                         const enum tree_code cmp2 = GE_EXPR;
    7298            0 :                         const enum tree_code rcmp = NE_EXPR;
    7299            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    7300            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    7301            0 :  || ((VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[1]))
    7302            0 :  || VECTOR_BOOLEAN_TYPE_P (TREE_TYPE (captures[1])))
    7303            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    7304              : )
    7305              :                           {
    7306            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1619;
    7307            0 :                             {
    7308            0 :                               tree res_op0;
    7309            0 :                               res_op0 = captures[0];
    7310            0 :                               tree res_op1;
    7311            0 :                               res_op1 = captures[1];
    7312            0 :                               tree _r;
    7313            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    7314            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 936, __FILE__, __LINE__, true);
    7315              :                               return _r;
    7316              :                             }
    7317            0 : next_after_fail1619:;
    7318              :                           }
    7319              :                       }
    7320            0 :                       {
    7321            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7322            0 :                         const enum tree_code cmp1 = LE_EXPR;
    7323            0 :                         const enum tree_code cmp2 = GE_EXPR;
    7324            0 :                         const enum tree_code rcmp = NE_EXPR;
    7325            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    7326            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    7327            0 :  || ((VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[1]))
    7328            0 :  || VECTOR_BOOLEAN_TYPE_P (TREE_TYPE (captures[1])))
    7329            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    7330              : )
    7331              :                           {
    7332            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1620;
    7333            0 :                             {
    7334            0 :                               tree res_op0;
    7335            0 :                               res_op0 = captures[0];
    7336            0 :                               tree res_op1;
    7337            0 :                               res_op1 = captures[1];
    7338            0 :                               tree _r;
    7339            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    7340            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 936, __FILE__, __LINE__, true);
    7341              :                               return _r;
    7342              :                             }
    7343            0 : next_after_fail1620:;
    7344              :                           }
    7345              :                       }
    7346              :                     }
    7347              :                 }
    7348              :               break;
    7349              :             }
    7350           52 :           case EQ_EXPR:
    7351           52 :             {
    7352           52 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7353           52 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7354           52 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    7355              :                 {
    7356            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    7357              :                     {
    7358            0 :                       {
    7359            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    7360            0 :                         const enum tree_code cmp1 = LE_EXPR;
    7361            0 :                         const enum tree_code cmp2 = EQ_EXPR;
    7362            0 :                         const enum tree_code rcmp = LT_EXPR;
    7363            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    7364            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    7365            0 :  || ((VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[1]))
    7366            0 :  || VECTOR_BOOLEAN_TYPE_P (TREE_TYPE (captures[1])))
    7367            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    7368              : )
    7369              :                           {
    7370            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1621;
    7371            0 :                             {
    7372            0 :                               tree res_op0;
    7373            0 :                               res_op0 = captures[0];
    7374            0 :                               tree res_op1;
    7375            0 :                               res_op1 = captures[1];
    7376            0 :                               tree _r;
    7377            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    7378            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 936, __FILE__, __LINE__, true);
    7379              :                               return _r;
    7380              :                             }
    7381            0 : next_after_fail1621:;
    7382              :                           }
    7383              :                       }
    7384              :                     }
    7385              :                 }
    7386              :               break;
    7387              :             }
    7388           65 :           case NE_EXPR:
    7389           65 :             {
    7390           65 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7391           65 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7392           65 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    7393              :                 {
    7394            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    7395              :                     {
    7396            0 :                       {
    7397            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    7398            0 :                         const enum tree_code cmp1 = LE_EXPR;
    7399            0 :                         const enum tree_code cmp2 = NE_EXPR;
    7400            0 :                         const enum tree_code rcmp = GE_EXPR;
    7401            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    7402            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    7403            0 :  || ((VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[1]))
    7404            0 :  || VECTOR_BOOLEAN_TYPE_P (TREE_TYPE (captures[1])))
    7405            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    7406              : )
    7407              :                           {
    7408            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1622;
    7409            0 :                             {
    7410            0 :                               tree res_op0;
    7411            0 :                               res_op0 = captures[0];
    7412            0 :                               tree res_op1;
    7413            0 :                               res_op1 = captures[1];
    7414            0 :                               tree _r;
    7415            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    7416            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 936, __FILE__, __LINE__, true);
    7417              :                               return _r;
    7418              :                             }
    7419            0 : next_after_fail1622:;
    7420              :                           }
    7421              :                       }
    7422              :                     }
    7423              :                 }
    7424              :               break;
    7425              :             }
    7426           16 :           case LE_EXPR:
    7427           16 :             {
    7428           16 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7429           16 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7430           16 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    7431              :                 {
    7432            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    7433              :                     {
    7434            0 :                       {
    7435            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7436            0 :                         const enum tree_code cmp1 = LE_EXPR;
    7437            0 :                         const enum tree_code cmp2 = GE_EXPR;
    7438            0 :                         const enum tree_code rcmp = NE_EXPR;
    7439            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    7440            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    7441            0 :  || ((VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[1]))
    7442            0 :  || VECTOR_BOOLEAN_TYPE_P (TREE_TYPE (captures[1])))
    7443            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    7444              : )
    7445              :                           {
    7446            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1623;
    7447            0 :                             {
    7448            0 :                               tree res_op0;
    7449            0 :                               res_op0 = captures[0];
    7450            0 :                               tree res_op1;
    7451            0 :                               res_op1 = captures[1];
    7452            0 :                               tree _r;
    7453            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    7454            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 936, __FILE__, __LINE__, true);
    7455              :                               return _r;
    7456              :                             }
    7457            0 : next_after_fail1623:;
    7458              :                           }
    7459              :                       }
    7460              :                     }
    7461              :                 }
    7462              :               break;
    7463              :             }
    7464              :           default:;
    7465              :           }
    7466              :         break;
    7467              :       }
    7468        64708 :     case EQ_EXPR:
    7469        64708 :       {
    7470        64708 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7471        64708 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7472        64708 :         switch (TREE_CODE (_p1))
    7473              :           {
    7474           20 :           case LT_EXPR:
    7475           20 :             {
    7476           20 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7477           20 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7478           20 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    7479              :                 {
    7480            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    7481              :                     {
    7482            0 :                       {
    7483            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7484            0 :                         const enum tree_code cmp1 = LT_EXPR;
    7485            0 :                         const enum tree_code cmp2 = EQ_EXPR;
    7486            0 :                         const enum tree_code rcmp = LE_EXPR;
    7487            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    7488            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    7489            0 :  || ((VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[1]))
    7490            0 :  || VECTOR_BOOLEAN_TYPE_P (TREE_TYPE (captures[1])))
    7491            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    7492              : )
    7493              :                           {
    7494            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1624;
    7495            0 :                             {
    7496            0 :                               tree res_op0;
    7497            0 :                               res_op0 = captures[0];
    7498            0 :                               tree res_op1;
    7499            0 :                               res_op1 = captures[1];
    7500            0 :                               tree _r;
    7501            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    7502            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 936, __FILE__, __LINE__, true);
    7503              :                               return _r;
    7504              :                             }
    7505            0 : next_after_fail1624:;
    7506              :                           }
    7507              :                       }
    7508              :                     }
    7509              :                 }
    7510              :               break;
    7511              :             }
    7512           42 :           case LE_EXPR:
    7513           42 :             {
    7514           42 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7515           42 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7516           42 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    7517              :                 {
    7518            7 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    7519              :                     {
    7520            0 :                       {
    7521            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7522            0 :                         const enum tree_code cmp1 = LE_EXPR;
    7523            0 :                         const enum tree_code cmp2 = EQ_EXPR;
    7524            0 :                         const enum tree_code rcmp = LT_EXPR;
    7525            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    7526            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    7527            0 :  || ((VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[1]))
    7528            0 :  || VECTOR_BOOLEAN_TYPE_P (TREE_TYPE (captures[1])))
    7529            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    7530              : )
    7531              :                           {
    7532            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1625;
    7533            0 :                             {
    7534            0 :                               tree res_op0;
    7535            0 :                               res_op0 = captures[0];
    7536            0 :                               tree res_op1;
    7537            0 :                               res_op1 = captures[1];
    7538            0 :                               tree _r;
    7539            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    7540            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 936, __FILE__, __LINE__, true);
    7541              :                               return _r;
    7542              :                             }
    7543            0 : next_after_fail1625:;
    7544              :                           }
    7545              :                       }
    7546              :                     }
    7547              :                 }
    7548              :               break;
    7549              :             }
    7550           27 :           case GT_EXPR:
    7551           27 :             {
    7552           27 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7553           27 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7554           27 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    7555              :                 {
    7556            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    7557              :                     {
    7558            0 :                       {
    7559            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7560            0 :                         const enum tree_code cmp1 = LT_EXPR;
    7561            0 :                         const enum tree_code cmp2 = EQ_EXPR;
    7562            0 :                         const enum tree_code rcmp = LE_EXPR;
    7563            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    7564            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    7565            0 :  || ((VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[1]))
    7566            0 :  || VECTOR_BOOLEAN_TYPE_P (TREE_TYPE (captures[1])))
    7567            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    7568              : )
    7569              :                           {
    7570            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1626;
    7571            0 :                             {
    7572            0 :                               tree res_op0;
    7573            0 :                               res_op0 = captures[0];
    7574            0 :                               tree res_op1;
    7575            0 :                               res_op1 = captures[1];
    7576            0 :                               tree _r;
    7577            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    7578            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 936, __FILE__, __LINE__, true);
    7579              :                               return _r;
    7580              :                             }
    7581            0 : next_after_fail1626:;
    7582              :                           }
    7583              :                       }
    7584              :                     }
    7585              :                 }
    7586              :               break;
    7587              :             }
    7588           14 :           case GE_EXPR:
    7589           14 :             {
    7590           14 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7591           14 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7592           14 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    7593              :                 {
    7594            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    7595              :                     {
    7596            0 :                       {
    7597            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7598            0 :                         const enum tree_code cmp1 = LE_EXPR;
    7599            0 :                         const enum tree_code cmp2 = EQ_EXPR;
    7600            0 :                         const enum tree_code rcmp = LT_EXPR;
    7601            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    7602            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    7603            0 :  || ((VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[1]))
    7604            0 :  || VECTOR_BOOLEAN_TYPE_P (TREE_TYPE (captures[1])))
    7605            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    7606              : )
    7607              :                           {
    7608            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1627;
    7609            0 :                             {
    7610            0 :                               tree res_op0;
    7611            0 :                               res_op0 = captures[0];
    7612            0 :                               tree res_op1;
    7613            0 :                               res_op1 = captures[1];
    7614            0 :                               tree _r;
    7615            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    7616            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 936, __FILE__, __LINE__, true);
    7617              :                               return _r;
    7618              :                             }
    7619            0 : next_after_fail1627:;
    7620              :                           }
    7621              :                       }
    7622              :                     }
    7623              :                 }
    7624              :               break;
    7625              :             }
    7626        64708 :           default:;
    7627              :           }
    7628        64708 :         if (tree_zero_one_valued_p (_q20))
    7629              :           {
    7630          973 :             if (integer_zerop (_q21))
    7631              :               {
    7632            1 :                 switch (TREE_CODE (_p1))
    7633              :                   {
    7634            0 :                   case EQ_EXPR:
    7635            0 :                     {
    7636            0 :                       tree _q50 = TREE_OPERAND (_p1, 0);
    7637            0 :                       tree _q51 = TREE_OPERAND (_p1, 1);
    7638            0 :                       if (tree_zero_one_valued_p (_q50))
    7639              :                         {
    7640            0 :                           if (integer_zerop (_q51))
    7641              :                             {
    7642            0 :                               {
    7643            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
    7644            0 :                                 tree res = generic_simplify_245 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR, EQ_EXPR, NE_EXPR);
    7645            0 :                                 if (res) return res;
    7646              :                               }
    7647            0 :                               {
    7648            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q20 };
    7649            0 :                                 tree res = generic_simplify_245 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR, EQ_EXPR, NE_EXPR);
    7650            0 :                                 if (res) return res;
    7651              :                               }
    7652              :                             }
    7653              :                         }
    7654              :                       break;
    7655              :                     }
    7656            0 :                   case NE_EXPR:
    7657            0 :                     {
    7658            0 :                       tree _q50 = TREE_OPERAND (_p1, 0);
    7659            0 :                       tree _q51 = TREE_OPERAND (_p1, 1);
    7660            0 :                       if (tree_zero_one_valued_p (_q50))
    7661              :                         {
    7662            0 :                           if (integer_zerop (_q51))
    7663              :                             {
    7664            0 :                               {
    7665            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
    7666            0 :                                 tree res = generic_simplify_245 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR, NE_EXPR, EQ_EXPR);
    7667            0 :                                 if (res) return res;
    7668              :                               }
    7669            0 :                               {
    7670            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q20 };
    7671            0 :                                 tree res = generic_simplify_245 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR, EQ_EXPR, EQ_EXPR);
    7672            0 :                                 if (res) return res;
    7673              :                               }
    7674              :                             }
    7675              :                         }
    7676              :                       break;
    7677              :                     }
    7678              :                   default:;
    7679              :                   }
    7680              :               }
    7681              :           }
    7682              :         break;
    7683              :       }
    7684        70032 :     case NE_EXPR:
    7685        70032 :       {
    7686        70032 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7687        70032 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7688        70032 :         switch (TREE_CODE (_p1))
    7689              :           {
    7690            7 :           case LT_EXPR:
    7691            7 :             {
    7692            7 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7693            7 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7694            7 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    7695              :                 {
    7696            7 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    7697              :                     {
    7698            0 :                       {
    7699            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7700            0 :                         const enum tree_code cmp1 = LT_EXPR;
    7701            0 :                         const enum tree_code cmp2 = NE_EXPR;
    7702            0 :                         const enum tree_code rcmp = GT_EXPR;
    7703            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    7704            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    7705            0 :  || ((VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[1]))
    7706            0 :  || VECTOR_BOOLEAN_TYPE_P (TREE_TYPE (captures[1])))
    7707            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    7708              : )
    7709              :                           {
    7710            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1628;
    7711            0 :                             {
    7712            0 :                               tree res_op0;
    7713            0 :                               res_op0 = captures[0];
    7714            0 :                               tree res_op1;
    7715            0 :                               res_op1 = captures[1];
    7716            0 :                               tree _r;
    7717            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    7718            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 936, __FILE__, __LINE__, true);
    7719              :                               return _r;
    7720              :                             }
    7721            0 : next_after_fail1628:;
    7722              :                           }
    7723              :                       }
    7724              :                     }
    7725              :                 }
    7726              :               break;
    7727              :             }
    7728          340 :           case LE_EXPR:
    7729          340 :             {
    7730          340 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7731          340 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7732          340 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    7733              :                 {
    7734            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    7735              :                     {
    7736            0 :                       {
    7737            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7738            0 :                         const enum tree_code cmp1 = LE_EXPR;
    7739            0 :                         const enum tree_code cmp2 = NE_EXPR;
    7740            0 :                         const enum tree_code rcmp = GE_EXPR;
    7741            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    7742            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    7743            0 :  || ((VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[1]))
    7744            0 :  || VECTOR_BOOLEAN_TYPE_P (TREE_TYPE (captures[1])))
    7745            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    7746              : )
    7747              :                           {
    7748            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1629;
    7749            0 :                             {
    7750            0 :                               tree res_op0;
    7751            0 :                               res_op0 = captures[0];
    7752            0 :                               tree res_op1;
    7753            0 :                               res_op1 = captures[1];
    7754            0 :                               tree _r;
    7755            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    7756            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 936, __FILE__, __LINE__, true);
    7757              :                               return _r;
    7758              :                             }
    7759            0 : next_after_fail1629:;
    7760              :                           }
    7761              :                       }
    7762              :                     }
    7763              :                 }
    7764              :               break;
    7765              :             }
    7766          323 :           case GT_EXPR:
    7767          323 :             {
    7768          323 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7769          323 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7770          323 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    7771              :                 {
    7772            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    7773              :                     {
    7774            0 :                       {
    7775            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7776            0 :                         const enum tree_code cmp1 = LT_EXPR;
    7777            0 :                         const enum tree_code cmp2 = NE_EXPR;
    7778            0 :                         const enum tree_code rcmp = GT_EXPR;
    7779            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    7780            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    7781            0 :  || ((VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[1]))
    7782            0 :  || VECTOR_BOOLEAN_TYPE_P (TREE_TYPE (captures[1])))
    7783            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    7784              : )
    7785              :                           {
    7786            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1630;
    7787            0 :                             {
    7788            0 :                               tree res_op0;
    7789            0 :                               res_op0 = captures[0];
    7790            0 :                               tree res_op1;
    7791            0 :                               res_op1 = captures[1];
    7792            0 :                               tree _r;
    7793            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    7794            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 936, __FILE__, __LINE__, true);
    7795              :                               return _r;
    7796              :                             }
    7797            0 : next_after_fail1630:;
    7798              :                           }
    7799              :                       }
    7800              :                     }
    7801              :                 }
    7802              :               break;
    7803              :             }
    7804           40 :           case GE_EXPR:
    7805           40 :             {
    7806           40 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7807           40 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7808           40 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    7809              :                 {
    7810            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    7811              :                     {
    7812            0 :                       {
    7813            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7814            0 :                         const enum tree_code cmp1 = LE_EXPR;
    7815            0 :                         const enum tree_code cmp2 = NE_EXPR;
    7816            0 :                         const enum tree_code rcmp = GE_EXPR;
    7817            0 :                         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    7818            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    7819            0 :  || ((VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[1]))
    7820            0 :  || VECTOR_BOOLEAN_TYPE_P (TREE_TYPE (captures[1])))
    7821            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    7822              : )
    7823              :                           {
    7824            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1631;
    7825            0 :                             {
    7826            0 :                               tree res_op0;
    7827            0 :                               res_op0 = captures[0];
    7828            0 :                               tree res_op1;
    7829            0 :                               res_op1 = captures[1];
    7830            0 :                               tree _r;
    7831            0 :                               _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    7832            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 936, __FILE__, __LINE__, true);
    7833              :                               return _r;
    7834              :                             }
    7835            0 : next_after_fail1631:;
    7836              :                           }
    7837              :                       }
    7838              :                     }
    7839              :                 }
    7840              :               break;
    7841              :             }
    7842        70032 :           default:;
    7843              :           }
    7844        70032 :         if (tree_zero_one_valued_p (_q20))
    7845              :           {
    7846          394 :             if (integer_zerop (_q21))
    7847              :               {
    7848           82 :                 switch (TREE_CODE (_p1))
    7849              :                   {
    7850           39 :                   case NE_EXPR:
    7851           39 :                     {
    7852           39 :                       tree _q50 = TREE_OPERAND (_p1, 0);
    7853           39 :                       tree _q51 = TREE_OPERAND (_p1, 1);
    7854           39 :                       if (tree_zero_one_valued_p (_q50))
    7855              :                         {
    7856            0 :                           if (integer_zerop (_q51))
    7857              :                             {
    7858            0 :                               {
    7859            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
    7860            0 :                                 tree res = generic_simplify_245 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR, NE_EXPR, NE_EXPR);
    7861            0 :                                 if (res) return res;
    7862              :                               }
    7863            0 :                               {
    7864            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q20 };
    7865            0 :                                 tree res = generic_simplify_245 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR, NE_EXPR, NE_EXPR);
    7866            0 :                                 if (res) return res;
    7867              :                               }
    7868              :                             }
    7869              :                         }
    7870              :                       break;
    7871              :                     }
    7872            0 :                   case EQ_EXPR:
    7873            0 :                     {
    7874            0 :                       tree _q50 = TREE_OPERAND (_p1, 0);
    7875            0 :                       tree _q51 = TREE_OPERAND (_p1, 1);
    7876            0 :                       if (tree_zero_one_valued_p (_q50))
    7877              :                         {
    7878            0 :                           if (integer_zerop (_q51))
    7879              :                             {
    7880            0 :                               {
    7881            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
    7882            0 :                                 tree res = generic_simplify_245 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR, EQ_EXPR, EQ_EXPR);
    7883            0 :                                 if (res) return res;
    7884              :                               }
    7885            0 :                               {
    7886            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q20 };
    7887            0 :                                 tree res = generic_simplify_245 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR, NE_EXPR, EQ_EXPR);
    7888            0 :                                 if (res) return res;
    7889              :                               }
    7890              :                             }
    7891              :                         }
    7892              :                       break;
    7893              :                     }
    7894              :                   default:;
    7895              :                   }
    7896              :               }
    7897              :           }
    7898              :         break;
    7899              :       }
    7900         8326 :     case MIN_EXPR:
    7901         8326 :       {
    7902         8326 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7903         8326 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7904         8326 :         switch (TREE_CODE (_p1))
    7905              :           {
    7906            0 :           case MAX_EXPR:
    7907            0 :             {
    7908            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7909            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7910            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    7911              :                 {
    7912            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    7913              :                     {
    7914            0 :                       {
    7915            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7916            0 :                         if (!HONOR_NANS (captures[0])
    7917              : )
    7918              :                           {
    7919            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1632;
    7920            0 :                             {
    7921            0 :                               tree res_op0;
    7922            0 :                               res_op0 = captures[0];
    7923            0 :                               tree res_op1;
    7924            0 :                               res_op1 = captures[1];
    7925            0 :                               tree _r;
    7926            0 :                               _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    7927            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 937, __FILE__, __LINE__, true);
    7928              :                               return _r;
    7929              :                             }
    7930            0 : next_after_fail1632:;
    7931              :                           }
    7932              :                       }
    7933              :                     }
    7934              :                 }
    7935            0 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    7936              :                 {
    7937            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    7938              :                     {
    7939            0 :                       {
    7940            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    7941            0 :                         if (!HONOR_NANS (captures[0])
    7942              : )
    7943              :                           {
    7944            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1633;
    7945            0 :                             {
    7946            0 :                               tree res_op0;
    7947            0 :                               res_op0 = captures[0];
    7948            0 :                               tree res_op1;
    7949            0 :                               res_op1 = captures[1];
    7950            0 :                               tree _r;
    7951            0 :                               _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    7952            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 937, __FILE__, __LINE__, true);
    7953              :                               return _r;
    7954              :                             }
    7955            0 : next_after_fail1633:;
    7956              :                           }
    7957              :                       }
    7958              :                     }
    7959              :                 }
    7960              :               break;
    7961              :             }
    7962         8326 :           default:;
    7963              :           }
    7964         8326 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    7965              :           {
    7966            0 :             {
    7967            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7968            0 :               tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, MIN_EXPR, NE_EXPR, GT_EXPR);
    7969            0 :               if (res) return res;
    7970              :             }
    7971              :           }
    7972         8326 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    7973              :           {
    7974          616 :             {
    7975          616 :               tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    7976          616 :               tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, MIN_EXPR, NE_EXPR, GT_EXPR);
    7977          616 :               if (res) return res;
    7978              :             }
    7979              :           }
    7980              :         break;
    7981              :       }
    7982         7683 :     case MAX_EXPR:
    7983         7683 :       {
    7984         7683 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7985         7683 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7986         7683 :         switch (TREE_CODE (_p1))
    7987              :           {
    7988            0 :           case MIN_EXPR:
    7989            0 :             {
    7990            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7991            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7992            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    7993              :                 {
    7994            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    7995              :                     {
    7996            0 :                       {
    7997            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    7998            0 :                         if (!HONOR_NANS (captures[0])
    7999              : )
    8000              :                           {
    8001            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1634;
    8002            0 :                             {
    8003            0 :                               tree res_op0;
    8004            0 :                               res_op0 = captures[0];
    8005            0 :                               tree res_op1;
    8006            0 :                               res_op1 = captures[1];
    8007            0 :                               tree _r;
    8008            0 :                               _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    8009            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 937, __FILE__, __LINE__, true);
    8010              :                               return _r;
    8011              :                             }
    8012            0 : next_after_fail1634:;
    8013              :                           }
    8014              :                       }
    8015              :                     }
    8016              :                 }
    8017            0 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    8018              :                 {
    8019            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    8020              :                     {
    8021            0 :                       {
    8022            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    8023            0 :                         if (!HONOR_NANS (captures[0])
    8024              : )
    8025              :                           {
    8026            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1635;
    8027            0 :                             {
    8028            0 :                               tree res_op0;
    8029            0 :                               res_op0 = captures[0];
    8030            0 :                               tree res_op1;
    8031            0 :                               res_op1 = captures[1];
    8032            0 :                               tree _r;
    8033            0 :                               _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    8034            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 937, __FILE__, __LINE__, true);
    8035              :                               return _r;
    8036              :                             }
    8037            0 : next_after_fail1635:;
    8038              :                           }
    8039              :                       }
    8040              :                     }
    8041              :                 }
    8042              :               break;
    8043              :             }
    8044         7683 :           default:;
    8045              :           }
    8046         7683 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    8047              :           {
    8048            0 :             {
    8049            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    8050            0 :               tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, MAX_EXPR, NE_EXPR, LT_EXPR);
    8051            0 :               if (res) return res;
    8052              :             }
    8053              :           }
    8054         7683 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    8055              :           {
    8056          425 :             {
    8057          425 :               tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    8058          425 :               tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, MAX_EXPR, NE_EXPR, LT_EXPR);
    8059          425 :               if (res) return res;
    8060              :             }
    8061              :           }
    8062              :         break;
    8063              :       }
    8064     39172698 :     default:;
    8065              :     }
    8066     39172698 : if (tree_with_possible_nonzero_bits (_p0))
    8067              :   {
    8068     15917985 :     if (tree_with_known_nonzero_bits (_p1))
    8069              :       {
    8070     14396680 :         {
    8071     14396680 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    8072     14396680 :           tree res = generic_simplify_243 (loc, type, _p0, _p1, captures, NE_EXPR);
    8073     14396680 :           if (res) return res;
    8074              :         }
    8075              :       }
    8076              :   }
    8077     39111329 : if (tree_with_known_nonzero_bits (_p0))
    8078              :   {
    8079     11680898 :     if (tree_with_possible_nonzero_bits (_p1))
    8080              :       {
    8081     11631267 :         {
    8082     11631267 :           tree captures[2] ATTRIBUTE_UNUSED = { _p1, _p0 };
    8083     11631267 :           tree res = generic_simplify_243 (loc, type, _p0, _p1, captures, NE_EXPR);
    8084     11631267 :           if (res) return res;
    8085              :         }
    8086              :       }
    8087              :   }
    8088     39109941 :   switch (TREE_CODE (_p1))
    8089              :     {
    8090          144 :     case MIN_EXPR:
    8091          144 :       {
    8092          144 :         tree _q30 = TREE_OPERAND (_p1, 0);
    8093          144 :         tree _q31 = TREE_OPERAND (_p1, 1);
    8094          144 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    8095              :           {
    8096            0 :             {
    8097            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    8098            0 :               tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, MIN_EXPR, NE_EXPR, GT_EXPR);
    8099            0 :               if (res) return res;
    8100              :             }
    8101              :           }
    8102          144 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    8103              :           {
    8104            0 :             {
    8105            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
    8106            0 :               tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, MIN_EXPR, NE_EXPR, GT_EXPR);
    8107            0 :               if (res) return res;
    8108              :             }
    8109              :           }
    8110              :         break;
    8111              :       }
    8112         1830 :     case MAX_EXPR:
    8113         1830 :       {
    8114         1830 :         tree _q30 = TREE_OPERAND (_p1, 0);
    8115         1830 :         tree _q31 = TREE_OPERAND (_p1, 1);
    8116         1830 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    8117              :           {
    8118            0 :             {
    8119            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    8120            0 :               tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, MAX_EXPR, NE_EXPR, LT_EXPR);
    8121            0 :               if (res) return res;
    8122              :             }
    8123              :           }
    8124         1830 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    8125              :           {
    8126            0 :             {
    8127            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
    8128            0 :               tree res = generic_simplify_246 (loc, type, _p0, _p1, captures, MAX_EXPR, NE_EXPR, LT_EXPR);
    8129            0 :               if (res) return res;
    8130              :             }
    8131              :           }
    8132              :         break;
    8133              :       }
    8134     39109941 :     default:;
    8135              :     }
    8136     39109941 :   switch (TREE_CODE (_p0))
    8137              :     {
    8138         8326 :     case MIN_EXPR:
    8139         8326 :       {
    8140         8326 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8141         8326 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8142         8326 :         switch (TREE_CODE (_q21))
    8143              :           {
    8144          570 :           case INTEGER_CST:
    8145          570 :             {
    8146          570 :               switch (TREE_CODE (_p1))
    8147              :                 {
    8148            0 :                 case INTEGER_CST:
    8149            0 :                   {
    8150            0 :                     {
    8151            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    8152            0 :                       tree res = generic_simplify_247 (loc, type, _p0, _p1, captures, NE_EXPR);
    8153            0 :                       if (res) return res;
    8154              :                     }
    8155            0 :                     break;
    8156              :                   }
    8157              :                 default:;
    8158              :                 }
    8159              :               break;
    8160              :             }
    8161              :           default:;
    8162              :           }
    8163              :         break;
    8164              :       }
    8165         7554 :     case MAX_EXPR:
    8166         7554 :       {
    8167         7554 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8168         7554 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8169         7554 :         switch (TREE_CODE (_q21))
    8170              :           {
    8171         6502 :           case INTEGER_CST:
    8172         6502 :             {
    8173         6502 :               switch (TREE_CODE (_p1))
    8174              :                 {
    8175          696 :                 case INTEGER_CST:
    8176          696 :                   {
    8177          696 :                     {
    8178          696 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    8179          696 :                       tree res = generic_simplify_248 (loc, type, _p0, _p1, captures, NE_EXPR);
    8180          696 :                       if (res) return res;
    8181              :                     }
    8182            0 :                     break;
    8183              :                   }
    8184              :                 default:;
    8185              :                 }
    8186              :               break;
    8187              :             }
    8188         6858 :           default:;
    8189              :           }
    8190         6858 :         if (tree_expr_nonnegative_p (_q20))
    8191              :           {
    8192          362 :             if (tree_expr_nonnegative_p (_q21))
    8193              :               {
    8194          350 :                 if (integer_zerop (_p1))
    8195              :                   {
    8196            0 :                     {
    8197            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    8198            0 :                       tree res = generic_simplify_249 (loc, type, _p0, _p1, captures, NE_EXPR);
    8199            0 :                       if (res) return res;
    8200              :                     }
    8201              :                   }
    8202              :               }
    8203              :           }
    8204              :         break;
    8205              :       }
    8206      1320893 :     case BIT_AND_EXPR:
    8207      1320893 :       {
    8208      1320893 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8209      1320893 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8210      1320893 :         switch (TREE_CODE (_q20))
    8211              :           {
    8212         3583 :           case LSHIFT_EXPR:
    8213         3583 :             {
    8214         3583 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8215         3583 :               tree _q31 = TREE_OPERAND (_q20, 1);
    8216         3583 :               if (integer_pow2p (_q30))
    8217              :                 {
    8218         3562 :                   if (integer_pow2p (_q21))
    8219              :                     {
    8220           21 :                       if (integer_zerop (_p1))
    8221              :                         {
    8222           21 :                           {
    8223           21 :                             tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q21 };
    8224           21 :                             tree res = generic_simplify_250 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
    8225           21 :                             if (res) return res;
    8226              :                           }
    8227              :                         }
    8228              :                     }
    8229              :                 }
    8230         3562 :               switch (TREE_CODE (_q31))
    8231              :                 {
    8232           13 :                 case INTEGER_CST:
    8233           13 :                   {
    8234           13 :                     switch (TREE_CODE (_q21))
    8235              :                       {
    8236           13 :                       case INTEGER_CST:
    8237           13 :                         {
    8238           13 :                           switch (TREE_CODE (_p1))
    8239              :                             {
    8240           13 :                             case INTEGER_CST:
    8241           13 :                               {
    8242           13 :                                 {
    8243           13 :                                   tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
    8244           13 :                                   tree res = generic_simplify_251 (loc, type, _p0, _p1, captures, NE_EXPR);
    8245           13 :                                   if (res) return res;
    8246              :                                 }
    8247            0 :                                 break;
    8248              :                               }
    8249              :                             default:;
    8250              :                             }
    8251              :                           break;
    8252              :                         }
    8253              :                       default:;
    8254              :                       }
    8255              :                     break;
    8256              :                   }
    8257         3549 :                 default:;
    8258              :                 }
    8259         3549 :               if (integer_onep (_q30))
    8260              :                 {
    8261         3540 :                   if (integer_pow2p (_q21))
    8262              :                     {
    8263            0 :                       if (integer_zerop (_p1))
    8264              :                         {
    8265            0 :                           {
    8266            0 :                             tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q21 };
    8267            0 :                             tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
    8268            0 :                             if (res) return res;
    8269              :                           }
    8270              :                         }
    8271              :                     }
    8272              :                 }
    8273              :               break;
    8274              :             }
    8275         4806 :           case RSHIFT_EXPR:
    8276         4806 :             {
    8277         4806 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8278         4806 :               tree _q31 = TREE_OPERAND (_q20, 1);
    8279         4806 :               if (integer_pow2p (_q30))
    8280              :                 {
    8281           41 :                   if (integer_pow2p (_q21))
    8282              :                     {
    8283            9 :                       if (integer_zerop (_p1))
    8284              :                         {
    8285            9 :                           {
    8286            9 :                             tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q21 };
    8287            9 :                             tree res = generic_simplify_253 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
    8288            9 :                             if (res) return res;
    8289              :                           }
    8290              :                         }
    8291              :                     }
    8292              :                 }
    8293         4797 :               switch (TREE_CODE (_q31))
    8294              :                 {
    8295          329 :                 case INTEGER_CST:
    8296          329 :                   {
    8297          329 :                     switch (TREE_CODE (_q21))
    8298              :                       {
    8299          305 :                       case INTEGER_CST:
    8300          305 :                         {
    8301          305 :                           switch (TREE_CODE (_p1))
    8302              :                             {
    8303          280 :                             case INTEGER_CST:
    8304          280 :                               {
    8305          280 :                                 {
    8306          280 :                                   tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
    8307          280 :                                   tree res = generic_simplify_254 (loc, type, _p0, _p1, captures, NE_EXPR);
    8308          280 :                                   if (res) return res;
    8309              :                                 }
    8310           14 :                                 break;
    8311              :                               }
    8312              :                             default:;
    8313              :                             }
    8314              :                           break;
    8315              :                         }
    8316              :                       default:;
    8317              :                       }
    8318              :                     break;
    8319              :                   }
    8320              :                 default:;
    8321              :                 }
    8322              :               break;
    8323              :             }
    8324         7461 :           case PLUS_EXPR:
    8325         7461 :             {
    8326         7461 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8327         7461 :               tree _q31 = TREE_OPERAND (_q20, 1);
    8328         7461 :               switch (TREE_CODE (_q31))
    8329              :                 {
    8330         6248 :                 case INTEGER_CST:
    8331         6248 :                   {
    8332         6248 :                     switch (TREE_CODE (_q21))
    8333              :                       {
    8334          137 :                       case INTEGER_CST:
    8335          137 :                         {
    8336          137 :                           switch (TREE_CODE (_p1))
    8337              :                             {
    8338          137 :                             case INTEGER_CST:
    8339          137 :                               {
    8340          137 :                                 {
    8341          137 :                                   tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
    8342          137 :                                   tree res = generic_simplify_255 (loc, type, _p0, _p1, captures, NE_EXPR);
    8343          137 :                                   if (res) return res;
    8344              :                                 }
    8345          111 :                                 break;
    8346              :                               }
    8347              :                             default:;
    8348              :                             }
    8349              :                           break;
    8350              :                         }
    8351              :                       default:;
    8352              :                       }
    8353              :                     break;
    8354              :                   }
    8355              :                 default:;
    8356              :                 }
    8357              :               break;
    8358              :             }
    8359      1320558 :           default:;
    8360              :           }
    8361      1320558 :       {
    8362      1320558 :         tree _q20_pops[1];
    8363      1320558 :         if (tree_nop_convert (_q20, _q20_pops))
    8364              :           {
    8365       143067 :             tree _q30 = _q20_pops[0];
    8366       143067 :             switch (TREE_CODE (_q30))
    8367              :               {
    8368        37198 :               case LSHIFT_EXPR:
    8369        37198 :                 {
    8370        37198 :                   tree _q40 = TREE_OPERAND (_q30, 0);
    8371        37198 :                   tree _q41 = TREE_OPERAND (_q30, 1);
    8372        37198 :                   if (integer_onep (_q40))
    8373              :                     {
    8374        37198 :                       if (integer_pow2p (_q21))
    8375              :                         {
    8376            8 :                           if (integer_zerop (_p1))
    8377              :                             {
    8378            8 :                               {
    8379            8 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q41, _q21 };
    8380            8 :                                 tree res = generic_simplify_252 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
    8381            8 :                                 if (res) return res;
    8382              :                               }
    8383              :                             }
    8384              :                         }
    8385              :                     }
    8386              :                   break;
    8387              :                 }
    8388              :               default:;
    8389              :               }
    8390              :           }
    8391              :       }
    8392      1320558 :         break;
    8393              :       }
    8394         5103 :     case LSHIFT_EXPR:
    8395         5103 :       {
    8396         5103 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8397         5103 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8398         5103 :         switch (TREE_CODE (_q20))
    8399              :           {
    8400          534 :           case INTEGER_CST:
    8401          534 :             {
    8402          534 :               switch (TREE_CODE (_p1))
    8403              :                 {
    8404          159 :                 case INTEGER_CST:
    8405          159 :                   {
    8406          159 :                     {
    8407          159 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    8408          159 :                       tree res = generic_simplify_256 (loc, type, _p0, _p1, captures, NE_EXPR);
    8409          159 :                       if (res) return res;
    8410              :                     }
    8411           88 :                     break;
    8412              :                   }
    8413              :                 default:;
    8414              :                 }
    8415              :               break;
    8416              :             }
    8417              :           default:;
    8418              :           }
    8419              :         break;
    8420              :       }
    8421          393 :     case LROTATE_EXPR:
    8422          393 :       {
    8423          393 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8424          393 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8425          393 :         switch (TREE_CODE (_p1))
    8426              :           {
    8427            0 :           case LROTATE_EXPR:
    8428            0 :             {
    8429            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    8430            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    8431            0 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    8432              :                 {
    8433            0 :                   {
    8434            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    8435            0 :                     tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, LROTATE_EXPR, RROTATE_EXPR, NE_EXPR);
    8436            0 :                     if (res) return res;
    8437              :                   }
    8438              :                 }
    8439              :               break;
    8440              :             }
    8441          393 :           default:;
    8442              :           }
    8443          393 :         switch (TREE_CODE (_q21))
    8444              :           {
    8445          112 :           case INTEGER_CST:
    8446          112 :             {
    8447          112 :               switch (TREE_CODE (_p1))
    8448              :                 {
    8449          112 :                 case INTEGER_CST:
    8450          112 :                   {
    8451          112 :                     {
    8452          112 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    8453          112 :                       tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, LROTATE_EXPR, RROTATE_EXPR, NE_EXPR);
    8454          112 :                       if (res) return res;
    8455              :                     }
    8456            0 :                     break;
    8457              :                   }
    8458              :                 default:;
    8459              :                 }
    8460              :               break;
    8461              :             }
    8462          281 :           default:;
    8463              :           }
    8464          281 :         switch (TREE_CODE (_p1))
    8465              :           {
    8466          193 :           case INTEGER_CST:
    8467          193 :             {
    8468          193 :               {
    8469          193 :                 tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    8470          193 :                 tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, LROTATE_EXPR, RROTATE_EXPR, NE_EXPR);
    8471          193 :                 if (res) return res;
    8472              :               }
    8473          193 :               break;
    8474              :             }
    8475              :           default:;
    8476              :           }
    8477              :         break;
    8478              :       }
    8479          439 :     case RROTATE_EXPR:
    8480          439 :       {
    8481          439 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8482          439 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8483          439 :         switch (TREE_CODE (_p1))
    8484              :           {
    8485            0 :           case RROTATE_EXPR:
    8486            0 :             {
    8487            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    8488            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    8489            0 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    8490              :                 {
    8491            0 :                   {
    8492            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    8493            0 :                     tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, RROTATE_EXPR, LROTATE_EXPR, NE_EXPR);
    8494            0 :                     if (res) return res;
    8495              :                   }
    8496              :                 }
    8497              :               break;
    8498              :             }
    8499          439 :           default:;
    8500              :           }
    8501          439 :         switch (TREE_CODE (_q21))
    8502              :           {
    8503          233 :           case INTEGER_CST:
    8504          233 :             {
    8505          233 :               switch (TREE_CODE (_p1))
    8506              :                 {
    8507           12 :                 case INTEGER_CST:
    8508           12 :                   {
    8509           12 :                     {
    8510           12 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    8511           12 :                       tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, RROTATE_EXPR, LROTATE_EXPR, NE_EXPR);
    8512           12 :                       if (res) return res;
    8513              :                     }
    8514            0 :                     break;
    8515              :                   }
    8516              :                 default:;
    8517              :                 }
    8518              :               break;
    8519              :             }
    8520          427 :           default:;
    8521              :           }
    8522          427 :         switch (TREE_CODE (_p1))
    8523              :           {
    8524          190 :           case INTEGER_CST:
    8525          190 :             {
    8526          190 :               {
    8527          190 :                 tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    8528          190 :                 tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, RROTATE_EXPR, LROTATE_EXPR, NE_EXPR);
    8529          190 :                 if (res) return res;
    8530              :               }
    8531          190 :               break;
    8532              :             }
    8533              :           default:;
    8534              :           }
    8535              :         break;
    8536              :       }
    8537       110297 :     case MULT_EXPR:
    8538       110297 :       {
    8539       110297 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8540       110297 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8541       110297 :         switch (TREE_CODE (_q20))
    8542              :           {
    8543            9 :           case TRUNC_DIV_EXPR:
    8544            9 :             {
    8545            9 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8546            9 :               tree _q31 = TREE_OPERAND (_q20, 1);
    8547            9 :               if ((_q21 == _q31 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q31, 0) && types_match (_q21, _q31)))
    8548              :                 {
    8549            9 :                   if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    8550              :                     {
    8551            9 :                       {
    8552            9 :                         tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
    8553            9 :                         tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, NE_EXPR);
    8554            9 :                         if (res) return res;
    8555              :                       }
    8556              :                     }
    8557              :                 }
    8558              :               break;
    8559              :             }
    8560       110288 :           default:;
    8561              :           }
    8562       110288 :         switch (TREE_CODE (_q21))
    8563              :           {
    8564            0 :           case TRUNC_DIV_EXPR:
    8565            0 :             {
    8566            0 :               tree _q40 = TREE_OPERAND (_q21, 0);
    8567            0 :               tree _q41 = TREE_OPERAND (_q21, 1);
    8568            0 :               if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _q20, 0) && types_match (_q41, _q20)))
    8569              :                 {
    8570            0 :                   if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    8571              :                     {
    8572            0 :                       {
    8573            0 :                         tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q40, _q20 };
    8574            0 :                         tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, NE_EXPR);
    8575            0 :                         if (res) return res;
    8576              :                       }
    8577              :                     }
    8578              :                 }
    8579              :               break;
    8580              :             }
    8581              :           default:;
    8582              :           }
    8583              :         break;
    8584              :       }
    8585     39108706 :     default:;
    8586              :     }
    8587     39108706 :   switch (TREE_CODE (_p1))
    8588              :     {
    8589        12096 :     case MULT_EXPR:
    8590        12096 :       {
    8591        12096 :         tree _q30 = TREE_OPERAND (_p1, 0);
    8592        12096 :         tree _q31 = TREE_OPERAND (_p1, 1);
    8593        12096 :         switch (TREE_CODE (_q30))
    8594              :           {
    8595            2 :           case TRUNC_DIV_EXPR:
    8596            2 :             {
    8597            2 :               tree _q40 = TREE_OPERAND (_q30, 0);
    8598            2 :               tree _q41 = TREE_OPERAND (_q30, 1);
    8599            2 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    8600              :                 {
    8601            0 :                   if ((_q31 == _q41 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _q41, 0) && types_match (_q31, _q41)))
    8602              :                     {
    8603            0 :                       {
    8604            0 :                         tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _q41 };
    8605            0 :                         tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, NE_EXPR);
    8606            0 :                         if (res) return res;
    8607              :                       }
    8608              :                     }
    8609              :                 }
    8610              :               break;
    8611              :             }
    8612        12096 :           default:;
    8613              :           }
    8614        12096 :         switch (TREE_CODE (_q31))
    8615              :           {
    8616            0 :           case TRUNC_DIV_EXPR:
    8617            0 :             {
    8618            0 :               tree _q50 = TREE_OPERAND (_q31, 0);
    8619            0 :               tree _q51 = TREE_OPERAND (_q31, 1);
    8620            0 :               if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    8621              :                 {
    8622            0 :                   if ((_q51 == _q30 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q30, 0) && types_match (_q51, _q30)))
    8623              :                     {
    8624            0 :                       {
    8625            0 :                         tree captures[3] ATTRIBUTE_UNUSED = { _q31, _p0, _q30 };
    8626            0 :                         tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, NE_EXPR);
    8627            0 :                         if (res) return res;
    8628              :                       }
    8629              :                     }
    8630              :                 }
    8631              :               break;
    8632              :             }
    8633              :           default:;
    8634              :           }
    8635              :         break;
    8636              :       }
    8637     39108706 :     default:;
    8638              :     }
    8639     39108706 :   switch (TREE_CODE (_p0))
    8640              :     {
    8641          352 :     case VEC_COND_EXPR:
    8642          352 :       {
    8643          352 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8644          352 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8645          352 :         tree _q22 = TREE_OPERAND (_p0, 2);
    8646          352 :         switch (TREE_CODE (_p1))
    8647              :           {
    8648           16 :           case VEC_COND_EXPR:
    8649           16 :             {
    8650           16 :               tree _q60 = TREE_OPERAND (_p1, 0);
    8651           16 :               tree _q61 = TREE_OPERAND (_p1, 1);
    8652           16 :               tree _q62 = TREE_OPERAND (_p1, 2);
    8653           16 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    8654              :                 {
    8655            0 :                   {
    8656            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
    8657            0 :                     if (VECTOR_TYPE_P (type)
    8658            0 :  && (TREE_CODE_CLASS (NE_EXPR) != tcc_comparison
    8659            0 :  || types_match (type, TREE_TYPE (captures[2]))
    8660            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    8661              :  || (optimize_vectors_before_lowering_p ()
    8662            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    8663              : )
    8664              :                       {
    8665            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1636;
    8666            0 :                         {
    8667            0 :                           tree res_op0;
    8668            0 :                           res_op0 = captures[1];
    8669            0 :                           tree res_op1;
    8670            0 :                           {
    8671            0 :                             tree _o1[2], _r1;
    8672            0 :                             _o1[0] = captures[2];
    8673            0 :                             _o1[1] = captures[5];
    8674            0 :                             _r1 = fold_build2_loc (loc, NE_EXPR, type, _o1[0], _o1[1]);
    8675            0 :                             if (EXPR_P (_r1))
    8676            0 :                               goto next_after_fail1636;
    8677            0 :                             res_op1 = _r1;
    8678              :                           }
    8679            0 :                           tree res_op2;
    8680            0 :                           {
    8681            0 :                             tree _o1[2], _r1;
    8682            0 :                             _o1[0] = captures[3];
    8683            0 :                             _o1[1] = captures[6];
    8684            0 :                             _r1 = fold_build2_loc (loc, NE_EXPR, type, _o1[0], _o1[1]);
    8685            0 :                             if (EXPR_P (_r1))
    8686            0 :                               goto next_after_fail1636;
    8687            0 :                             res_op2 = _r1;
    8688              :                           }
    8689            0 :                           tree _r;
    8690            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    8691            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 938, __FILE__, __LINE__, true);
    8692              :                           return _r;
    8693              :                         }
    8694          352 : next_after_fail1636:;
    8695              :                       }
    8696              :                   }
    8697              :                 }
    8698              :               break;
    8699              :             }
    8700          352 :           default:;
    8701              :           }
    8702          352 :         {
    8703          352 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
    8704          352 :           if (VECTOR_TYPE_P (type)
    8705          702 :  && (TREE_CODE_CLASS (NE_EXPR) != tcc_comparison
    8706          350 :  || types_match (type, TREE_TYPE (captures[2]))
    8707          350 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    8708              :  || (optimize_vectors_before_lowering_p ()
    8709           27 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    8710              : )
    8711              :             {
    8712          350 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1637;
    8713          350 :               {
    8714          350 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1637;
    8715           88 :                 tree res_op0;
    8716           88 :                 res_op0 = captures[1];
    8717           88 :                 tree res_op1;
    8718           88 :                 {
    8719           88 :                   tree _o1[2], _r1;
    8720           88 :                   _o1[0] = captures[2];
    8721           88 :                   _o1[1] = unshare_expr (captures[4]);
    8722           88 :                   _r1 = fold_build2_loc (loc, NE_EXPR, type, _o1[0], _o1[1]);
    8723           88 :                   if (EXPR_P (_r1))
    8724           16 :                     goto next_after_fail1637;
    8725           72 :                   res_op1 = _r1;
    8726              :                 }
    8727           72 :                 tree res_op2;
    8728           72 :                 {
    8729           72 :                   tree _o1[2], _r1;
    8730           72 :                   _o1[0] = captures[3];
    8731           72 :                   _o1[1] = captures[4];
    8732           72 :                   _r1 = fold_build2_loc (loc, NE_EXPR, type, _o1[0], _o1[1]);
    8733           72 :                   if (EXPR_P (_r1))
    8734            0 :                     goto next_after_fail1637;
    8735           72 :                   res_op2 = _r1;
    8736              :                 }
    8737           72 :                 tree _r;
    8738           72 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    8739           72 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 940, __FILE__, __LINE__, true);
    8740              :                 return _r;
    8741              :               }
    8742     39108627 : next_after_fail1637:;
    8743              :             }
    8744              :         }
    8745              :         break;
    8746              :       }
    8747      2508972 :     case CALL_EXPR:
    8748      2508972 :       switch (get_call_combined_fn (_p0))
    8749              :         {
    8750            0 :         case CFN_BUILT_IN_BITREVERSE128:
    8751            0 :           if (call_expr_nargs (_p0) == 1)
    8752              :     {
    8753            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8754            0 :               switch (TREE_CODE (_p1))
    8755              :                 {
    8756            0 :                 case INTEGER_CST:
    8757            0 :                   {
    8758            0 :                     {
    8759            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    8760            0 :                       tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BITREVERSE128);
    8761            0 :                       if (res) return res;
    8762              :                     }
    8763            0 :                     break;
    8764              :                   }
    8765            0 :                 case CALL_EXPR:
    8766            0 :                   switch (get_call_combined_fn (_p1))
    8767              :                     {
    8768            0 :                     case CFN_BUILT_IN_BITREVERSE128:
    8769            0 :                       if (call_expr_nargs (_p1) == 1)
    8770              :     {
    8771            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    8772            0 :                           {
    8773            0 :                             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
    8774            0 :                             tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BITREVERSE128);
    8775            0 :                             if (res) return res;
    8776              :                           }
    8777              :                         }
    8778              :                       break;
    8779              :                     default:;
    8780              :                     }
    8781              :                   break;
    8782              :                 default:;
    8783              :                 }
    8784              :             }
    8785              :           break;
    8786            0 :         case CFN_BUILT_IN_BITREVERSE16:
    8787            0 :           if (call_expr_nargs (_p0) == 1)
    8788              :     {
    8789            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8790            0 :               switch (TREE_CODE (_p1))
    8791              :                 {
    8792            0 :                 case INTEGER_CST:
    8793            0 :                   {
    8794            0 :                     {
    8795            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    8796            0 :                       tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BITREVERSE16);
    8797            0 :                       if (res) return res;
    8798              :                     }
    8799            0 :                     break;
    8800              :                   }
    8801            0 :                 case CALL_EXPR:
    8802            0 :                   switch (get_call_combined_fn (_p1))
    8803              :                     {
    8804            0 :                     case CFN_BUILT_IN_BITREVERSE16:
    8805            0 :                       if (call_expr_nargs (_p1) == 1)
    8806              :     {
    8807            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    8808            0 :                           {
    8809            0 :                             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
    8810            0 :                             tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BITREVERSE16);
    8811            0 :                             if (res) return res;
    8812              :                           }
    8813              :                         }
    8814              :                       break;
    8815              :                     default:;
    8816              :                     }
    8817              :                   break;
    8818              :                 default:;
    8819              :                 }
    8820              :             }
    8821              :           break;
    8822            0 :         case CFN_BUILT_IN_BITREVERSE32:
    8823            0 :           if (call_expr_nargs (_p0) == 1)
    8824              :     {
    8825            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8826            0 :               switch (TREE_CODE (_p1))
    8827              :                 {
    8828            0 :                 case INTEGER_CST:
    8829            0 :                   {
    8830            0 :                     {
    8831            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    8832            0 :                       tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BITREVERSE32);
    8833            0 :                       if (res) return res;
    8834              :                     }
    8835            0 :                     break;
    8836              :                   }
    8837            0 :                 case CALL_EXPR:
    8838            0 :                   switch (get_call_combined_fn (_p1))
    8839              :                     {
    8840            0 :                     case CFN_BUILT_IN_BITREVERSE32:
    8841            0 :                       if (call_expr_nargs (_p1) == 1)
    8842              :     {
    8843            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    8844            0 :                           {
    8845            0 :                             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
    8846            0 :                             tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BITREVERSE32);
    8847            0 :                             if (res) return res;
    8848              :                           }
    8849              :                         }
    8850              :                       break;
    8851              :                     default:;
    8852              :                     }
    8853              :                   break;
    8854              :                 default:;
    8855              :                 }
    8856              :             }
    8857              :           break;
    8858            0 :         case CFN_BUILT_IN_BITREVERSE64:
    8859            0 :           if (call_expr_nargs (_p0) == 1)
    8860              :     {
    8861            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8862            0 :               switch (TREE_CODE (_p1))
    8863              :                 {
    8864            0 :                 case INTEGER_CST:
    8865            0 :                   {
    8866            0 :                     {
    8867            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    8868            0 :                       tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BITREVERSE64);
    8869            0 :                       if (res) return res;
    8870              :                     }
    8871            0 :                     break;
    8872              :                   }
    8873            0 :                 case CALL_EXPR:
    8874            0 :                   switch (get_call_combined_fn (_p1))
    8875              :                     {
    8876            0 :                     case CFN_BUILT_IN_BITREVERSE64:
    8877            0 :                       if (call_expr_nargs (_p1) == 1)
    8878              :     {
    8879            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    8880            0 :                           {
    8881            0 :                             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
    8882            0 :                             tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BITREVERSE64);
    8883            0 :                             if (res) return res;
    8884              :                           }
    8885              :                         }
    8886              :                       break;
    8887              :                     default:;
    8888              :                     }
    8889              :                   break;
    8890              :                 default:;
    8891              :                 }
    8892              :             }
    8893              :           break;
    8894            0 :         case CFN_BITREVERSE:
    8895            0 :           if (call_expr_nargs (_p0) == 1)
    8896              :     {
    8897            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8898            0 :               switch (TREE_CODE (_p1))
    8899              :                 {
    8900            0 :                 case INTEGER_CST:
    8901            0 :                   {
    8902            0 :                     {
    8903            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    8904            0 :                       tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BITREVERSE);
    8905            0 :                       if (res) return res;
    8906              :                     }
    8907            0 :                     break;
    8908              :                   }
    8909            0 :                 case CALL_EXPR:
    8910            0 :                   switch (get_call_combined_fn (_p1))
    8911              :                     {
    8912            0 :                     case CFN_BITREVERSE:
    8913            0 :                       if (call_expr_nargs (_p1) == 1)
    8914              :     {
    8915            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    8916            0 :                           {
    8917            0 :                             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
    8918            0 :                             tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BITREVERSE);
    8919            0 :                             if (res) return res;
    8920              :                           }
    8921              :                         }
    8922              :                       break;
    8923              :                     default:;
    8924              :                     }
    8925              :                   break;
    8926              :                 default:;
    8927              :                 }
    8928              :             }
    8929              :           break;
    8930            0 :         case CFN_BSWAP:
    8931            0 :           if (call_expr_nargs (_p0) == 1)
    8932              :     {
    8933            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8934            0 :               switch (TREE_CODE (_p1))
    8935              :                 {
    8936            0 :                 case INTEGER_CST:
    8937            0 :                   {
    8938            0 :                     {
    8939            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    8940            0 :                       tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BSWAP);
    8941            0 :                       if (res) return res;
    8942              :                     }
    8943            0 :                     break;
    8944              :                   }
    8945            0 :                 case CALL_EXPR:
    8946            0 :                   switch (get_call_combined_fn (_p1))
    8947              :                     {
    8948            0 :                     case CFN_BSWAP:
    8949            0 :                       if (call_expr_nargs (_p1) == 1)
    8950              :     {
    8951            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    8952            0 :                           {
    8953            0 :                             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
    8954            0 :                             tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BSWAP);
    8955            0 :                             if (res) return res;
    8956              :                           }
    8957              :                         }
    8958              :                       break;
    8959              :                     default:;
    8960              :                     }
    8961              :                   break;
    8962              :                 default:;
    8963              :                 }
    8964              :             }
    8965              :           break;
    8966            2 :         case CFN_BUILT_IN_BSWAP128:
    8967            2 :           if (call_expr_nargs (_p0) == 1)
    8968              :     {
    8969            2 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8970            2 :               switch (TREE_CODE (_p1))
    8971              :                 {
    8972            0 :                 case INTEGER_CST:
    8973            0 :                   {
    8974            0 :                     {
    8975            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    8976            0 :                       tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BSWAP128);
    8977            0 :                       if (res) return res;
    8978              :                     }
    8979            0 :                     break;
    8980              :                   }
    8981            1 :                 case CALL_EXPR:
    8982            1 :                   switch (get_call_combined_fn (_p1))
    8983              :                     {
    8984            0 :                     case CFN_BUILT_IN_BSWAP128:
    8985            0 :                       if (call_expr_nargs (_p1) == 1)
    8986              :     {
    8987            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    8988            0 :                           {
    8989            0 :                             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
    8990            0 :                             tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BSWAP128);
    8991            0 :                             if (res) return res;
    8992              :                           }
    8993              :                         }
    8994              :                       break;
    8995              :                     default:;
    8996              :                     }
    8997              :                   break;
    8998              :                 default:;
    8999              :                 }
    9000              :             }
    9001              :           break;
    9002            0 :         case CFN_BUILT_IN_BITREVERSE8:
    9003            0 :           if (call_expr_nargs (_p0) == 1)
    9004              :     {
    9005            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9006            0 :               switch (TREE_CODE (_p1))
    9007              :                 {
    9008            0 :                 case INTEGER_CST:
    9009            0 :                   {
    9010            0 :                     {
    9011            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    9012            0 :                       tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BITREVERSE8);
    9013            0 :                       if (res) return res;
    9014              :                     }
    9015            0 :                     break;
    9016              :                   }
    9017            0 :                 case CALL_EXPR:
    9018            0 :                   switch (get_call_combined_fn (_p1))
    9019              :                     {
    9020            0 :                     case CFN_BUILT_IN_BITREVERSE8:
    9021            0 :                       if (call_expr_nargs (_p1) == 1)
    9022              :     {
    9023            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9024            0 :                           {
    9025            0 :                             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
    9026            0 :                             tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BITREVERSE8);
    9027            0 :                             if (res) return res;
    9028              :                           }
    9029              :                         }
    9030              :                       break;
    9031              :                     default:;
    9032              :                     }
    9033              :                   break;
    9034              :                 default:;
    9035              :                 }
    9036              :             }
    9037              :           break;
    9038           11 :         case CFN_BUILT_IN_BSWAP16:
    9039           11 :           if (call_expr_nargs (_p0) == 1)
    9040              :     {
    9041           11 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9042           11 :               switch (TREE_CODE (_p1))
    9043              :                 {
    9044            9 :                 case INTEGER_CST:
    9045            9 :                   {
    9046            9 :                     {
    9047            9 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    9048            9 :                       tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BSWAP16);
    9049            9 :                       if (res) return res;
    9050              :                     }
    9051            9 :                     break;
    9052              :                   }
    9053            1 :                 case CALL_EXPR:
    9054            1 :                   switch (get_call_combined_fn (_p1))
    9055              :                     {
    9056            1 :                     case CFN_BUILT_IN_BSWAP16:
    9057            1 :                       if (call_expr_nargs (_p1) == 1)
    9058              :     {
    9059            1 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9060            1 :                           {
    9061            1 :                             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
    9062            1 :                             tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BSWAP16);
    9063            1 :                             if (res) return res;
    9064              :                           }
    9065              :                         }
    9066              :                       break;
    9067              :                     default:;
    9068              :                     }
    9069              :                   break;
    9070              :                 default:;
    9071              :                 }
    9072              :             }
    9073              :           break;
    9074            7 :         case CFN_BUILT_IN_BSWAP32:
    9075            7 :           if (call_expr_nargs (_p0) == 1)
    9076              :     {
    9077            7 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9078            7 :               switch (TREE_CODE (_p1))
    9079              :                 {
    9080            3 :                 case INTEGER_CST:
    9081            3 :                   {
    9082            3 :                     {
    9083            3 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    9084            3 :                       tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BSWAP32);
    9085            3 :                       if (res) return res;
    9086              :                     }
    9087            3 :                     break;
    9088              :                   }
    9089            3 :                 case CALL_EXPR:
    9090            3 :                   switch (get_call_combined_fn (_p1))
    9091              :                     {
    9092            3 :                     case CFN_BUILT_IN_BSWAP32:
    9093            3 :                       if (call_expr_nargs (_p1) == 1)
    9094              :     {
    9095            3 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9096            3 :                           {
    9097            3 :                             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
    9098            3 :                             tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BSWAP32);
    9099            3 :                             if (res) return res;
    9100              :                           }
    9101              :                         }
    9102              :                       break;
    9103              :                     default:;
    9104              :                     }
    9105              :                   break;
    9106              :                 default:;
    9107              :                 }
    9108              :             }
    9109              :           break;
    9110            7 :         case CFN_BUILT_IN_BSWAP64:
    9111            7 :           if (call_expr_nargs (_p0) == 1)
    9112              :     {
    9113            7 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9114            7 :               switch (TREE_CODE (_p1))
    9115              :                 {
    9116            3 :                 case INTEGER_CST:
    9117            3 :                   {
    9118            3 :                     {
    9119            3 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    9120            3 :                       tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BSWAP64);
    9121            3 :                       if (res) return res;
    9122              :                     }
    9123            3 :                     break;
    9124              :                   }
    9125            3 :                 case CALL_EXPR:
    9126            3 :                   switch (get_call_combined_fn (_p1))
    9127              :                     {
    9128            3 :                     case CFN_BUILT_IN_BSWAP64:
    9129            3 :                       if (call_expr_nargs (_p1) == 1)
    9130              :     {
    9131            3 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9132            3 :                           {
    9133            3 :                             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
    9134            3 :                             tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_BSWAP64);
    9135            3 :                             if (res) return res;
    9136              :                           }
    9137              :                         }
    9138              :                       break;
    9139              :                     default:;
    9140              :                     }
    9141              :                   break;
    9142              :                 default:;
    9143              :                 }
    9144              :             }
    9145              :           break;
    9146              :         default:;
    9147              :         }
    9148              :       break;
    9149     39108627 :     default:;
    9150              :     }
    9151     39108627 :   switch (TREE_CODE (_p1))
    9152              :     {
    9153           40 :     case VEC_COND_EXPR:
    9154           40 :       {
    9155           40 :         tree _q30 = TREE_OPERAND (_p1, 0);
    9156           40 :         tree _q31 = TREE_OPERAND (_p1, 1);
    9157           40 :         tree _q32 = TREE_OPERAND (_p1, 2);
    9158           40 :         {
    9159           40 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
    9160           40 :           if (VECTOR_TYPE_P (type)
    9161           80 :  && (TREE_CODE_CLASS (NE_EXPR) != tcc_comparison
    9162           40 :  || types_match (type, TREE_TYPE (captures[3]))
    9163           40 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
    9164              :  || (optimize_vectors_before_lowering_p ()
    9165            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
    9166              : )
    9167              :             {
    9168           40 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1638;
    9169           40 :               {
    9170           40 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1638;
    9171            0 :                 tree res_op0;
    9172            0 :                 res_op0 = captures[2];
    9173            0 :                 tree res_op1;
    9174            0 :                 {
    9175            0 :                   tree _o1[2], _r1;
    9176            0 :                   _o1[0] = unshare_expr (captures[0]);
    9177            0 :                   _o1[1] = captures[3];
    9178            0 :                   _r1 = fold_build2_loc (loc, NE_EXPR, type, _o1[0], _o1[1]);
    9179            0 :                   if (EXPR_P (_r1))
    9180            0 :                     goto next_after_fail1638;
    9181            0 :                   res_op1 = _r1;
    9182              :                 }
    9183            0 :                 tree res_op2;
    9184            0 :                 {
    9185            0 :                   tree _o1[2], _r1;
    9186            0 :                   _o1[0] = captures[0];
    9187            0 :                   _o1[1] = captures[4];
    9188            0 :                   _r1 = fold_build2_loc (loc, NE_EXPR, type, _o1[0], _o1[1]);
    9189            0 :                   if (EXPR_P (_r1))
    9190            0 :                     goto next_after_fail1638;
    9191            0 :                   res_op2 = _r1;
    9192              :                 }
    9193            0 :                 tree _r;
    9194            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    9195            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 941, __FILE__, __LINE__, true);
    9196              :                 return _r;
    9197              :               }
    9198     39108627 : next_after_fail1638:;
    9199              :             }
    9200              :         }
    9201              :         break;
    9202              :       }
    9203     39108627 :     default:;
    9204              :     }
    9205     39108627 :   switch (TREE_CODE (_p0))
    9206              :     {
    9207        98134 :     case COND_EXPR:
    9208        98134 :       {
    9209        98134 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9210        98134 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9211        98134 :         tree _q22 = TREE_OPERAND (_p0, 2);
    9212        98134 :         switch (TREE_CODE (_p1))
    9213              :           {
    9214          276 :           case COND_EXPR:
    9215          276 :             {
    9216          276 :               tree _q60 = TREE_OPERAND (_p1, 0);
    9217          276 :               tree _q61 = TREE_OPERAND (_p1, 1);
    9218          276 :               tree _q62 = TREE_OPERAND (_p1, 2);
    9219          276 :               if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
    9220              :                 {
    9221           72 :                   if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
    9222              :                     {
    9223           72 :                       {
    9224           72 :                         tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
    9225           72 :                         const enum tree_code eqne = NE_EXPR;
    9226           72 :                         if (!HONOR_NANS (captures[1])
    9227           56 :  && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[3]))
    9228           49 :  && types_match (type, TREE_TYPE (captures[0]))
    9229           49 :  && expr_no_side_effects_p (captures[1])
    9230          114 :  && expr_no_side_effects_p (captures[2])
    9231              : )
    9232              :                           {
    9233           42 :                             if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1639;
    9234           42 :                             if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1639;
    9235           42 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1639;
    9236           42 :                             {
    9237           42 :                               tree res_op0;
    9238           42 :                               {
    9239           42 :                                 tree _o1[2], _r1;
    9240           42 :                                 {
    9241           42 :                                   tree _o2[2], _r2;
    9242           42 :                                   _o2[0] = captures[0];
    9243           42 :                                   _o2[1] = captures[3];
    9244           42 :                                   _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    9245           42 :                                   _o1[0] = _r2;
    9246              :                                 }
    9247           42 :                                 {
    9248           42 :                                   tree _o2[2], _r2;
    9249           42 :                                   _o2[0] = captures[1];
    9250           42 :                                   _o2[1] = captures[2];
    9251           42 :                                   _r2 = fold_build2_loc (loc, NE_EXPR, type, _o2[0], _o2[1]);
    9252           42 :                                   _o1[1] = _r2;
    9253              :                                 }
    9254           42 :                                 _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9255           42 :                                 res_op0 = _r1;
    9256              :                               }
    9257           42 :                               tree res_op1;
    9258           42 :                               res_op1 =  constant_boolean_node (eqne == NE_EXPR, type);
    9259           42 :                               tree res_op2;
    9260           42 :                               res_op2 =  constant_boolean_node (eqne != NE_EXPR, type);
    9261           42 :                               tree _r;
    9262           42 :                               _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
    9263           42 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1024, __FILE__, __LINE__, true);
    9264              :                               return _r;
    9265              :                             }
    9266          234 : next_after_fail1639:;
    9267              :                           }
    9268              :                       }
    9269              :                     }
    9270              :                 }
    9271          234 :               if ((_q61 == _q22 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q22, 0) && types_match (_q61, _q22)))
    9272              :                 {
    9273            0 :                   if ((_q62 == _q21 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q21, 0) && types_match (_q62, _q21)))
    9274              :                     {
    9275            0 :                       {
    9276            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
    9277            0 :                         const enum tree_code eqne = NE_EXPR;
    9278            0 :                         if (!HONOR_NANS (captures[1])
    9279            0 :  && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[3]))
    9280            0 :  && types_match (type, TREE_TYPE (captures[0]))
    9281            0 :  && expr_no_side_effects_p (captures[1])
    9282            0 :  && expr_no_side_effects_p (captures[2])
    9283              : )
    9284              :                           {
    9285            0 :                             if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1640;
    9286            0 :                             if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1640;
    9287            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1640;
    9288            0 :                             {
    9289            0 :                               tree res_op0;
    9290            0 :                               {
    9291            0 :                                 tree _o1[2], _r1;
    9292            0 :                                 {
    9293            0 :                                   tree _o2[2], _r2;
    9294            0 :                                   _o2[0] = captures[0];
    9295            0 :                                   _o2[1] = captures[3];
    9296            0 :                                   _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    9297            0 :                                   _o1[0] = _r2;
    9298              :                                 }
    9299            0 :                                 {
    9300            0 :                                   tree _o2[2], _r2;
    9301            0 :                                   _o2[0] = captures[1];
    9302            0 :                                   _o2[1] = captures[2];
    9303            0 :                                   _r2 = fold_build2_loc (loc, EQ_EXPR, type, _o2[0], _o2[1]);
    9304            0 :                                   _o1[1] = _r2;
    9305              :                                 }
    9306            0 :                                 _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9307            0 :                                 res_op0 = _r1;
    9308              :                               }
    9309            0 :                               tree res_op1;
    9310            0 :                               res_op1 =  constant_boolean_node (eqne != NE_EXPR, type);
    9311            0 :                               tree res_op2;
    9312            0 :                               res_op2 =  constant_boolean_node (eqne == NE_EXPR, type);
    9313            0 :                               tree _r;
    9314            0 :                               _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
    9315            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1025, __FILE__, __LINE__, true);
    9316              :                               return _r;
    9317              :                             }
    9318     38971003 : next_after_fail1640:;
    9319              :                           }
    9320              :                       }
    9321              :                     }
    9322              :                 }
    9323              :               break;
    9324              :             }
    9325              :           default:;
    9326              :           }
    9327              :         break;
    9328              :       }
    9329          280 :     case VEC_COND_EXPR:
    9330          280 :       {
    9331          280 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9332          280 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9333          280 :         tree _q22 = TREE_OPERAND (_p0, 2);
    9334          280 :         switch (TREE_CODE (_p1))
    9335              :           {
    9336           16 :           case VEC_COND_EXPR:
    9337           16 :             {
    9338           16 :               tree _q60 = TREE_OPERAND (_p1, 0);
    9339           16 :               tree _q61 = TREE_OPERAND (_p1, 1);
    9340           16 :               tree _q62 = TREE_OPERAND (_p1, 2);
    9341           16 :               if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
    9342              :                 {
    9343            0 :                   if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
    9344              :                     {
    9345            0 :                       {
    9346            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
    9347            0 :                         const enum tree_code eqne = NE_EXPR;
    9348            0 :                         if (!HONOR_NANS (captures[1])
    9349            0 :  && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[3]))
    9350            0 :  && types_match (type, TREE_TYPE (captures[0]))
    9351            0 :  && expr_no_side_effects_p (captures[1])
    9352            0 :  && expr_no_side_effects_p (captures[2])
    9353              : )
    9354              :                           {
    9355            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1641;
    9356            0 :                             {
    9357            0 :                               tree res_op0;
    9358            0 :                               {
    9359            0 :                                 tree _o1[2], _r1;
    9360            0 :                                 {
    9361            0 :                                   tree _o2[2], _r2;
    9362            0 :                                   _o2[0] = captures[0];
    9363            0 :                                   _o2[1] = captures[3];
    9364            0 :                                   _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    9365            0 :                                   _o1[0] = _r2;
    9366              :                                 }
    9367            0 :                                 {
    9368            0 :                                   tree _o2[2], _r2;
    9369            0 :                                   _o2[0] = captures[1];
    9370            0 :                                   _o2[1] = captures[2];
    9371            0 :                                   _r2 = fold_build2_loc (loc, NE_EXPR, type, _o2[0], _o2[1]);
    9372            0 :                                   _o1[1] = _r2;
    9373              :                                 }
    9374            0 :                                 _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9375            0 :                                 res_op0 = _r1;
    9376              :                               }
    9377            0 :                               tree res_op1;
    9378            0 :                               res_op1 =  constant_boolean_node (eqne == NE_EXPR, type);
    9379            0 :                               tree res_op2;
    9380            0 :                               res_op2 =  constant_boolean_node (eqne != NE_EXPR, type);
    9381            0 :                               tree _r;
    9382            0 :                               _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    9383            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1024, __FILE__, __LINE__, true);
    9384              :                               return _r;
    9385              :                             }
    9386            0 : next_after_fail1641:;
    9387              :                           }
    9388              :                       }
    9389              :                     }
    9390              :                 }
    9391           16 :               if ((_q61 == _q22 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q22, 0) && types_match (_q61, _q22)))
    9392              :                 {
    9393           16 :                   if ((_q62 == _q21 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q21, 0) && types_match (_q62, _q21)))
    9394              :                     {
    9395           16 :                       {
    9396           16 :                         tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _q60 };
    9397           16 :                         const enum tree_code eqne = NE_EXPR;
    9398           16 :                         if (!HONOR_NANS (captures[1])
    9399            0 :  && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[3]))
    9400            0 :  && types_match (type, TREE_TYPE (captures[0]))
    9401            0 :  && expr_no_side_effects_p (captures[1])
    9402           16 :  && expr_no_side_effects_p (captures[2])
    9403              : )
    9404              :                           {
    9405            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1642;
    9406            0 :                             {
    9407            0 :                               tree res_op0;
    9408            0 :                               {
    9409            0 :                                 tree _o1[2], _r1;
    9410            0 :                                 {
    9411            0 :                                   tree _o2[2], _r2;
    9412            0 :                                   _o2[0] = captures[0];
    9413            0 :                                   _o2[1] = captures[3];
    9414            0 :                                   _r2 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    9415            0 :                                   _o1[0] = _r2;
    9416              :                                 }
    9417            0 :                                 {
    9418            0 :                                   tree _o2[2], _r2;
    9419            0 :                                   _o2[0] = captures[1];
    9420            0 :                                   _o2[1] = captures[2];
    9421            0 :                                   _r2 = fold_build2_loc (loc, EQ_EXPR, type, _o2[0], _o2[1]);
    9422            0 :                                   _o1[1] = _r2;
    9423              :                                 }
    9424            0 :                                 _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9425            0 :                                 res_op0 = _r1;
    9426              :                               }
    9427            0 :                               tree res_op1;
    9428            0 :                               res_op1 =  constant_boolean_node (eqne != NE_EXPR, type);
    9429            0 :                               tree res_op2;
    9430            0 :                               res_op2 =  constant_boolean_node (eqne == NE_EXPR, type);
    9431            0 :                               tree _r;
    9432            0 :                               _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    9433            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1025, __FILE__, __LINE__, true);
    9434              :                               return _r;
    9435              :                             }
    9436            0 : next_after_fail1642:;
    9437              :                           }
    9438              :                       }
    9439              :                     }
    9440              :                 }
    9441              :               break;
    9442              :             }
    9443              :           default:;
    9444              :           }
    9445              :         break;
    9446              :       }
    9447        18915 :     case LT_EXPR:
    9448        18915 :       {
    9449        18915 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9450        18915 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9451        18915 :         if (integer_zerop (_p1))
    9452              :           {
    9453        17172 :             {
    9454        17172 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    9455        17172 :               tree res = generic_simplify_320 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR, UNGE_EXPR);
    9456        17172 :               if (res) return res;
    9457              :             }
    9458              :           }
    9459        15955 :         if (integer_truep (_p1))
    9460              :           {
    9461          563 :             {
    9462          563 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    9463          563 :               tree res = generic_simplify_321 (loc, type, _p0, _p1, captures, LT_EXPR, GE_EXPR, UNGE_EXPR);
    9464          563 :               if (res) return res;
    9465              :             }
    9466              :           }
    9467              :         break;
    9468              :       }
    9469        12262 :     case LE_EXPR:
    9470        12262 :       {
    9471        12262 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9472        12262 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9473        12262 :         if (integer_zerop (_p1))
    9474              :           {
    9475         9510 :             {
    9476         9510 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    9477         9510 :               tree res = generic_simplify_320 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR, UNGT_EXPR);
    9478         9510 :               if (res) return res;
    9479              :             }
    9480              :           }
    9481        11471 :         if (integer_truep (_p1))
    9482              :           {
    9483          473 :             {
    9484          473 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    9485          473 :               tree res = generic_simplify_321 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR, UNGT_EXPR);
    9486          473 :               if (res) return res;
    9487              :             }
    9488              :           }
    9489              :         break;
    9490              :       }
    9491        64708 :     case EQ_EXPR:
    9492        64708 :       {
    9493        64708 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9494        64708 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9495        64708 :         if (integer_zerop (_p1))
    9496              :           {
    9497        36758 :             {
    9498        36758 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    9499        36758 :               tree res = generic_simplify_320 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR, NE_EXPR);
    9500        36758 :               if (res) return res;
    9501              :             }
    9502              :           }
    9503        63586 :         if (integer_truep (_p1))
    9504              :           {
    9505        21941 :             {
    9506        21941 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    9507        21941 :               tree res = generic_simplify_321 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR, NE_EXPR);
    9508        21941 :               if (res) return res;
    9509              :             }
    9510              :           }
    9511              :         break;
    9512              :       }
    9513        70032 :     case NE_EXPR:
    9514        70032 :       {
    9515        70032 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9516        70032 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9517        70032 :         if (integer_zerop (_p1))
    9518              :           {
    9519        57856 :             {
    9520        57856 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    9521        57856 :               tree res = generic_simplify_320 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR, EQ_EXPR);
    9522        57856 :               if (res) return res;
    9523              :             }
    9524              :           }
    9525        35029 :         if (integer_truep (_p1))
    9526              :           {
    9527          141 :             {
    9528          141 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    9529          141 :               tree res = generic_simplify_321 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR, EQ_EXPR);
    9530          141 :               if (res) return res;
    9531              :             }
    9532              :           }
    9533              :         break;
    9534              :       }
    9535         6323 :     case GE_EXPR:
    9536         6323 :       {
    9537         6323 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9538         6323 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9539         6323 :         if (integer_zerop (_p1))
    9540              :           {
    9541         4201 :             {
    9542         4201 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    9543         4201 :               tree res = generic_simplify_320 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR, UNLT_EXPR);
    9544         4201 :               if (res) return res;
    9545              :             }
    9546              :           }
    9547         5665 :         if (integer_truep (_p1))
    9548              :           {
    9549          489 :             {
    9550          489 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    9551          489 :               tree res = generic_simplify_321 (loc, type, _p0, _p1, captures, GE_EXPR, LT_EXPR, UNLT_EXPR);
    9552          489 :               if (res) return res;
    9553              :             }
    9554              :           }
    9555              :         break;
    9556              :       }
    9557        36367 :     case GT_EXPR:
    9558        36367 :       {
    9559        36367 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9560        36367 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9561        36367 :         if (integer_zerop (_p1))
    9562              :           {
    9563        34124 :             {
    9564        34124 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    9565        34124 :               tree res = generic_simplify_320 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR, UNLE_EXPR);
    9566        34124 :               if (res) return res;
    9567              :             }
    9568              :           }
    9569        30312 :         if (integer_truep (_p1))
    9570              :           {
    9571          324 :             {
    9572          324 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    9573          324 :               tree res = generic_simplify_321 (loc, type, _p0, _p1, captures, GT_EXPR, LE_EXPR, UNLE_EXPR);
    9574          324 :               if (res) return res;
    9575              :             }
    9576              :           }
    9577              :         break;
    9578              :       }
    9579       139057 :     case UNORDERED_EXPR:
    9580       139057 :       {
    9581       139057 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9582       139057 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9583       139057 :         if (integer_zerop (_p1))
    9584              :           {
    9585       136909 :             {
    9586       136909 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    9587       136909 :               tree res = generic_simplify_320 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR);
    9588       136909 :               if (res) return res;
    9589              :             }
    9590              :           }
    9591       138667 :         if (integer_truep (_p1))
    9592              :           {
    9593           42 :             {
    9594           42 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    9595           42 :               tree res = generic_simplify_321 (loc, type, _p0, _p1, captures, UNORDERED_EXPR, ORDERED_EXPR, ORDERED_EXPR);
    9596           42 :               if (res) return res;
    9597              :             }
    9598              :           }
    9599              :         break;
    9600              :       }
    9601          113 :     case ORDERED_EXPR:
    9602          113 :       {
    9603          113 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9604          113 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9605          113 :         if (integer_zerop (_p1))
    9606              :           {
    9607           42 :             {
    9608           42 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    9609           42 :               tree res = generic_simplify_320 (loc, type, _p0, _p1, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR);
    9610           42 :               if (res) return res;
    9611              :             }
    9612              :           }
    9613           71 :         if (integer_truep (_p1))
    9614              :           {
    9615            0 :             {
    9616            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    9617            0 :               tree res = generic_simplify_321 (loc, type, _p0, _p1, captures, ORDERED_EXPR, UNORDERED_EXPR, UNORDERED_EXPR);
    9618            0 :               if (res) return res;
    9619              :             }
    9620              :           }
    9621              :         break;
    9622              :       }
    9623          213 :     case UNLT_EXPR:
    9624          213 :       {
    9625          213 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9626          213 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9627          213 :         if (integer_zerop (_p1))
    9628              :           {
    9629           28 :             {
    9630           28 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    9631           28 :               tree res = generic_simplify_320 (loc, type, _p0, _p1, captures, UNLT_EXPR, GE_EXPR, GE_EXPR);
    9632           28 :               if (res) return res;
    9633              :             }
    9634              :           }
    9635          185 :         if (integer_truep (_p1))
    9636              :           {
    9637          161 :             {
    9638          161 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    9639          161 :               tree res = generic_simplify_321 (loc, type, _p0, _p1, captures, UNLT_EXPR, GE_EXPR, GE_EXPR);
    9640          161 :               if (res) return res;
    9641              :             }
    9642              :           }
    9643              :         break;
    9644              :       }
    9645         1593 :     case UNLE_EXPR:
    9646         1593 :       {
    9647         1593 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9648         1593 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9649         1593 :         if (integer_zerop (_p1))
    9650              :           {
    9651          104 :             {
    9652          104 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    9653          104 :               tree res = generic_simplify_320 (loc, type, _p0, _p1, captures, UNLE_EXPR, GT_EXPR, GT_EXPR);
    9654          104 :               if (res) return res;
    9655              :             }
    9656              :           }
    9657         1489 :         if (integer_truep (_p1))
    9658              :           {
    9659         1465 :             {
    9660         1465 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    9661         1465 :               tree res = generic_simplify_321 (loc, type, _p0, _p1, captures, UNLE_EXPR, GT_EXPR, GT_EXPR);
    9662         1465 :               if (res) return res;
    9663              :             }
    9664              :           }
    9665              :         break;
    9666              :       }
    9667         3322 :     case UNGT_EXPR:
    9668         3322 :       {
    9669         3322 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9670         3322 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9671         3322 :         if (integer_zerop (_p1))
    9672              :           {
    9673           96 :             {
    9674           96 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    9675           96 :               tree res = generic_simplify_320 (loc, type, _p0, _p1, captures, UNGT_EXPR, LE_EXPR, LE_EXPR);
    9676           96 :               if (res) return res;
    9677              :             }
    9678              :           }
    9679         3226 :         if (integer_truep (_p1))
    9680              :           {
    9681         3091 :             {
    9682         3091 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    9683         3091 :               tree res = generic_simplify_321 (loc, type, _p0, _p1, captures, UNGT_EXPR, LE_EXPR, LE_EXPR);
    9684         3091 :               if (res) return res;
    9685              :             }
    9686              :           }
    9687              :         break;
    9688              :       }
    9689          391 :     case UNGE_EXPR:
    9690          391 :       {
    9691          391 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9692          391 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9693          391 :         if (integer_zerop (_p1))
    9694              :           {
    9695           16 :             {
    9696           16 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    9697           16 :               tree res = generic_simplify_320 (loc, type, _p0, _p1, captures, UNGE_EXPR, LT_EXPR, LT_EXPR);
    9698           16 :               if (res) return res;
    9699              :             }
    9700              :           }
    9701          375 :         if (integer_truep (_p1))
    9702              :           {
    9703          211 :             {
    9704          211 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    9705          211 :               tree res = generic_simplify_321 (loc, type, _p0, _p1, captures, UNGE_EXPR, LT_EXPR, LT_EXPR);
    9706          211 :               if (res) return res;
    9707              :             }
    9708              :           }
    9709              :         break;
    9710              :       }
    9711          161 :     case UNEQ_EXPR:
    9712          161 :       {
    9713          161 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9714          161 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9715          161 :         if (integer_zerop (_p1))
    9716              :           {
    9717            0 :             {
    9718            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    9719            0 :               tree res = generic_simplify_320 (loc, type, _p0, _p1, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR);
    9720            0 :               if (res) return res;
    9721              :             }
    9722              :           }
    9723          161 :         if (integer_truep (_p1))
    9724              :           {
    9725          124 :             {
    9726          124 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    9727          124 :               tree res = generic_simplify_321 (loc, type, _p0, _p1, captures, UNEQ_EXPR, LTGT_EXPR, LTGT_EXPR);
    9728          124 :               if (res) return res;
    9729              :             }
    9730              :           }
    9731              :         break;
    9732              :       }
    9733           24 :     case LTGT_EXPR:
    9734           24 :       {
    9735           24 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9736           24 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9737           24 :         if (integer_zerop (_p1))
    9738              :           {
    9739            6 :             {
    9740            6 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    9741            6 :               tree res = generic_simplify_320 (loc, type, _p0, _p1, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR);
    9742            6 :               if (res) return res;
    9743              :             }
    9744              :           }
    9745           24 :         if (integer_truep (_p1))
    9746              :           {
    9747            0 :             {
    9748            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    9749            0 :               tree res = generic_simplify_321 (loc, type, _p0, _p1, captures, LTGT_EXPR, UNEQ_EXPR, UNEQ_EXPR);
    9750            0 :               if (res) return res;
    9751              :             }
    9752              :           }
    9753              :         break;
    9754              :       }
    9755       106005 :     case MINUS_EXPR:
    9756       106005 :       {
    9757       106005 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9758       106005 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9759       106005 :         if (integer_zerop (_p1))
    9760              :           {
    9761        37396 :             {
    9762        37396 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    9763        37396 :               tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, NE_EXPR);
    9764        37396 :               if (res) return res;
    9765              :             }
    9766              :           }
    9767              :         break;
    9768              :       }
    9769        26572 :     case POINTER_DIFF_EXPR:
    9770        26572 :       {
    9771        26572 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9772        26572 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9773        26572 :         if (integer_zerop (_p1))
    9774              :           {
    9775        13910 :             {
    9776        13910 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    9777        13910 :               tree res = generic_simplify_266 (loc, type, _p0, _p1, captures, NE_EXPR);
    9778        13910 :               if (res) return res;
    9779              :             }
    9780              :           }
    9781              :         break;
    9782              :       }
    9783       110288 :     case MULT_EXPR:
    9784       110288 :       {
    9785       110288 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9786       110288 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9787       110288 :         switch (TREE_CODE (_q21))
    9788              :           {
    9789        91442 :           case INTEGER_CST:
    9790        91442 :             {
    9791        91442 :               switch (TREE_CODE (_p1))
    9792              :                 {
    9793        63578 :                 case INTEGER_CST:
    9794        63578 :                   {
    9795        63578 :                     {
    9796        63578 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    9797        63578 :                       tree res = generic_simplify_268 (loc, type, _p0, _p1, captures, NE_EXPR);
    9798        63578 :                       if (res) return res;
    9799              :                     }
    9800        46603 :                     break;
    9801              :                   }
    9802        74467 :                 default:;
    9803              :                 }
    9804        74467 :             if (integer_zerop (_p1))
    9805              :               {
    9806        22971 :                 {
    9807        22971 :                   tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    9808        22971 :                   tree res = generic_simplify_267 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
    9809        22971 :                   if (res) return res;
    9810              :                 }
    9811              :               }
    9812              :               break;
    9813              :             }
    9814              :           default:;
    9815              :           }
    9816              :         break;
    9817              :       }
    9818     38971003 :     default:;
    9819              :     }
    9820     38971003 :   if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    9821              :     {
    9822       281443 :       {
    9823       281443 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    9824       281443 :         tree res = generic_simplify_322 (loc, type, _p0, _p1, captures, NE_EXPR);
    9825       281443 :         if (res) return res;
    9826              :       }
    9827              :     }
    9828     38696130 :   switch (TREE_CODE (_p0))
    9829              :     {
    9830      8583514 :     CASE_CONVERT:
    9831      8583514 :       {
    9832      8583514 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9833      8583514 :         switch (TREE_CODE (_p1))
    9834              :           {
    9835      4669323 :           CASE_CONVERT:
    9836      4669323 :             {
    9837      4669323 :               tree _q40 = TREE_OPERAND (_p1, 0);
    9838      4669323 :               {
    9839      4669323 :                 tree _q40_pops[1];
    9840      4669323 :                 if (tree_maybe_bit_not (_q40, _q40_pops))
    9841              :                   {
    9842            0 :                     tree _q50 = _q40_pops[0];
    9843            0 :                     {
    9844            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q50 };
    9845            0 :                       tree res = generic_simplify_270 (loc, type, _p0, _p1, captures, NE_EXPR);
    9846            0 :                       if (res) return res;
    9847              :                     }
    9848              :                   }
    9849              :               }
    9850      4669323 :               break;
    9851              :             }
    9852      8583514 :           default:;
    9853              :           }
    9854      8583514 :         {
    9855      8583514 :           tree _q20_pops[1];
    9856      8583514 :           if (tree_maybe_bit_not (_q20, _q20_pops))
    9857              :             {
    9858        13869 :               tree _q30 = _q20_pops[0];
    9859        13869 :               switch (TREE_CODE (_p1))
    9860              :                 {
    9861            0 :                 CASE_CONVERT:
    9862            0 :                   {
    9863            0 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    9864            0 :                     {
    9865            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
    9866            0 :                       tree res = generic_simplify_270 (loc, type, _p0, _p1, captures, NE_EXPR);
    9867            0 :                       if (res) return res;
    9868              :                     }
    9869            0 :                     break;
    9870              :                   }
    9871              :                 default:;
    9872              :                 }
    9873              :             }
    9874              :         }
    9875      8583514 :         break;
    9876              :       }
    9877     38696130 :     default:;
    9878              :     }
    9879     38696130 :   {
    9880     38696130 :     tree _p1_pops[1];
    9881     38696130 :     if (tree_maybe_bit_not (_p1, _p1_pops))
    9882              :       {
    9883     27124611 :         tree _q30 = _p1_pops[0];
    9884     27124611 :         {
    9885     27124611 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
    9886     27124611 :           tree res = generic_simplify_270 (loc, type, _p0, _p1, captures, NE_EXPR);
    9887     27124611 :           if (res) return res;
    9888              :         }
    9889              :       }
    9890              :   }
    9891     38696130 :   switch (TREE_CODE (_p0))
    9892              :     {
    9893        14251 :     case BIT_NOT_EXPR:
    9894        14251 :       {
    9895        14251 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9896        14251 :         switch (TREE_CODE (_p1))
    9897              :           {
    9898            1 :           case BIT_NOT_EXPR:
    9899            1 :             {
    9900            1 :               tree _q40 = TREE_OPERAND (_p1, 0);
    9901            1 :               {
    9902            1 :                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _p1, _q40 };
    9903            1 :                 tree res = generic_simplify_273 (loc, type, _p0, _p1, captures, NE_EXPR);
    9904            1 :                 if (res) return res;
    9905              :               }
    9906            0 :               break;
    9907              :             }
    9908        14250 :           default:;
    9909              :           }
    9910        14250 :       {
    9911        14250 :         tree _p1_pops[1];
    9912        14250 :         if (tree_nop_convert (_p1, _p1_pops))
    9913              :           {
    9914           80 :             tree _q40 = _p1_pops[0];
    9915           80 :             switch (TREE_CODE (_q40))
    9916              :               {
    9917            0 :               case BIT_NOT_EXPR:
    9918            0 :                 {
    9919            0 :                   tree _q50 = TREE_OPERAND (_q40, 0);
    9920            0 :                   {
    9921            0 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40, _q50 };
    9922            0 :                     tree res = generic_simplify_273 (loc, type, _p0, _p1, captures, NE_EXPR);
    9923            0 :                     if (res) return res;
    9924              :                   }
    9925            0 :                   break;
    9926              :                 }
    9927              :               default:;
    9928              :               }
    9929              :           }
    9930              :       }
    9931        14250 :       if (CONSTANT_CLASS_P (_p1))
    9932              :         {
    9933        13109 :           {
    9934        13109 :             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    9935        13109 :             tree res = generic_simplify_272 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
    9936        13109 :             if (res) return res;
    9937              :           }
    9938              :         }
    9939              :         break;
    9940              :       }
    9941     38683020 :     default:;
    9942              :     }
    9943     38683020 : {
    9944     38683020 :   tree _p0_pops[1];
    9945     38683020 :   if (tree_maybe_bit_not (_p0, _p0_pops))
    9946              :     {
    9947       300415 :       tree _q20 = _p0_pops[0];
    9948       300415 :       {
    9949       300415 :         tree captures[2] ATTRIBUTE_UNUSED = { _p1, _q20 };
    9950       300415 :         tree res = generic_simplify_270 (loc, type, _p0, _p1, captures, NE_EXPR);
    9951       300415 :         if (res) return res;
    9952              :       }
    9953              :     }
    9954              : }
    9955     38683018 : {
    9956     38683018 :   tree _p0_pops[1];
    9957     38683018 :   if (tree_nop_convert (_p0, _p0_pops))
    9958              :     {
    9959      6252276 :       tree _q20 = _p0_pops[0];
    9960      6252276 :       switch (TREE_CODE (_q20))
    9961              :         {
    9962            1 :         case BIT_NOT_EXPR:
    9963            1 :           {
    9964            1 :             tree _q30 = TREE_OPERAND (_q20, 0);
    9965            1 :             switch (TREE_CODE (_p1))
    9966              :               {
    9967            0 :               case BIT_NOT_EXPR:
    9968            0 :                 {
    9969            0 :                   tree _q50 = TREE_OPERAND (_p1, 0);
    9970            0 :                   {
    9971            0 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _p1, _q50 };
    9972            0 :                     tree res = generic_simplify_271 (loc, type, _p0, _p1, captures, NE_EXPR);
    9973            0 :                     if (res) return res;
    9974              :                   }
    9975            0 :                   break;
    9976              :                 }
    9977            1 :               default:;
    9978              :               }
    9979            1 :           {
    9980            1 :             tree _p1_pops[1];
    9981            1 :             if (tree_nop_convert (_p1, _p1_pops))
    9982              :               {
    9983            0 :                 tree _q50 = _p1_pops[0];
    9984            0 :                 switch (TREE_CODE (_q50))
    9985              :                   {
    9986            0 :                   case BIT_NOT_EXPR:
    9987            0 :                     {
    9988            0 :                       tree _q60 = TREE_OPERAND (_q50, 0);
    9989            0 :                       {
    9990            0 :                         tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50, _q60 };
    9991            0 :                         tree res = generic_simplify_271 (loc, type, _p0, _p1, captures, NE_EXPR);
    9992            0 :                         if (res) return res;
    9993              :                       }
    9994            0 :                       break;
    9995              :                     }
    9996              :                   default:;
    9997              :                   }
    9998              :               }
    9999              :           }
   10000            1 :           if (CONSTANT_CLASS_P (_p1))
   10001              :             {
   10002            1 :               {
   10003            1 :                 tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
   10004            1 :                 tree res = generic_simplify_272 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
   10005            1 :                 if (res) return res;
   10006              :               }
   10007              :             }
   10008              :             break;
   10009              :           }
   10010              :         default:;
   10011              :         }
   10012              :     }
   10013              : }
   10014     38683017 :   switch (TREE_CODE (_p1))
   10015              :     {
   10016       716113 :     case REAL_CST:
   10017       716113 :       {
   10018       716113 :         {
   10019       716113 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   10020       716113 :           tree res = generic_simplify_274 (loc, type, _p0, _p1, captures, NE_EXPR);
   10021       716113 :           if (res) return res;
   10022              :         }
   10023       643224 :         break;
   10024              :       }
   10025     38610128 :     default:;
   10026              :     }
   10027     38610128 :   switch (TREE_CODE (_p0))
   10028              :     {
   10029      1354415 :     case PLUS_EXPR:
   10030      1354415 :       {
   10031      1354415 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10032      1354415 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10033      1354415 :         switch (TREE_CODE (_q21))
   10034              :           {
   10035         3843 :           case REAL_CST:
   10036         3843 :             {
   10037         3843 :               switch (TREE_CODE (_p1))
   10038              :                 {
   10039         3069 :                 case REAL_CST:
   10040         3069 :                   {
   10041         3069 :                     {
   10042         3069 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
   10043         3069 :                       tree res = generic_simplify_275 (loc, type, _p0, _p1, captures, PLUS_EXPR, NE_EXPR);
   10044         3069 :                       if (res) return res;
   10045              :                     }
   10046         3069 :                     break;
   10047              :                   }
   10048              :                 default:;
   10049              :                 }
   10050              :               break;
   10051              :             }
   10052              :           default:;
   10053              :           }
   10054              :         break;
   10055              :       }
   10056        68605 :     case MINUS_EXPR:
   10057        68605 :       {
   10058        68605 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10059        68605 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10060        68605 :         switch (TREE_CODE (_q21))
   10061              :           {
   10062         3215 :           case REAL_CST:
   10063         3215 :             {
   10064         3215 :               switch (TREE_CODE (_p1))
   10065              :                 {
   10066         2849 :                 case REAL_CST:
   10067         2849 :                   {
   10068         2849 :                     {
   10069         2849 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
   10070         2849 :                       tree res = generic_simplify_275 (loc, type, _p0, _p1, captures, MINUS_EXPR, NE_EXPR);
   10071         2849 :                       if (res) return res;
   10072              :                     }
   10073         2849 :                     break;
   10074              :                   }
   10075              :                 default:;
   10076              :                 }
   10077              :               break;
   10078              :             }
   10079        68605 :           default:;
   10080              :           }
   10081        68605 :         switch (TREE_CODE (_q20))
   10082              :           {
   10083           87 :           case REAL_CST:
   10084           87 :             {
   10085           87 :               switch (TREE_CODE (_p1))
   10086              :                 {
   10087           44 :                 case REAL_CST:
   10088           44 :                   {
   10089           44 :                     {
   10090           44 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
   10091           44 :                       tree res = generic_simplify_276 (loc, type, _p0, _p1, captures, NE_EXPR);
   10092           44 :                       if (res) return res;
   10093              :                     }
   10094           44 :                     break;
   10095              :                   }
   10096              :                 default:;
   10097              :                 }
   10098              :               break;
   10099              :             }
   10100              :           default:;
   10101              :           }
   10102              :         break;
   10103              :       }
   10104        10551 :     case FLOAT_EXPR:
   10105        10551 :       {
   10106        10551 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10107        10551 :         switch (TREE_CODE (_p1))
   10108              :           {
   10109         1116 :           case FLOAT_EXPR:
   10110         1116 :             {
   10111         1116 :               tree _q40 = TREE_OPERAND (_p1, 0);
   10112         1116 :               {
   10113         1116 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   10114         1116 :                 tree res = generic_simplify_279 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
   10115         1116 :                 if (res) return res;
   10116              :               }
   10117          972 :               break;
   10118              :             }
   10119         2177 :           case REAL_CST:
   10120         2177 :             {
   10121         2177 :               {
   10122         2177 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10123         2177 :                 tree res = generic_simplify_280 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
   10124         2177 :                 if (res) return res;
   10125              :               }
   10126         1905 :               break;
   10127              :             }
   10128              :           default:;
   10129              :           }
   10130              :         break;
   10131              :       }
   10132         1838 :     case EXACT_DIV_EXPR:
   10133         1838 :       {
   10134         1838 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10135         1838 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10136         1838 :         switch (TREE_CODE (_p1))
   10137              :           {
   10138           36 :           case INTEGER_CST:
   10139           36 :             {
   10140           36 :               {
   10141           36 :                 tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
   10142           36 :                 tree res = generic_simplify_281 (loc, type, _p0, _p1, captures, NE_EXPR);
   10143           36 :                 if (res) return res;
   10144              :               }
   10145            0 :               break;
   10146              :             }
   10147              :           default:;
   10148              :           }
   10149              :         break;
   10150              :       }
   10151         6238 :     case NEGATE_EXPR:
   10152         6238 :       {
   10153         6238 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10154         6238 :         switch (TREE_CODE (_p1))
   10155              :           {
   10156            4 :           case NEGATE_EXPR:
   10157            4 :             {
   10158            4 :               tree _q40 = TREE_OPERAND (_p1, 0);
   10159            4 :               {
   10160            4 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
   10161            4 :                 tree res = generic_simplify_282 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
   10162            4 :                 if (res) return res;
   10163              :               }
   10164            0 :               break;
   10165              :             }
   10166         6234 :           default:;
   10167              :           }
   10168         6234 :       if (CONSTANT_CLASS_P (_p1))
   10169              :         {
   10170          577 :           {
   10171          577 :             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
   10172          577 :             tree res = generic_simplify_283 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
   10173          577 :             if (res) return res;
   10174              :           }
   10175              :         }
   10176              :         break;
   10177              :       }
   10178         1936 :     case ABS_EXPR:
   10179         1936 :       {
   10180         1936 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10181         1936 :         if (zerop (_p1))
   10182              :           {
   10183           72 :             {
   10184           72 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
   10185           72 :               const enum tree_code eqne = NE_EXPR;
   10186           72 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1643;
   10187           72 :               {
   10188           72 :                 tree res_op0;
   10189           72 :                 res_op0 = captures[0];
   10190           72 :                 tree res_op1;
   10191           72 :                 res_op1 =  build_zero_cst (TREE_TYPE (captures[0]));
   10192           72 :                 tree _r;
   10193           72 :                 _r = fold_build2_loc (loc, eqne, type, res_op0, res_op1);
   10194           72 :                 if (TREE_SIDE_EFFECTS (captures[1]))
   10195            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   10196           72 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1026, __FILE__, __LINE__, true);
   10197              :                 return _r;
   10198              :               }
   10199            0 : next_after_fail1643:;
   10200              :             }
   10201              :           }
   10202              :         break;
   10203              :       }
   10204         1616 :     case ABSU_EXPR:
   10205         1616 :       {
   10206         1616 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10207         1616 :         if (zerop (_p1))
   10208              :           {
   10209           65 :             {
   10210           65 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
   10211           65 :               const enum tree_code eqne = NE_EXPR;
   10212           65 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1644;
   10213           65 :               {
   10214           65 :                 tree res_op0;
   10215           65 :                 res_op0 = captures[0];
   10216           65 :                 tree res_op1;
   10217           65 :                 res_op1 =  build_zero_cst (TREE_TYPE (captures[0]));
   10218           65 :                 tree _r;
   10219           65 :                 _r = fold_build2_loc (loc, eqne, type, res_op0, res_op1);
   10220           65 :                 if (TREE_SIDE_EFFECTS (captures[1]))
   10221            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   10222           65 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1026, __FILE__, __LINE__, true);
   10223              :                 return _r;
   10224              :               }
   10225            0 : next_after_fail1644:;
   10226              :             }
   10227              :           }
   10228              :         break;
   10229              :       }
   10230      8583434 :     CASE_CONVERT:
   10231      8583434 :       {
   10232      8583434 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10233      8583434 :         switch (TREE_CODE (_p1))
   10234              :           {
   10235      4669323 :           CASE_CONVERT:
   10236      4669323 :             {
   10237      4669323 :               tree _q40 = TREE_OPERAND (_p1, 0);
   10238      4669323 :               {
   10239      4669323 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   10240      4669323 :                 tree res = generic_simplify_284 (loc, type, _p0, _p1, captures, NE_EXPR);
   10241      4669323 :                 if (res) return res;
   10242              :               }
   10243      4462749 :               break;
   10244              :             }
   10245      8376860 :           default:;
   10246              :           }
   10247      8376860 :         {
   10248      8376860 :           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
   10249      8376860 :           tree res = generic_simplify_285 (loc, type, _p0, _p1, captures, NE_EXPR);
   10250      8376860 :           if (res) return res;
   10251              :         }
   10252      6125758 :         switch (TREE_CODE (_q20))
   10253              :           {
   10254           12 :           case BIT_IOR_EXPR:
   10255           12 :             {
   10256           12 :               tree _q30 = TREE_OPERAND (_q20, 0);
   10257           12 :               tree _q31 = TREE_OPERAND (_q20, 1);
   10258           12 :               switch (TREE_CODE (_q31))
   10259              :                 {
   10260            0 :                 case INTEGER_CST:
   10261            0 :                   {
   10262            0 :                     switch (TREE_CODE (_p1))
   10263              :                       {
   10264            0 :                       case INTEGER_CST:
   10265            0 :                         {
   10266            0 :                           {
   10267            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _p1 };
   10268            0 :                             tree res = generic_simplify_286 (loc, type, _p0, _p1, captures, NE_EXPR);
   10269            0 :                             if (res) return res;
   10270              :                           }
   10271            0 :                           break;
   10272              :                         }
   10273              :                       default:;
   10274              :                       }
   10275              :                     break;
   10276              :                   }
   10277              :                 default:;
   10278              :                 }
   10279              :               break;
   10280              :             }
   10281              :           default:;
   10282              :           }
   10283              :         break;
   10284              :       }
   10285     15195031 :     case SSA_NAME:
   10286     15195031 :       {
   10287     15195031 :         switch (TREE_CODE (_p1))
   10288              :           {
   10289       306014 :           case ADDR_EXPR:
   10290       306014 :             {
   10291       306014 :               {
   10292       306014 :                 tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   10293       306014 :                 tree res = generic_simplify_287 (loc, type, _p0, _p1, captures, NE_EXPR);
   10294       306014 :                 if (res) return res;
   10295              :               }
   10296       306012 :               break;
   10297              :             }
   10298              :           default:;
   10299              :           }
   10300              :         break;
   10301              :       }
   10302       243839 :     case BIT_IOR_EXPR:
   10303       243839 :       {
   10304       243839 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10305       243839 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10306       243839 :         switch (TREE_CODE (_q21))
   10307              :           {
   10308          835 :           case INTEGER_CST:
   10309          835 :             {
   10310          835 :               switch (TREE_CODE (_p1))
   10311              :                 {
   10312          223 :                 case INTEGER_CST:
   10313          223 :                   {
   10314          223 :                     {
   10315          223 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
   10316          223 :                       tree res = generic_simplify_286 (loc, type, _p0, _p1, captures, NE_EXPR);
   10317          223 :                       if (res) return res;
   10318              :                     }
   10319          223 :                     break;
   10320              :                   }
   10321              :                 default:;
   10322              :                 }
   10323              :               break;
   10324              :             }
   10325              :           default:;
   10326              :           }
   10327              :         break;
   10328              :       }
   10329        31689 :     case BIT_XOR_EXPR:
   10330        31689 :       {
   10331        31689 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10332        31689 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10333        31689 :         if (integer_zerop (_p1))
   10334              :           {
   10335        27314 :             {
   10336        27314 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
   10337        27314 :               tree res = generic_simplify_288 (loc, type, _p0, _p1, captures, NE_EXPR);
   10338        27314 :               if (res) return res;
   10339              :             }
   10340              :           }
   10341         4375 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
   10342              :           {
   10343            1 :             {
   10344            1 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
   10345            1 :               tree res = generic_simplify_289 (loc, type, _p0, _p1, captures, NE_EXPR);
   10346            1 :               if (res) return res;
   10347              :             }
   10348              :           }
   10349         4374 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
   10350              :           {
   10351            2 :             {
   10352            2 :               tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
   10353            2 :               tree res = generic_simplify_289 (loc, type, _p0, _p1, captures, NE_EXPR);
   10354            2 :               if (res) return res;
   10355              :             }
   10356              :           }
   10357              :         break;
   10358              :       }
   10359      2502871 :     case CALL_EXPR:
   10360      2502871 :       switch (get_call_combined_fn (_p0))
   10361              :         {
   10362           42 :         case CFN_BUILT_IN_SQRTF:
   10363           42 :           if (call_expr_nargs (_p0) == 1)
   10364              :     {
   10365           42 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10366           42 :               switch (TREE_CODE (_p1))
   10367              :                 {
   10368            0 :                 case REAL_CST:
   10369            0 :                   {
   10370            0 :                     {
   10371            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
   10372            0 :                       tree res = generic_simplify_277 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, NE_EXPR);
   10373            0 :                       if (res) return res;
   10374              :                     }
   10375            0 :                     break;
   10376              :                   }
   10377           42 :                 case CALL_EXPR:
   10378           42 :                   switch (get_call_combined_fn (_p1))
   10379              :                     {
   10380            0 :                     case CFN_BUILT_IN_SQRTF:
   10381            0 :                       if (call_expr_nargs (_p1) == 1)
   10382              :     {
   10383            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   10384            0 :                           {
   10385            0 :                             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
   10386            0 :                             tree res = generic_simplify_278 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, NE_EXPR);
   10387            0 :                             if (res) return res;
   10388              :                           }
   10389              :                         }
   10390              :                       break;
   10391              :                     default:;
   10392              :                     }
   10393              :                   break;
   10394              :                 default:;
   10395              :                 }
   10396              :             }
   10397              :           break;
   10398           42 :         case CFN_BUILT_IN_SQRTL:
   10399           42 :           if (call_expr_nargs (_p0) == 1)
   10400              :     {
   10401           42 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10402           42 :               switch (TREE_CODE (_p1))
   10403              :                 {
   10404            0 :                 case REAL_CST:
   10405            0 :                   {
   10406            0 :                     {
   10407            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
   10408            0 :                       tree res = generic_simplify_277 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, NE_EXPR);
   10409            0 :                       if (res) return res;
   10410              :                     }
   10411            0 :                     break;
   10412              :                   }
   10413           42 :                 case CALL_EXPR:
   10414           42 :                   switch (get_call_combined_fn (_p1))
   10415              :                     {
   10416            0 :                     case CFN_BUILT_IN_SQRTL:
   10417            0 :                       if (call_expr_nargs (_p1) == 1)
   10418              :     {
   10419            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   10420            0 :                           {
   10421            0 :                             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
   10422            0 :                             tree res = generic_simplify_278 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, NE_EXPR);
   10423            0 :                             if (res) return res;
   10424              :                           }
   10425              :                         }
   10426              :                       break;
   10427              :                     default:;
   10428              :                     }
   10429              :                   break;
   10430              :                 default:;
   10431              :                 }
   10432              :             }
   10433              :           break;
   10434           46 :         case CFN_BUILT_IN_SQRT:
   10435           46 :           if (call_expr_nargs (_p0) == 1)
   10436              :     {
   10437           46 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10438           46 :               switch (TREE_CODE (_p1))
   10439              :                 {
   10440            2 :                 case REAL_CST:
   10441            2 :                   {
   10442            2 :                     {
   10443            2 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
   10444            2 :                       tree res = generic_simplify_277 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, NE_EXPR);
   10445            2 :                       if (res) return res;
   10446              :                     }
   10447            2 :                     break;
   10448              :                   }
   10449           43 :                 case CALL_EXPR:
   10450           43 :                   switch (get_call_combined_fn (_p1))
   10451              :                     {
   10452            0 :                     case CFN_BUILT_IN_SQRT:
   10453            0 :                       if (call_expr_nargs (_p1) == 1)
   10454              :     {
   10455            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   10456            0 :                           {
   10457            0 :                             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
   10458            0 :                             tree res = generic_simplify_278 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, NE_EXPR);
   10459            0 :                             if (res) return res;
   10460              :                           }
   10461              :                         }
   10462              :                       break;
   10463              :                     default:;
   10464              :                     }
   10465              :                   break;
   10466              :                 default:;
   10467              :                 }
   10468              :             }
   10469              :           break;
   10470            0 :         case CFN_SQRT:
   10471            0 :           if (call_expr_nargs (_p0) == 1)
   10472              :     {
   10473            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10474            0 :               switch (TREE_CODE (_p1))
   10475              :                 {
   10476            0 :                 case REAL_CST:
   10477            0 :                   {
   10478            0 :                     {
   10479            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
   10480            0 :                       tree res = generic_simplify_277 (loc, type, _p0, _p1, captures, CFN_SQRT, NE_EXPR);
   10481            0 :                       if (res) return res;
   10482              :                     }
   10483            0 :                     break;
   10484              :                   }
   10485            0 :                 case CALL_EXPR:
   10486            0 :                   switch (get_call_combined_fn (_p1))
   10487              :                     {
   10488            0 :                     case CFN_SQRT:
   10489            0 :                       if (call_expr_nargs (_p1) == 1)
   10490              :     {
   10491            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   10492            0 :                           {
   10493            0 :                             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
   10494            0 :                             tree res = generic_simplify_278 (loc, type, _p0, _p1, captures, CFN_SQRT, NE_EXPR);
   10495            0 :                             if (res) return res;
   10496              :                           }
   10497              :                         }
   10498              :                       break;
   10499              :                     default:;
   10500              :                     }
   10501              :                   break;
   10502              :                 default:;
   10503              :                 }
   10504              :             }
   10505              :           break;
   10506              :         default:;
   10507              :         }
   10508              :       break;
   10509     36123981 :     default:;
   10510              :     }
   10511     36123981 :   switch (TREE_CODE (_p1))
   10512              :     {
   10513          840 :     case BIT_XOR_EXPR:
   10514          840 :       {
   10515          840 :         tree _q30 = TREE_OPERAND (_p1, 0);
   10516          840 :         tree _q31 = TREE_OPERAND (_p1, 1);
   10517          840 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
   10518              :           {
   10519            0 :             {
   10520            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
   10521            0 :               tree res = generic_simplify_289 (loc, type, _p0, _p1, captures, NE_EXPR);
   10522            0 :               if (res) return res;
   10523              :             }
   10524              :           }
   10525          840 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
   10526              :           {
   10527            0 :             {
   10528            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
   10529            0 :               tree res = generic_simplify_289 (loc, type, _p0, _p1, captures, NE_EXPR);
   10530            0 :               if (res) return res;
   10531              :             }
   10532              :           }
   10533              :         break;
   10534              :       }
   10535     36123981 :     default:;
   10536              :     }
   10537     36123981 :   switch (TREE_CODE (_p0))
   10538              :     {
   10539      1320546 :     case BIT_AND_EXPR:
   10540      1320546 :       {
   10541      1320546 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10542      1320546 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10543      1320546 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
   10544              :           {
   10545          179 :             {
   10546          179 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
   10547          179 :               tree res = generic_simplify_290 (loc, type, _p0, _p1, captures, NE_EXPR);
   10548          179 :               if (res) return res;
   10549              :             }
   10550              :           }
   10551      1320518 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
   10552              :           {
   10553         4956 :             {
   10554         4956 :               tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
   10555         4956 :               tree res = generic_simplify_290 (loc, type, _p0, _p1, captures, NE_EXPR);
   10556         4956 :               if (res) return res;
   10557              :             }
   10558              :           }
   10559              :         break;
   10560              :       }
   10561     36123953 :     default:;
   10562              :     }
   10563     36123953 :   switch (TREE_CODE (_p1))
   10564              :     {
   10565        16369 :     case BIT_AND_EXPR:
   10566        16369 :       {
   10567        16369 :         tree _q30 = TREE_OPERAND (_p1, 0);
   10568        16369 :         tree _q31 = TREE_OPERAND (_p1, 1);
   10569        16369 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
   10570              :           {
   10571            0 :             {
   10572            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
   10573            0 :               tree res = generic_simplify_290 (loc, type, _p0, _p1, captures, NE_EXPR);
   10574            0 :               if (res) return res;
   10575              :             }
   10576              :           }
   10577        16369 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
   10578              :           {
   10579            0 :             {
   10580            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
   10581            0 :               tree res = generic_simplify_290 (loc, type, _p0, _p1, captures, NE_EXPR);
   10582            0 :               if (res) return res;
   10583              :             }
   10584              :           }
   10585              :         break;
   10586              :       }
   10587     36123953 :     default:;
   10588              :     }
   10589     36123953 :   switch (TREE_CODE (_p0))
   10590              :     {
   10591      6125758 :     CASE_CONVERT:
   10592      6125758 :       {
   10593      6125758 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10594      6125758 :         switch (TREE_CODE (_q20))
   10595              :           {
   10596            8 :           case BIT_AND_EXPR:
   10597            8 :             {
   10598            8 :               tree _q30 = TREE_OPERAND (_q20, 0);
   10599            8 :               tree _q31 = TREE_OPERAND (_q20, 1);
   10600            8 :               switch (TREE_CODE (_q30))
   10601              :                 {
   10602            0 :                 CASE_CONVERT:
   10603            0 :                   {
   10604            0 :                     tree _q40 = TREE_OPERAND (_q30, 0);
   10605            0 :                     switch (TREE_CODE (_q31))
   10606              :                       {
   10607            0 :                       case INTEGER_CST:
   10608            0 :                         {
   10609            0 :                           switch (TREE_CODE (_p1))
   10610              :                             {
   10611            0 :                             CASE_CONVERT:
   10612            0 :                               {
   10613            0 :                                 tree _q70 = TREE_OPERAND (_p1, 0);
   10614            0 :                                 if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
   10615              :                                   {
   10616            0 :                                     {
   10617            0 :                                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q31 };
   10618            0 :                                       tree res = generic_simplify_291 (loc, type, _p0, _p1, captures, NE_EXPR);
   10619            0 :                                       if (res) return res;
   10620              :                                     }
   10621              :                                   }
   10622              :                                 break;
   10623              :                               }
   10624              :                             default:;
   10625              :                             }
   10626              :                           break;
   10627              :                         }
   10628              :                       default:;
   10629              :                       }
   10630              :                     break;
   10631              :                   }
   10632              :                 default:;
   10633              :                 }
   10634              :               break;
   10635              :             }
   10636      6125758 :           default:;
   10637              :           }
   10638      6125758 :         switch (TREE_CODE (_p1))
   10639              :           {
   10640      4462749 :           CASE_CONVERT:
   10641      4462749 :             {
   10642      4462749 :               tree _q40 = TREE_OPERAND (_p1, 0);
   10643      4462749 :               switch (TREE_CODE (_q40))
   10644              :                 {
   10645            0 :                 case BIT_AND_EXPR:
   10646            0 :                   {
   10647            0 :                     tree _q50 = TREE_OPERAND (_q40, 0);
   10648            0 :                     tree _q51 = TREE_OPERAND (_q40, 1);
   10649            0 :                     switch (TREE_CODE (_q50))
   10650              :                       {
   10651            0 :                       CASE_CONVERT:
   10652            0 :                         {
   10653            0 :                           tree _q60 = TREE_OPERAND (_q50, 0);
   10654            0 :                           if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
   10655              :                             {
   10656            0 :                               switch (TREE_CODE (_q51))
   10657              :                                 {
   10658            0 :                                 case INTEGER_CST:
   10659            0 :                                   {
   10660            0 :                                     {
   10661            0 :                                       tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q50, _q20, _q51 };
   10662            0 :                                       tree res = generic_simplify_291 (loc, type, _p0, _p1, captures, NE_EXPR);
   10663            0 :                                       if (res) return res;
   10664              :                                     }
   10665            0 :                                     break;
   10666              :                                   }
   10667              :                                 default:;
   10668              :                                 }
   10669              :                             }
   10670              :                           break;
   10671              :                         }
   10672              :                       default:;
   10673              :                       }
   10674              :                     break;
   10675              :                   }
   10676              :                 default:;
   10677              :                 }
   10678              :               break;
   10679              :             }
   10680              :           default:;
   10681              :           }
   10682              :         break;
   10683              :       }
   10684       243839 :     case BIT_IOR_EXPR:
   10685       243839 :       {
   10686       243839 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10687       243839 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10688       243839 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
   10689              :           {
   10690          124 :             {
   10691          124 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
   10692          124 :               tree res = generic_simplify_292 (loc, type, _p0, _p1, captures, NE_EXPR);
   10693          124 :               if (res) return res;
   10694              :             }
   10695              :           }
   10696       243831 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
   10697              :           {
   10698          257 :             {
   10699          257 :               tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
   10700          257 :               tree res = generic_simplify_292 (loc, type, _p0, _p1, captures, NE_EXPR);
   10701          257 :               if (res) return res;
   10702              :             }
   10703              :           }
   10704              :         break;
   10705              :       }
   10706     36123945 :     default:;
   10707              :     }
   10708     36123945 :   switch (TREE_CODE (_p1))
   10709              :     {
   10710          518 :     case BIT_IOR_EXPR:
   10711          518 :       {
   10712          518 :         tree _q30 = TREE_OPERAND (_p1, 0);
   10713          518 :         tree _q31 = TREE_OPERAND (_p1, 1);
   10714          518 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
   10715              :           {
   10716            0 :             {
   10717            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
   10718            0 :               tree res = generic_simplify_292 (loc, type, _p0, _p1, captures, NE_EXPR);
   10719            0 :               if (res) return res;
   10720              :             }
   10721              :           }
   10722          518 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
   10723              :           {
   10724            0 :             {
   10725            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q31, _p0 };
   10726            0 :               tree res = generic_simplify_292 (loc, type, _p0, _p1, captures, NE_EXPR);
   10727            0 :               if (res) return res;
   10728              :             }
   10729              :           }
   10730              :         break;
   10731              :       }
   10732     36123945 :     default:;
   10733              :     }
   10734     36123945 :   switch (TREE_CODE (_p0))
   10735              :     {
   10736      6125758 :     CASE_CONVERT:
   10737      6125758 :       {
   10738      6125758 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10739      6125758 :         switch (TREE_CODE (_q20))
   10740              :           {
   10741          698 :           case BIT_XOR_EXPR:
   10742          698 :             {
   10743          698 :               tree _q30 = TREE_OPERAND (_q20, 0);
   10744          698 :               tree _q31 = TREE_OPERAND (_q20, 1);
   10745          698 :               switch (TREE_CODE (_q31))
   10746              :                 {
   10747            0 :                 case INTEGER_CST:
   10748            0 :                   {
   10749            0 :                     switch (TREE_CODE (_p1))
   10750              :                       {
   10751            0 :                       case INTEGER_CST:
   10752            0 :                         {
   10753            0 :                           {
   10754            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _p1 };
   10755            0 :                             tree res = generic_simplify_293 (loc, type, _p0, _p1, captures, NE_EXPR);
   10756            0 :                             if (res) return res;
   10757              :                           }
   10758            0 :                           break;
   10759              :                         }
   10760              :                       default:;
   10761              :                       }
   10762              :                     break;
   10763              :                   }
   10764              :                 default:;
   10765              :                 }
   10766              :               break;
   10767              :             }
   10768              :           default:;
   10769              :           }
   10770              :         break;
   10771              :       }
   10772         4372 :     case BIT_XOR_EXPR:
   10773         4372 :       {
   10774         4372 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10775         4372 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10776         4372 :         switch (TREE_CODE (_q21))
   10777              :           {
   10778          881 :           case INTEGER_CST:
   10779          881 :             {
   10780          881 :               switch (TREE_CODE (_p1))
   10781              :                 {
   10782           10 :                 case INTEGER_CST:
   10783           10 :                   {
   10784           10 :                     {
   10785           10 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
   10786           10 :                       tree res = generic_simplify_293 (loc, type, _p0, _p1, captures, NE_EXPR);
   10787           10 :                       if (res) return res;
   10788              :                     }
   10789            0 :                     break;
   10790              :                   }
   10791              :                 default:;
   10792              :                 }
   10793              :               break;
   10794              :             }
   10795              :           default:;
   10796              :           }
   10797              :         break;
   10798              :       }
   10799     36123935 :     default:;
   10800              :     }
   10801     36123935 : {
   10802     36123935 :   tree _p0_pops[1];
   10803     36123935 :   if (tree_nop_convert (_p0, _p0_pops))
   10804              :     {
   10805      5398313 :       tree _q20 = _p0_pops[0];
   10806      5398313 :       if (integer_zerop (_p1))
   10807              :         {
   10808       838401 :           {
   10809       838401 :             tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
   10810       838401 :             tree res = generic_simplify_294 (loc, type, _p0, _p1, captures, NE_EXPR);
   10811       838401 :             if (res) return res;
   10812              :           }
   10813              :         }
   10814              :     }
   10815              : }
   10816     35659425 :   if (integer_zerop (_p1))
   10817              :     {
   10818     19224489 :       {
   10819     19224489 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
   10820     19224489 :         tree res = generic_simplify_294 (loc, type, _p0, _p1, captures, NE_EXPR);
   10821     19224489 :         if (res) return res;
   10822              :       }
   10823              :     }
   10824     35467346 :   switch (TREE_CODE (_p0))
   10825              :     {
   10826      1320518 :     case BIT_AND_EXPR:
   10827      1320518 :       {
   10828      1320518 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10829      1320518 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10830      1320518 :         switch (TREE_CODE (_p1))
   10831              :           {
   10832        14960 :           case BIT_AND_EXPR:
   10833        14960 :             {
   10834        14960 :               tree _q50 = TREE_OPERAND (_p1, 0);
   10835        14960 :               tree _q51 = TREE_OPERAND (_p1, 1);
   10836        14960 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
   10837              :                 {
   10838        14714 :                   {
   10839        14714 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   10840        14714 :                     tree res = generic_simplify_295 (loc, type, _p0, _p1, captures, NE_EXPR);
   10841        14714 :                     if (res) return res;
   10842              :                   }
   10843              :                 }
   10844          246 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
   10845              :                 {
   10846            2 :                   {
   10847            2 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
   10848            2 :                     tree res = generic_simplify_295 (loc, type, _p0, _p1, captures, NE_EXPR);
   10849            2 :                     if (res) return res;
   10850              :                   }
   10851              :                 }
   10852          244 :               if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
   10853              :                 {
   10854            1 :                   {
   10855            1 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
   10856            1 :                     tree res = generic_simplify_295 (loc, type, _p0, _p1, captures, NE_EXPR);
   10857            1 :                     if (res) return res;
   10858              :                   }
   10859              :                 }
   10860          243 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
   10861              :                 {
   10862            8 :                   {
   10863            8 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
   10864            8 :                     tree res = generic_simplify_295 (loc, type, _p0, _p1, captures, NE_EXPR);
   10865            8 :                     if (res) return res;
   10866              :                   }
   10867              :                 }
   10868              :               break;
   10869              :             }
   10870      1305793 :           default:;
   10871              :           }
   10872      1305793 :         if (integer_pow2p (_q21))
   10873              :           {
   10874       672028 :             if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
   10875              :               {
   10876          604 :                 {
   10877          604 :                   tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
   10878          604 :                   tree res = generic_simplify_296 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
   10879          604 :                   if (res) return res;
   10880              :                 }
   10881              :               }
   10882              :           }
   10883              :         break;
   10884              :       }
   10885       243831 :     case BIT_IOR_EXPR:
   10886       243831 :       {
   10887       243831 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10888       243831 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10889       243831 :         switch (TREE_CODE (_p1))
   10890              :           {
   10891          143 :           case BIT_IOR_EXPR:
   10892          143 :             {
   10893          143 :               tree _q50 = TREE_OPERAND (_p1, 0);
   10894          143 :               tree _q51 = TREE_OPERAND (_p1, 1);
   10895          143 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
   10896              :                 {
   10897           74 :                   {
   10898           74 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   10899           74 :                     tree res = generic_simplify_297 (loc, type, _p0, _p1, captures, NE_EXPR);
   10900           74 :                     if (res) return res;
   10901              :                   }
   10902              :                 }
   10903           71 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
   10904              :                 {
   10905            8 :                   {
   10906            8 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
   10907            8 :                     tree res = generic_simplify_297 (loc, type, _p0, _p1, captures, NE_EXPR);
   10908            8 :                     if (res) return res;
   10909              :                   }
   10910              :                 }
   10911           71 :               if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
   10912              :                 {
   10913            0 :                   {
   10914            0 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
   10915            0 :                     tree res = generic_simplify_297 (loc, type, _p0, _p1, captures, NE_EXPR);
   10916            0 :                     if (res) return res;
   10917              :                   }
   10918              :                 }
   10919           71 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
   10920              :                 {
   10921            0 :                   {
   10922            0 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
   10923            0 :                     tree res = generic_simplify_297 (loc, type, _p0, _p1, captures, NE_EXPR);
   10924            0 :                     if (res) return res;
   10925              :                   }
   10926              :                 }
   10927              :               break;
   10928              :             }
   10929       243759 :           default:;
   10930              :           }
   10931       243759 :         if (integer_pow2p (_q21))
   10932              :           {
   10933          658 :             if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
   10934              :               {
   10935            0 :                 {
   10936            0 :                   tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
   10937            0 :                   tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
   10938            0 :                   if (res) return res;
   10939              :                 }
   10940              :               }
   10941              :           }
   10942              :         break;
   10943              :       }
   10944         5612 :     case GE_EXPR:
   10945         5612 :       {
   10946         5612 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10947         5612 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10948         5612 :         if (integer_zerop (_q21))
   10949              :           {
   10950          977 :             switch (TREE_CODE (_p1))
   10951              :               {
   10952            1 :               case GE_EXPR:
   10953            1 :                 {
   10954            1 :                   tree _q50 = TREE_OPERAND (_p1, 0);
   10955            1 :                   tree _q51 = TREE_OPERAND (_p1, 1);
   10956            1 :                   if (integer_zerop (_q51))
   10957              :                     {
   10958            1 :                       {
   10959            1 :                         tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
   10960            1 :                         tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, GE_EXPR, NE_EXPR, LT_EXPR);
   10961            1 :                         if (res) return res;
   10962              :                       }
   10963              :                     }
   10964              :                   break;
   10965              :                 }
   10966            3 :               case LT_EXPR:
   10967            3 :                 {
   10968            3 :                   tree _q50 = TREE_OPERAND (_p1, 0);
   10969            3 :                   tree _q51 = TREE_OPERAND (_p1, 1);
   10970            3 :                   if (integer_zerop (_q51))
   10971              :                     {
   10972            3 :                       {
   10973            3 :                         tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q51, _q20 };
   10974            3 :                         tree res = generic_simplify_300 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR);
   10975            3 :                         if (res) return res;
   10976              :                       }
   10977              :                     }
   10978              :                   break;
   10979              :                 }
   10980              :               default:;
   10981              :               }
   10982              :           }
   10983              :         break;
   10984              :       }
   10985        15899 :     case LT_EXPR:
   10986        15899 :       {
   10987        15899 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10988        15899 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10989        15899 :         if (integer_zerop (_q21))
   10990              :           {
   10991         9011 :             switch (TREE_CODE (_p1))
   10992              :               {
   10993           79 :               case LT_EXPR:
   10994           79 :                 {
   10995           79 :                   tree _q50 = TREE_OPERAND (_p1, 0);
   10996           79 :                   tree _q51 = TREE_OPERAND (_p1, 1);
   10997           79 :                   if (integer_zerop (_q51))
   10998              :                     {
   10999           79 :                       {
   11000           79 :                         tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
   11001           79 :                         tree res = generic_simplify_299 (loc, type, _p0, _p1, captures, LT_EXPR, NE_EXPR, LT_EXPR);
   11002           79 :                         if (res) return res;
   11003              :                       }
   11004              :                     }
   11005              :                   break;
   11006              :                 }
   11007           17 :               case GE_EXPR:
   11008           17 :                 {
   11009           17 :                   tree _q50 = TREE_OPERAND (_p1, 0);
   11010           17 :                   tree _q51 = TREE_OPERAND (_p1, 1);
   11011           17 :                   if (integer_zerop (_q51))
   11012              :                     {
   11013           17 :                       {
   11014           17 :                         tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
   11015           17 :                         tree res = generic_simplify_301 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR);
   11016           17 :                         if (res) return res;
   11017              :                       }
   11018              :                     }
   11019              :                   break;
   11020              :                 }
   11021              :               default:;
   11022              :               }
   11023              :           }
   11024              :         break;
   11025              :       }
   11026     35451865 :     default:;
   11027              :     }
   11028     35451865 :   switch (TREE_CODE (_p1))
   11029              :     {
   11030          446 :     case BIT_IOR_EXPR:
   11031          446 :       {
   11032          446 :         tree _q30 = TREE_OPERAND (_p1, 0);
   11033          446 :         tree _q31 = TREE_OPERAND (_p1, 1);
   11034          446 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
   11035              :           {
   11036            0 :             if (integer_pow2p (_q31))
   11037              :               {
   11038            0 :                 {
   11039            0 :                   tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
   11040            0 :                   tree res = generic_simplify_298 (loc, type, _p0, _p1, captures, NE_EXPR, EQ_EXPR);
   11041            0 :                   if (res) return res;
   11042              :                 }
   11043              :               }
   11044              :           }
   11045              :         break;
   11046              :       }
   11047     35451865 :     default:;
   11048              :     }
   11049     35451865 :   switch (TREE_CODE (_p0))
   11050              :     {
   11051      1305193 :     case BIT_AND_EXPR:
   11052      1305193 :       {
   11053      1305193 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11054      1305193 :         tree _q21 = TREE_OPERAND (_p0, 1);
   11055      1305193 :         switch (TREE_CODE (_q20))
   11056              :           {
   11057       201675 :           CASE_CONVERT:
   11058       201675 :             {
   11059       201675 :               tree _q30 = TREE_OPERAND (_q20, 0);
   11060       201675 :               if (integer_pow2p (_q21))
   11061              :                 {
   11062       101590 :                   if (integer_zerop (_p1))
   11063              :                     {
   11064       101495 :                       {
   11065       101495 :                         tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q21 };
   11066       101495 :                         tree res = generic_simplify_302 (loc, type, _p0, _p1, captures, NE_EXPR, LT_EXPR);
   11067       101495 :                         if (res) return res;
   11068              :                       }
   11069              :                     }
   11070              :                 }
   11071              :               break;
   11072              :             }
   11073      1299707 :           default:;
   11074              :           }
   11075      1299707 :         if (integer_pow2p (_q21))
   11076              :           {
   11077       665942 :             if (integer_zerop (_p1))
   11078              :               {
   11079       662492 :                 {
   11080       662492 :                   tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q20, _q21 };
   11081       662492 :                   tree res = generic_simplify_303 (loc, type, _p0, _p1, captures, NE_EXPR, LT_EXPR);
   11082       662492 :                   if (res) return res;
   11083              :                 }
   11084              :               }
   11085              :           }
   11086              :         break;
   11087              :       }
   11088       243759 :     case BIT_IOR_EXPR:
   11089       243759 :       {
   11090       243759 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11091       243759 :         tree _q21 = TREE_OPERAND (_p0, 1);
   11092       243759 :         switch (TREE_CODE (_q21))
   11093              :           {
   11094          284 :           CASE_CONVERT:
   11095          284 :             {
   11096          284 :               tree _q40 = TREE_OPERAND (_q21, 0);
   11097          284 :               switch (TREE_CODE (_q40))
   11098              :                 {
   11099            0 :                 case NE_EXPR:
   11100            0 :                   {
   11101            0 :                     tree _q50 = TREE_OPERAND (_q40, 0);
   11102            0 :                     tree _q51 = TREE_OPERAND (_q40, 1);
   11103            0 :                     if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
   11104              :                       {
   11105            0 :                         if (integer_zerop (_q51))
   11106              :                           {
   11107            0 :                             if (integer_zerop (_p1))
   11108              :                               {
   11109            0 :                                 {
   11110            0 :                                   tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
   11111            0 :                                   tree res = generic_simplify_304 (loc, type, _p0, _p1, captures, NE_EXPR);
   11112            0 :                                   if (res) return res;
   11113              :                                 }
   11114              :                               }
   11115              :                           }
   11116              :                       }
   11117              :                     break;
   11118              :                   }
   11119              :                 default:;
   11120              :                 }
   11121              :               break;
   11122              :             }
   11123       243759 :           default:;
   11124              :           }
   11125       243759 :         switch (TREE_CODE (_q20))
   11126              :           {
   11127          793 :           CASE_CONVERT:
   11128          793 :             {
   11129          793 :               tree _q30 = TREE_OPERAND (_q20, 0);
   11130          793 :               switch (TREE_CODE (_q30))
   11131              :                 {
   11132            0 :                 case NE_EXPR:
   11133            0 :                   {
   11134            0 :                     tree _q40 = TREE_OPERAND (_q30, 0);
   11135            0 :                     tree _q41 = TREE_OPERAND (_q30, 1);
   11136            0 :                     if (integer_zerop (_q41))
   11137              :                       {
   11138            0 :                         if ((_q21 == _q40 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q40, 0) && types_match (_q21, _q40)))
   11139              :                           {
   11140            0 :                             if (integer_zerop (_p1))
   11141              :                               {
   11142            0 :                                 {
   11143            0 :                                   tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
   11144            0 :                                   tree res = generic_simplify_304 (loc, type, _p0, _p1, captures, NE_EXPR);
   11145            0 :                                   if (res) return res;
   11146              :                                 }
   11147              :                               }
   11148              :                           }
   11149              :                       }
   11150              :                     break;
   11151              :                   }
   11152              :                 default:;
   11153              :                 }
   11154              :               break;
   11155              :             }
   11156       243759 :           default:;
   11157              :           }
   11158       243759 :         switch (TREE_CODE (_q21))
   11159              :           {
   11160           24 :           case NE_EXPR:
   11161           24 :             {
   11162           24 :               tree _q40 = TREE_OPERAND (_q21, 0);
   11163           24 :               tree _q41 = TREE_OPERAND (_q21, 1);
   11164           24 :               if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
   11165              :                 {
   11166            0 :                   if (integer_zerop (_q41))
   11167              :                     {
   11168            0 :                       if (integer_zerop (_p1))
   11169              :                         {
   11170            0 :                           {
   11171            0 :                             tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
   11172            0 :                             tree res = generic_simplify_304 (loc, type, _p0, _p1, captures, NE_EXPR);
   11173            0 :                             if (res) return res;
   11174              :                           }
   11175              :                         }
   11176              :                     }
   11177              :                 }
   11178              :               break;
   11179              :             }
   11180       243759 :           default:;
   11181              :           }
   11182       243759 :         switch (TREE_CODE (_q20))
   11183              :           {
   11184            2 :           case NE_EXPR:
   11185            2 :             {
   11186            2 :               tree _q30 = TREE_OPERAND (_q20, 0);
   11187            2 :               tree _q31 = TREE_OPERAND (_q20, 1);
   11188            2 :               if (integer_zerop (_q31))
   11189              :                 {
   11190            1 :                   if ((_q21 == _q30 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q30, 0) && types_match (_q21, _q30)))
   11191              :                     {
   11192            0 :                       if (integer_zerop (_p1))
   11193              :                         {
   11194            0 :                           {
   11195            0 :                             tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
   11196            0 :                             tree res = generic_simplify_304 (loc, type, _p0, _p1, captures, NE_EXPR);
   11197            0 :                             if (res) return res;
   11198              :                           }
   11199              :                         }
   11200              :                     }
   11201              :                 }
   11202              :               break;
   11203              :             }
   11204              :           default:;
   11205              :           }
   11206              :         break;
   11207              :       }
   11208      5661248 :     CASE_CONVERT:
   11209      5661248 :       {
   11210      5661248 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11211      5661248 :         switch (TREE_CODE (_q20))
   11212              :           {
   11213      4363851 :           case ADDR_EXPR:
   11214      4363851 :             {
   11215      4363851 :               switch (TREE_CODE (_p1))
   11216              :                 {
   11217      4333852 :                 CASE_CONVERT:
   11218      4333852 :                   {
   11219      4333852 :                     tree _q40 = TREE_OPERAND (_p1, 0);
   11220      4333852 :                     switch (TREE_CODE (_q40))
   11221              :                       {
   11222      4333852 :                       case ADDR_EXPR:
   11223      4333852 :                         {
   11224      4333852 :                           {
   11225      4333852 :                             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
   11226      4333852 :                             tree res = generic_simplify_305 (loc, type, _p0, _p1, captures, NE_EXPR);
   11227      4333852 :                             if (res) return res;
   11228              :                           }
   11229           33 :                           break;
   11230              :                         }
   11231              :                       default:;
   11232              :                       }
   11233              :                     break;
   11234              :                   }
   11235        21280 :                 case ADDR_EXPR:
   11236        21280 :                   {
   11237        21280 :                     {
   11238        21280 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   11239        21280 :                       tree res = generic_simplify_305 (loc, type, _p0, _p1, captures, NE_EXPR);
   11240        21280 :                       if (res) return res;
   11241              :                     }
   11242         7935 :                     break;
   11243              :                   }
   11244              :                 default:;
   11245              :                 }
   11246              :               break;
   11247              :             }
   11248              :           default:;
   11249              :           }
   11250              :         break;
   11251              :       }
   11252        66555 :     case ADDR_EXPR:
   11253        66555 :       {
   11254        66555 :         switch (TREE_CODE (_p1))
   11255              :           {
   11256          379 :           CASE_CONVERT:
   11257          379 :             {
   11258          379 :               tree _q30 = TREE_OPERAND (_p1, 0);
   11259          379 :               switch (TREE_CODE (_q30))
   11260              :                 {
   11261          379 :                 case ADDR_EXPR:
   11262          379 :                   {
   11263          379 :                     {
   11264          379 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q30 };
   11265          379 :                       tree res = generic_simplify_306 (loc, type, _p0, _p1, captures, NE_EXPR);
   11266          379 :                       if (res) return res;
   11267              :                     }
   11268          143 :                     break;
   11269              :                   }
   11270              :                 default:;
   11271              :                 }
   11272              :               break;
   11273              :             }
   11274        57478 :           case ADDR_EXPR:
   11275        57478 :             {
   11276        57478 :               {
   11277        57478 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
   11278        57478 :                 tree res = generic_simplify_306 (loc, type, _p0, _p1, captures, NE_EXPR);
   11279        57478 :                 if (res) return res;
   11280              :               }
   11281         4587 :               break;
   11282              :             }
   11283              :           default:;
   11284              :           }
   11285              :         break;
   11286              :       }
   11287     31031560 :     default:;
   11288              :     }
   11289     31031560 :   {
   11290     31031560 :     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   11291     31031560 :     tree res = generic_simplify_307 (loc, type, _p0, _p1, captures, NE_EXPR);
   11292     31031560 :     if (res) return res;
   11293              :   }
   11294     31023205 :   switch (TREE_CODE (_p0))
   11295              :     {
   11296      1314084 :     CASE_CONVERT:
   11297      1314084 :       {
   11298      1314084 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11299      1314084 :         switch (TREE_CODE (_p1))
   11300              :           {
   11301       850473 :           case INTEGER_CST:
   11302       850473 :             {
   11303       850473 :               {
   11304       850473 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
   11305       850473 :                 tree res = generic_simplify_308 (loc, type, _p0, _p1, captures, NE_EXPR);
   11306       850473 :                 if (res) return res;
   11307              :               }
   11308       841494 :               break;
   11309              :             }
   11310      1305105 :           default:;
   11311              :           }
   11312      1305105 :         switch (TREE_CODE (_q20))
   11313              :           {
   11314            8 :           case NE_EXPR:
   11315            8 :             {
   11316            8 :               tree _q30 = TREE_OPERAND (_q20, 0);
   11317            8 :               tree _q31 = TREE_OPERAND (_q20, 1);
   11318            8 :               switch (TREE_CODE (_q31))
   11319              :                 {
   11320            8 :                 case INTEGER_CST:
   11321            8 :                   {
   11322            8 :                     if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
   11323              :                       {
   11324            0 :                         {
   11325            0 :                           tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
   11326            0 :                           tree res = generic_simplify_309 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
   11327            0 :                           if (res) return res;
   11328              :                         }
   11329              :                       }
   11330              :                     break;
   11331              :                   }
   11332              :                 default:;
   11333              :                 }
   11334              :               break;
   11335              :             }
   11336            0 :           case EQ_EXPR:
   11337            0 :             {
   11338            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
   11339            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
   11340            0 :               switch (TREE_CODE (_q31))
   11341              :                 {
   11342            0 :                 case INTEGER_CST:
   11343            0 :                   {
   11344            0 :                     if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
   11345              :                       {
   11346            0 :                         {
   11347            0 :                           tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
   11348            0 :                           tree res = generic_simplify_309 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
   11349            0 :                           if (res) return res;
   11350              :                         }
   11351              :                       }
   11352              :                     break;
   11353              :                   }
   11354              :                 default:;
   11355              :                 }
   11356              :               break;
   11357              :             }
   11358              :           default:;
   11359              :           }
   11360              :         break;
   11361              :       }
   11362     31014226 :     default:;
   11363              :     }
   11364     31014226 :   switch (TREE_CODE (_p1))
   11365              :     {
   11366       529435 :     CASE_CONVERT:
   11367       529435 :       {
   11368       529435 :         tree _q30 = TREE_OPERAND (_p1, 0);
   11369       529435 :         switch (TREE_CODE (_q30))
   11370              :           {
   11371            0 :           case NE_EXPR:
   11372            0 :             {
   11373            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
   11374            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
   11375            0 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
   11376              :                 {
   11377            0 :                   switch (TREE_CODE (_q41))
   11378              :                     {
   11379            0 :                     case INTEGER_CST:
   11380            0 :                       {
   11381            0 :                         {
   11382            0 :                           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
   11383            0 :                           tree res = generic_simplify_309 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
   11384            0 :                           if (res) return res;
   11385              :                         }
   11386            0 :                         break;
   11387              :                       }
   11388              :                     default:;
   11389              :                     }
   11390              :                 }
   11391              :               break;
   11392              :             }
   11393            0 :           case EQ_EXPR:
   11394            0 :             {
   11395            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
   11396            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
   11397            0 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
   11398              :                 {
   11399            0 :                   switch (TREE_CODE (_q41))
   11400              :                     {
   11401            0 :                     case INTEGER_CST:
   11402            0 :                       {
   11403            0 :                         {
   11404            0 :                           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
   11405            0 :                           tree res = generic_simplify_309 (loc, type, _p0, _p1, captures, EQ_EXPR, NE_EXPR);
   11406            0 :                           if (res) return res;
   11407              :                         }
   11408            0 :                         break;
   11409              :                       }
   11410              :                     default:;
   11411              :                     }
   11412              :                 }
   11413              :               break;
   11414              :             }
   11415              :           default:;
   11416              :           }
   11417              :         break;
   11418              :       }
   11419     31014226 :     default:;
   11420              :     }
   11421     31014226 : if (integer_zerop (_p1))
   11422              :   {
   11423     19003933 :     {
   11424     19003933 :       tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
   11425     19003933 :       if (TREE_CODE (TREE_TYPE (captures[0])) == BOOLEAN_TYPE
   11426     19003933 :  && types_match (type, TREE_TYPE (captures[0]))
   11427              : )
   11428              :         {
   11429      3452351 :           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1645;
   11430      3452351 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1645;
   11431      3452351 :           {
   11432      3452351 :             tree res_op0;
   11433      3452351 :             res_op0 = captures[0];
   11434      3452351 :             tree _r;
   11435      3452351 :             _r = non_lvalue_loc (loc, res_op0);
   11436      3452351 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1031, __FILE__, __LINE__, true);
   11437     39445458 :             return _r;
   11438              :           }
   11439     27561875 : next_after_fail1645:;
   11440              :         }
   11441              :     }
   11442              :   }
   11443     27561875 :   switch (TREE_CODE (_p0))
   11444              :     {
   11445      1000171 :     case BIT_AND_EXPR:
   11446      1000171 :       {
   11447      1000171 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11448      1000171 :         tree _q21 = TREE_OPERAND (_p0, 1);
   11449      1000171 :         switch (TREE_CODE (_q21))
   11450              :           {
   11451         2063 :           case VECTOR_CST:
   11452         2063 :             {
   11453         2063 :               if (integer_zerop (_p1))
   11454              :                 {
   11455         2063 :                   {
   11456         2063 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
   11457         2063 :                     const enum tree_code cmp = NE_EXPR;
   11458         2063 :                     const enum tree_code icmp = GT_EXPR;
   11459         2063 :                     {
   11460         2063 :  tree csts = bitmask_inv_cst_vector_p (captures[2]);
   11461         2063 :                         if (csts && (VECTOR_TYPE_P (TREE_TYPE (captures[2])) || single_use (captures[0]))
   11462              : )
   11463              :                           {
   11464           13 :                             {
   11465           13 :  auto optab = VECTOR_TYPE_P (TREE_TYPE (captures[2]))
   11466           13 :  ? optab_vector : optab_default;
   11467           13 :  tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
   11468           13 :                                 if (target_supports_op_p (utype, icmp, optab)
   11469           13 :  || (optimize_vectors_before_lowering_p ()
   11470            7 :  && (!target_supports_op_p (type, cmp, optab)
   11471            0 :  || !target_supports_op_p (type, BIT_AND_EXPR, optab)))
   11472              : )
   11473              :                                   {
   11474            7 :                                     if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
   11475              : )
   11476              :                                       {
   11477            0 :                                         if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1646;
   11478            0 :                                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1646;
   11479            0 :                                         {
   11480            0 :                                           tree res_op0;
   11481            0 :                                           res_op0 = captures[1];
   11482            0 :                                           tree res_op1;
   11483            0 :                                           res_op1 =  csts;
   11484            0 :                                           tree _r;
   11485            0 :                                           _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
   11486            0 :                                           if (TREE_SIDE_EFFECTS (captures[2]))
   11487            0 :                                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   11488            0 :                                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1028, __FILE__, __LINE__, true);
   11489              :                                           return _r;
   11490              :                                         }
   11491       999010 : next_after_fail1646:;
   11492              :                                       }
   11493              :                                     else
   11494              :                                       {
   11495            7 :                                         if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1647;
   11496            7 :                                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1647;
   11497            7 :                                         {
   11498            7 :                                           tree res_op0;
   11499            7 :                                           {
   11500            7 :                                             tree _o1[1], _r1;
   11501            7 :                                             _o1[0] = captures[1];
   11502            7 :                                             if (TREE_TYPE (_o1[0]) != utype)
   11503              :                                               {
   11504            7 :                                                 _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o1[0]);
   11505              :                                               }
   11506              :                                             else
   11507              :                                               _r1 = _o1[0];
   11508            7 :                                             res_op0 = _r1;
   11509              :                                           }
   11510            7 :                                           tree res_op1;
   11511            7 :                                           res_op1 =  csts;
   11512            7 :                                           tree _r;
   11513            7 :                                           _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
   11514            7 :                                           if (TREE_SIDE_EFFECTS (captures[2]))
   11515            0 :                                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   11516            7 :                                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1029, __FILE__, __LINE__, true);
   11517              :                                           return _r;
   11518              :                                         }
   11519       999010 : next_after_fail1647:;
   11520              :                                       }
   11521              :                                   }
   11522              :                             }
   11523              :                           }
   11524              :                     }
   11525              :                   }
   11526              :                 }
   11527              :               break;
   11528              :             }
   11529       800070 :           case INTEGER_CST:
   11530       800070 :             {
   11531       800070 :               if (integer_zerop (_p1))
   11532              :                 {
   11533       766073 :                   {
   11534       766073 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
   11535       766073 :                     const enum tree_code cmp = NE_EXPR;
   11536       766073 :                     const enum tree_code icmp = GT_EXPR;
   11537       766073 :                     {
   11538       766073 :  tree csts = bitmask_inv_cst_vector_p (captures[2]);
   11539       766073 :                         if (csts && (VECTOR_TYPE_P (TREE_TYPE (captures[2])) || single_use (captures[0]))
   11540              : )
   11541              :                           {
   11542         1336 :                             {
   11543         1336 :  auto optab = VECTOR_TYPE_P (TREE_TYPE (captures[2]))
   11544         1336 :  ? optab_vector : optab_default;
   11545         1336 :  tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
   11546         1336 :                                 if (target_supports_op_p (utype, icmp, optab)
   11547         1336 :  || (optimize_vectors_before_lowering_p ()
   11548         1154 :  && (!target_supports_op_p (type, cmp, optab)
   11549            0 :  || !target_supports_op_p (type, BIT_AND_EXPR, optab)))
   11550              : )
   11551              :                                   {
   11552         1154 :                                     if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
   11553              : )
   11554              :                                       {
   11555          990 :                                         if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1648;
   11556          990 :                                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1648;
   11557          990 :                                         {
   11558          990 :                                           tree res_op0;
   11559          990 :                                           res_op0 = captures[1];
   11560          990 :                                           tree res_op1;
   11561          990 :                                           res_op1 =  csts;
   11562          990 :                                           tree _r;
   11563          990 :                                           _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
   11564          990 :                                           if (TREE_SIDE_EFFECTS (captures[2]))
   11565            0 :                                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   11566          990 :                                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1028, __FILE__, __LINE__, true);
   11567              :                                           return _r;
   11568              :                                         }
   11569       999010 : next_after_fail1648:;
   11570              :                                       }
   11571              :                                     else
   11572              :                                       {
   11573          164 :                                         if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1649;
   11574          164 :                                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1649;
   11575          164 :                                         {
   11576          164 :                                           tree res_op0;
   11577          164 :                                           {
   11578          164 :                                             tree _o1[1], _r1;
   11579          164 :                                             _o1[0] = captures[1];
   11580          164 :                                             if (TREE_TYPE (_o1[0]) != utype)
   11581              :                                               {
   11582          164 :                                                 _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o1[0]);
   11583              :                                               }
   11584              :                                             else
   11585              :                                               _r1 = _o1[0];
   11586          164 :                                             res_op0 = _r1;
   11587              :                                           }
   11588          164 :                                           tree res_op1;
   11589          164 :                                           res_op1 =  csts;
   11590          164 :                                           tree _r;
   11591          164 :                                           _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
   11592          164 :                                           if (TREE_SIDE_EFFECTS (captures[2]))
   11593            0 :                                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   11594          164 :                                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1029, __FILE__, __LINE__, true);
   11595              :                                           return _r;
   11596              :                                         }
   11597       999010 : next_after_fail1649:;
   11598              :                                       }
   11599              :                                   }
   11600              :                             }
   11601              :                           }
   11602              :                     }
   11603              :                   }
   11604              :                 }
   11605              :               break;
   11606              :             }
   11607       999010 :           default:;
   11608              :           }
   11609       999010 :         switch (TREE_CODE (_q20))
   11610              :           {
   11611            0 :           case VECTOR_CST:
   11612            0 :             {
   11613            0 :               if (integer_zerop (_p1))
   11614              :                 {
   11615            0 :                   {
   11616            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
   11617            0 :                     const enum tree_code cmp = NE_EXPR;
   11618            0 :                     const enum tree_code icmp = GT_EXPR;
   11619            0 :                     {
   11620            0 :  tree csts = bitmask_inv_cst_vector_p (captures[2]);
   11621            0 :                         if (csts && (VECTOR_TYPE_P (TREE_TYPE (captures[2])) || single_use (captures[0]))
   11622              : )
   11623              :                           {
   11624            0 :                             {
   11625            0 :  auto optab = VECTOR_TYPE_P (TREE_TYPE (captures[2]))
   11626            0 :  ? optab_vector : optab_default;
   11627            0 :  tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
   11628            0 :                                 if (target_supports_op_p (utype, icmp, optab)
   11629            0 :  || (optimize_vectors_before_lowering_p ()
   11630            0 :  && (!target_supports_op_p (type, cmp, optab)
   11631            0 :  || !target_supports_op_p (type, BIT_AND_EXPR, optab)))
   11632              : )
   11633              :                                   {
   11634            0 :                                     if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
   11635              : )
   11636              :                                       {
   11637            0 :                                         if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1650;
   11638            0 :                                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1650;
   11639            0 :                                         {
   11640            0 :                                           tree res_op0;
   11641            0 :                                           res_op0 = captures[1];
   11642            0 :                                           tree res_op1;
   11643            0 :                                           res_op1 =  csts;
   11644            0 :                                           tree _r;
   11645            0 :                                           _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
   11646            0 :                                           if (TREE_SIDE_EFFECTS (captures[2]))
   11647            0 :                                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   11648            0 :                                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1028, __FILE__, __LINE__, true);
   11649              :                                           return _r;
   11650              :                                         }
   11651     39445458 : next_after_fail1650:;
   11652              :                                       }
   11653              :                                     else
   11654              :                                       {
   11655            0 :                                         if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1651;
   11656            0 :                                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1651;
   11657            0 :                                         {
   11658            0 :                                           tree res_op0;
   11659            0 :                                           {
   11660            0 :                                             tree _o1[1], _r1;
   11661            0 :                                             _o1[0] = captures[1];
   11662            0 :                                             if (TREE_TYPE (_o1[0]) != utype)
   11663              :                                               {
   11664            0 :                                                 _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o1[0]);
   11665              :                                               }
   11666              :                                             else
   11667              :                                               _r1 = _o1[0];
   11668            0 :                                             res_op0 = _r1;
   11669              :                                           }
   11670            0 :                                           tree res_op1;
   11671            0 :                                           res_op1 =  csts;
   11672            0 :                                           tree _r;
   11673            0 :                                           _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
   11674            0 :                                           if (TREE_SIDE_EFFECTS (captures[2]))
   11675            0 :                                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   11676            0 :                                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1029, __FILE__, __LINE__, true);
   11677              :                                           return _r;
   11678              :                                         }
   11679     39445458 : next_after_fail1651:;
   11680              :                                       }
   11681              :                                   }
   11682              :                             }
   11683              :                           }
   11684              :                     }
   11685              :                   }
   11686              :                 }
   11687              :               break;
   11688              :             }
   11689            0 :           case INTEGER_CST:
   11690            0 :             {
   11691            0 :               if (integer_zerop (_p1))
   11692              :                 {
   11693            0 :                   {
   11694            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
   11695            0 :                     const enum tree_code cmp = NE_EXPR;
   11696            0 :                     const enum tree_code icmp = GT_EXPR;
   11697            0 :                     {
   11698            0 :  tree csts = bitmask_inv_cst_vector_p (captures[2]);
   11699            0 :                         if (csts && (VECTOR_TYPE_P (TREE_TYPE (captures[2])) || single_use (captures[0]))
   11700              : )
   11701              :                           {
   11702            0 :                             {
   11703            0 :  auto optab = VECTOR_TYPE_P (TREE_TYPE (captures[2]))
   11704            0 :  ? optab_vector : optab_default;
   11705            0 :  tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
   11706            0 :                                 if (target_supports_op_p (utype, icmp, optab)
   11707            0 :  || (optimize_vectors_before_lowering_p ()
   11708            0 :  && (!target_supports_op_p (type, cmp, optab)
   11709            0 :  || !target_supports_op_p (type, BIT_AND_EXPR, optab)))
   11710              : )
   11711              :                                   {
   11712            0 :                                     if (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
   11713              : )
   11714              :                                       {
   11715            0 :                                         if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1652;
   11716            0 :                                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1652;
   11717            0 :                                         {
   11718            0 :                                           tree res_op0;
   11719            0 :                                           res_op0 = captures[1];
   11720            0 :                                           tree res_op1;
   11721            0 :                                           res_op1 =  csts;
   11722            0 :                                           tree _r;
   11723            0 :                                           _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
   11724            0 :                                           if (TREE_SIDE_EFFECTS (captures[2]))
   11725            0 :                                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   11726            0 :                                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1028, __FILE__, __LINE__, true);
   11727              :                                           return _r;
   11728              :                                         }
   11729     39445458 : next_after_fail1652:;
   11730              :                                       }
   11731              :                                     else
   11732              :                                       {
   11733            0 :                                         if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1653;
   11734            0 :                                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1653;
   11735            0 :                                         {
   11736            0 :                                           tree res_op0;
   11737            0 :                                           {
   11738            0 :                                             tree _o1[1], _r1;
   11739            0 :                                             _o1[0] = captures[1];
   11740            0 :                                             if (TREE_TYPE (_o1[0]) != utype)
   11741              :                                               {
   11742            0 :                                                 _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, utype, _o1[0]);
   11743              :                                               }
   11744              :                                             else
   11745              :                                               _r1 = _o1[0];
   11746            0 :                                             res_op0 = _r1;
   11747              :                                           }
   11748            0 :                                           tree res_op1;
   11749            0 :                                           res_op1 =  csts;
   11750            0 :                                           tree _r;
   11751            0 :                                           _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
   11752            0 :                                           if (TREE_SIDE_EFFECTS (captures[2]))
   11753            0 :                                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   11754            0 :                                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1029, __FILE__, __LINE__, true);
   11755              :                                           return _r;
   11756              :                                         }
   11757     39445458 : next_after_fail1653:;
   11758              :                                       }
   11759              :                                   }
   11760              :                             }
   11761              :                           }
   11762              :                     }
   11763              :                   }
   11764              :                 }
   11765              :               break;
   11766              :             }
   11767              :           default:;
   11768              :           }
   11769              :         break;
   11770              :       }
   11771        21154 :     case RSHIFT_EXPR:
   11772        21154 :       {
   11773        21154 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11774        21154 :         tree _q21 = TREE_OPERAND (_p0, 1);
   11775        21154 :         switch (TREE_CODE (_q20))
   11776              :           {
   11777            7 :           case MULT_EXPR:
   11778            7 :             {
   11779            7 :               tree _q30 = TREE_OPERAND (_q20, 0);
   11780            7 :               tree _q31 = TREE_OPERAND (_q20, 1);
   11781            7 :               switch (TREE_CODE (_q30))
   11782              :                 {
   11783            7 :                 CASE_CONVERT:
   11784            7 :                   {
   11785            7 :                     tree _q40 = TREE_OPERAND (_q30, 0);
   11786            7 :                     switch (TREE_CODE (_q31))
   11787              :                       {
   11788            7 :                       CASE_CONVERT:
   11789            7 :                         {
   11790            7 :                           tree _q60 = TREE_OPERAND (_q31, 0);
   11791            7 :                           switch (TREE_CODE (_q21))
   11792              :                             {
   11793            7 :                             case INTEGER_CST:
   11794            7 :                               {
   11795            7 :                                 if (integer_zerop (_p1))
   11796              :                                   {
   11797            7 :                                     {
   11798            7 :                                       tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q30, _q40, _q60, _q21 };
   11799            7 :                                       tree res = generic_simplify_310 (loc, type, _p0, _p1, captures, NE_EXPR, GT_EXPR);
   11800            7 :                                       if (res) return res;
   11801              :                                     }
   11802              :                                   }
   11803              :                                 break;
   11804              :                               }
   11805              :                             default:;
   11806              :                             }
   11807              :                           break;
   11808              :                         }
   11809              :                       default:;
   11810              :                       }
   11811              :                     break;
   11812              :                   }
   11813              :                 default:;
   11814              :                 }
   11815              :               break;
   11816              :             }
   11817              :           default:;
   11818              :           }
   11819              :         break;
   11820              :       }
   11821      1354046 :     case PLUS_EXPR:
   11822      1354046 :       {
   11823      1354046 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11824      1354046 :         tree _q21 = TREE_OPERAND (_p0, 1);
   11825      1354046 :         switch (TREE_CODE (_q21))
   11826              :           {
   11827      1227298 :           case INTEGER_CST:
   11828      1227298 :             {
   11829      1227298 :               switch (TREE_CODE (_p1))
   11830              :                 {
   11831       729653 :                 case INTEGER_CST:
   11832       729653 :                   {
   11833       729653 :                     {
   11834       729653 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
   11835       729653 :                       tree res = generic_simplify_311 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, NE_EXPR);
   11836       729653 :                       if (res) return res;
   11837              :                     }
   11838          361 :                     break;
   11839              :                   }
   11840              :                 default:;
   11841              :                 }
   11842              :               break;
   11843              :             }
   11844              :           default:;
   11845              :           }
   11846              :         break;
   11847              :       }
   11848        68605 :     case MINUS_EXPR:
   11849        68605 :       {
   11850        68605 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11851        68605 :         tree _q21 = TREE_OPERAND (_p0, 1);
   11852        68605 :         switch (TREE_CODE (_q21))
   11853              :           {
   11854          193 :           case INTEGER_CST:
   11855          193 :             {
   11856          193 :               switch (TREE_CODE (_p1))
   11857              :                 {
   11858           72 :                 case INTEGER_CST:
   11859           72 :                   {
   11860           72 :                     {
   11861           72 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
   11862           72 :                       tree res = generic_simplify_311 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, NE_EXPR);
   11863           72 :                       if (res) return res;
   11864              :                     }
   11865           72 :                     break;
   11866              :                   }
   11867              :                 default:;
   11868              :                 }
   11869              :               break;
   11870              :             }
   11871        68605 :           default:;
   11872              :           }
   11873        68605 :         switch (TREE_CODE (_q20))
   11874              :           {
   11875         1901 :           case INTEGER_CST:
   11876         1901 :             {
   11877         1901 :               switch (TREE_CODE (_p1))
   11878              :                 {
   11879           70 :                 case INTEGER_CST:
   11880           70 :                   {
   11881           70 :                     {
   11882           70 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
   11883           70 :                       tree res = generic_simplify_312 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR);
   11884           70 :                       if (res) return res;
   11885              :                     }
   11886            0 :                     break;
   11887              :                   }
   11888              :                 default:;
   11889              :                 }
   11890              :               break;
   11891              :             }
   11892              :           default:;
   11893              :           }
   11894              :         break;
   11895              :       }
   11896      2500118 :     case CALL_EXPR:
   11897      2500118 :       switch (get_call_combined_fn (_p0))
   11898              :         {
   11899          224 :         case CFN_BUILT_IN_CLZ:
   11900          224 :           if (call_expr_nargs (_p0) == 1)
   11901              :     {
   11902          224 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11903          224 :               switch (TREE_CODE (_p1))
   11904              :                 {
   11905          210 :                 case INTEGER_CST:
   11906          210 :                   {
   11907          210 :                     {
   11908          210 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   11909          210 :                       tree res = generic_simplify_313 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR, CFN_BUILT_IN_CLZ);
   11910          210 :                       if (res) return res;
   11911              :                     }
   11912          135 :                     break;
   11913              :                   }
   11914              :                 default:;
   11915              :                 }
   11916              :             }
   11917              :           break;
   11918          246 :         case CFN_BUILT_IN_CTZ:
   11919          246 :           if (call_expr_nargs (_p0) == 1)
   11920              :     {
   11921          246 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11922          246 :               switch (TREE_CODE (_p1))
   11923              :                 {
   11924          200 :                 case INTEGER_CST:
   11925          200 :                   {
   11926          200 :                     {
   11927          200 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   11928          200 :                       tree res = generic_simplify_315 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_CTZ);
   11929          200 :                       if (res) return res;
   11930              :                     }
   11931            0 :                     break;
   11932              :                   }
   11933              :                 default:;
   11934              :                 }
   11935              :             }
   11936              :           break;
   11937           31 :         case CFN_BUILT_IN_FFS:
   11938           31 :           if (call_expr_nargs (_p0) == 1)
   11939              :     {
   11940           31 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11941           31 :               switch (TREE_CODE (_p1))
   11942              :                 {
   11943           11 :                 case INTEGER_CST:
   11944           11 :                   {
   11945           11 :                     {
   11946           11 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   11947           11 :                       tree res = generic_simplify_318 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_FFS);
   11948           11 :                       if (res) return res;
   11949              :                     }
   11950            0 :                     break;
   11951              :                   }
   11952              :                 default:;
   11953              :                 }
   11954              :             }
   11955              :           break;
   11956            0 :         case CFN_REDUC_IOR:
   11957            0 :           if (call_expr_nargs (_p0) == 1)
   11958              :     {
   11959            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11960            0 :               if (integer_zerop (_p1))
   11961              :                 {
   11962            0 :                   {
   11963            0 :                     tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
   11964            0 :                     tree res = generic_simplify_319 (loc, type, _p0, _p1, captures, NE_EXPR);
   11965            0 :                     if (res) return res;
   11966              :                   }
   11967              :                 }
   11968              :             }
   11969              :           break;
   11970            0 :         case CFN_BUILT_IN_FFSIMAX:
   11971            0 :           if (call_expr_nargs (_p0) == 1)
   11972              :     {
   11973            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11974            0 :               switch (TREE_CODE (_p1))
   11975              :                 {
   11976            0 :                 case INTEGER_CST:
   11977            0 :                   {
   11978            0 :                     {
   11979            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   11980            0 :                       tree res = generic_simplify_318 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_FFSIMAX);
   11981            0 :                       if (res) return res;
   11982              :                     }
   11983            0 :                     break;
   11984              :                   }
   11985              :                 default:;
   11986              :                 }
   11987              :             }
   11988              :           break;
   11989           13 :         case CFN_BUILT_IN_POPCOUNT:
   11990           13 :           if (call_expr_nargs (_p0) == 1)
   11991              :     {
   11992           13 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11993           13 :               if (integer_zerop (_p1))
   11994              :                 {
   11995            1 :                   {
   11996            1 :                     tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
   11997            1 :                     tree res = generic_simplify_317 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNT);
   11998            1 :                     if (res) return res;
   11999              :                   }
   12000              :                 }
   12001              :             }
   12002              :           break;
   12003           87 :         case CFN_BUILT_IN_CLZL:
   12004           87 :           if (call_expr_nargs (_p0) == 1)
   12005              :     {
   12006           87 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12007           87 :               switch (TREE_CODE (_p1))
   12008              :                 {
   12009           79 :                 case INTEGER_CST:
   12010           79 :                   {
   12011           79 :                     {
   12012           79 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   12013           79 :                       tree res = generic_simplify_313 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR, CFN_BUILT_IN_CLZL);
   12014           79 :                       if (res) return res;
   12015              :                     }
   12016           43 :                     break;
   12017              :                   }
   12018              :                 default:;
   12019              :                 }
   12020              :             }
   12021              :           break;
   12022           85 :         case CFN_BUILT_IN_CTZL:
   12023           85 :           if (call_expr_nargs (_p0) == 1)
   12024              :     {
   12025           85 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12026           85 :               switch (TREE_CODE (_p1))
   12027              :                 {
   12028           77 :                 case INTEGER_CST:
   12029           77 :                   {
   12030           77 :                     {
   12031           77 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   12032           77 :                       tree res = generic_simplify_315 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_CTZL);
   12033           77 :                       if (res) return res;
   12034              :                     }
   12035           16 :                     break;
   12036              :                   }
   12037              :                 default:;
   12038              :                 }
   12039              :             }
   12040              :           break;
   12041            8 :         case CFN_BUILT_IN_FFSL:
   12042            8 :           if (call_expr_nargs (_p0) == 1)
   12043              :     {
   12044            8 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12045            8 :               switch (TREE_CODE (_p1))
   12046              :                 {
   12047            0 :                 case INTEGER_CST:
   12048            0 :                   {
   12049            0 :                     {
   12050            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   12051            0 :                       tree res = generic_simplify_318 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_FFSL);
   12052            0 :                       if (res) return res;
   12053              :                     }
   12054            0 :                     break;
   12055              :                   }
   12056              :                 default:;
   12057              :                 }
   12058              :             }
   12059              :           break;
   12060           11 :         case CFN_BUILT_IN_POPCOUNTLL:
   12061           11 :           if (call_expr_nargs (_p0) == 1)
   12062              :     {
   12063           11 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12064           11 :               if (integer_zerop (_p1))
   12065              :                 {
   12066            1 :                   {
   12067            1 :                     tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
   12068            1 :                     tree res = generic_simplify_317 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTLL);
   12069            1 :                     if (res) return res;
   12070              :                   }
   12071              :                 }
   12072              :             }
   12073              :           break;
   12074            0 :         case CFN_BUILT_IN_CTZIMAX:
   12075            0 :           if (call_expr_nargs (_p0) == 1)
   12076              :     {
   12077            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12078            0 :               switch (TREE_CODE (_p1))
   12079              :                 {
   12080            0 :                 case INTEGER_CST:
   12081            0 :                   {
   12082            0 :                     {
   12083            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   12084            0 :                       tree res = generic_simplify_315 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_CTZIMAX);
   12085            0 :                       if (res) return res;
   12086              :                     }
   12087            0 :                     break;
   12088              :                   }
   12089              :                 default:;
   12090              :                 }
   12091              :             }
   12092              :           break;
   12093            0 :         case CFN_POPCOUNT:
   12094            0 :           if (call_expr_nargs (_p0) == 1)
   12095              :     {
   12096            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12097            0 :               if (integer_zerop (_p1))
   12098              :                 {
   12099            0 :                   {
   12100            0 :                     tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
   12101            0 :                     tree res = generic_simplify_317 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR, CFN_POPCOUNT);
   12102            0 :                     if (res) return res;
   12103              :                   }
   12104              :                 }
   12105              :             }
   12106              :           break;
   12107            0 :         case CFN_CLZ:
   12108            0 :           if (call_expr_nargs (_p0) == 1)
   12109              :     {
   12110            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12111            0 :               switch (TREE_CODE (_p1))
   12112              :                 {
   12113            0 :                 case INTEGER_CST:
   12114            0 :                   {
   12115            0 :                     {
   12116            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   12117            0 :                       tree res = generic_simplify_313 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR, CFN_CLZ);
   12118            0 :                       if (res) return res;
   12119              :                     }
   12120            0 :                     break;
   12121              :                   }
   12122              :                 default:;
   12123              :                 }
   12124              :             }
   12125            0 :           if (call_expr_nargs (_p0) == 2)
   12126              :     {
   12127            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12128            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   12129            0 :               switch (TREE_CODE (_p1))
   12130              :                 {
   12131            0 :                 case INTEGER_CST:
   12132            0 :                   {
   12133            0 :                     {
   12134            0 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
   12135            0 :                       tree res = generic_simplify_314 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR);
   12136            0 :                       if (res) return res;
   12137              :                     }
   12138            0 :                     break;
   12139              :                   }
   12140              :                 default:;
   12141              :                 }
   12142              :             }
   12143              :           break;
   12144            0 :         case CFN_CTZ:
   12145            0 :           if (call_expr_nargs (_p0) == 1)
   12146              :     {
   12147            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12148            0 :               switch (TREE_CODE (_p1))
   12149              :                 {
   12150            0 :                 case INTEGER_CST:
   12151            0 :                   {
   12152            0 :                     {
   12153            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   12154            0 :                       tree res = generic_simplify_315 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_CTZ);
   12155            0 :                       if (res) return res;
   12156              :                     }
   12157            0 :                     break;
   12158              :                   }
   12159              :                 default:;
   12160              :                 }
   12161              :             }
   12162            0 :           if (call_expr_nargs (_p0) == 2)
   12163              :     {
   12164            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12165            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   12166            0 :               switch (TREE_CODE (_p1))
   12167              :                 {
   12168            0 :                 case INTEGER_CST:
   12169            0 :                   {
   12170            0 :                     {
   12171            0 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
   12172            0 :                       tree res = generic_simplify_316 (loc, type, _p0, _p1, captures, NE_EXPR);
   12173            0 :                       if (res) return res;
   12174              :                     }
   12175            0 :                     break;
   12176              :                   }
   12177              :                 default:;
   12178              :                 }
   12179              :             }
   12180              :           break;
   12181            0 :         case CFN_FFS:
   12182            0 :           if (call_expr_nargs (_p0) == 1)
   12183              :     {
   12184            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12185            0 :               switch (TREE_CODE (_p1))
   12186              :                 {
   12187            0 :                 case INTEGER_CST:
   12188            0 :                   {
   12189            0 :                     {
   12190            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   12191            0 :                       tree res = generic_simplify_318 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_FFS);
   12192            0 :                       if (res) return res;
   12193              :                     }
   12194            0 :                     break;
   12195              :                   }
   12196              :                 default:;
   12197              :                 }
   12198              :             }
   12199              :           break;
   12200            0 :         case CFN_BUILT_IN_POPCOUNTIMAX:
   12201            0 :           if (call_expr_nargs (_p0) == 1)
   12202              :     {
   12203            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12204            0 :               if (integer_zerop (_p1))
   12205              :                 {
   12206            0 :                   {
   12207            0 :                     tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
   12208            0 :                     tree res = generic_simplify_317 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
   12209            0 :                     if (res) return res;
   12210              :                   }
   12211              :                 }
   12212              :             }
   12213              :           break;
   12214            0 :         case CFN_BUILT_IN_CLZIMAX:
   12215            0 :           if (call_expr_nargs (_p0) == 1)
   12216              :     {
   12217            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12218            0 :               switch (TREE_CODE (_p1))
   12219              :                 {
   12220            0 :                 case INTEGER_CST:
   12221            0 :                   {
   12222            0 :                     {
   12223            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   12224            0 :                       tree res = generic_simplify_313 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR, CFN_BUILT_IN_CLZIMAX);
   12225            0 :                       if (res) return res;
   12226              :                     }
   12227            0 :                     break;
   12228              :                   }
   12229              :                 default:;
   12230              :                 }
   12231              :             }
   12232              :           break;
   12233           12 :         case CFN_BUILT_IN_POPCOUNTL:
   12234           12 :           if (call_expr_nargs (_p0) == 1)
   12235              :     {
   12236           12 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12237           12 :               if (integer_zerop (_p1))
   12238              :                 {
   12239            1 :                   {
   12240            1 :                     tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
   12241            1 :                     tree res = generic_simplify_317 (loc, type, _p0, _p1, captures, NE_EXPR, NE_EXPR, CFN_BUILT_IN_POPCOUNTL);
   12242            1 :                     if (res) return res;
   12243              :                   }
   12244              :                 }
   12245              :             }
   12246              :           break;
   12247           52 :         case CFN_BUILT_IN_CLZLL:
   12248           52 :           if (call_expr_nargs (_p0) == 1)
   12249              :     {
   12250           52 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12251           52 :               switch (TREE_CODE (_p1))
   12252              :                 {
   12253           42 :                 case INTEGER_CST:
   12254           42 :                   {
   12255           42 :                     {
   12256           42 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   12257           42 :                       tree res = generic_simplify_313 (loc, type, _p0, _p1, captures, NE_EXPR, GE_EXPR, CFN_BUILT_IN_CLZLL);
   12258           42 :                       if (res) return res;
   12259              :                     }
   12260           18 :                     break;
   12261              :                   }
   12262              :                 default:;
   12263              :                 }
   12264              :             }
   12265              :           break;
   12266           74 :         case CFN_BUILT_IN_CTZLL:
   12267           74 :           if (call_expr_nargs (_p0) == 1)
   12268              :     {
   12269           74 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12270           74 :               switch (TREE_CODE (_p1))
   12271              :                 {
   12272           64 :                 case INTEGER_CST:
   12273           64 :                   {
   12274           64 :                     {
   12275           64 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   12276           64 :                       tree res = generic_simplify_315 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_CTZLL);
   12277           64 :                       if (res) return res;
   12278              :                     }
   12279           16 :                     break;
   12280              :                   }
   12281              :                 default:;
   12282              :                 }
   12283              :             }
   12284              :           break;
   12285           11 :         case CFN_BUILT_IN_FFSLL:
   12286           11 :           if (call_expr_nargs (_p0) == 1)
   12287              :     {
   12288           11 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12289           11 :               switch (TREE_CODE (_p1))
   12290              :                 {
   12291            1 :                 case INTEGER_CST:
   12292            1 :                   {
   12293            1 :                     {
   12294            1 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   12295            1 :                       tree res = generic_simplify_318 (loc, type, _p0, _p1, captures, NE_EXPR, CFN_BUILT_IN_FFSLL);
   12296            1 :                       if (res) return res;
   12297              :                     }
   12298            0 :                     break;
   12299              :                   }
   12300              :                 default:;
   12301              :                 }
   12302              :             }
   12303              :           break;
   12304              :         default:;
   12305              :         }
   12306              :       break;
   12307              :     default:;
   12308              :     }
   12309              :   return NULL_TREE;
   12310              : }
   12311              : 
   12312              : tree
   12313        16253 : generic_simplify_BIT_INSERT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1, tree _p2)
   12314              : {
   12315        16253 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
   12316        16253 :   switch (TREE_CODE (_p1))
   12317              :     {
   12318            0 :     case BIT_FIELD_REF:
   12319            0 :       {
   12320            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
   12321            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
   12322            0 :         tree _q32 = TREE_OPERAND (_p1, 2);
   12323            0 :         {
   12324            0 :           tree captures[6] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32, _p2 };
   12325            0 :           if (VECTOR_TYPE_P (type)
   12326            0 :  && (VECTOR_MODE_P (TYPE_MODE (type))
   12327              :  || optimize_vectors_before_lowering_p ())
   12328            0 :  && operand_equal_p (TYPE_SIZE (TREE_TYPE (captures[0])),
   12329            0 :  TYPE_SIZE (TREE_TYPE (captures[2])), 0)
   12330            0 :  && types_match (TREE_TYPE (TREE_TYPE (captures[0])), TREE_TYPE (captures[1]))
   12331            0 :  && TYPE_VECTOR_SUBPARTS (type).is_constant ()
   12332            0 :  && multiple_p (wi::to_poly_offset (captures[4]),
   12333            0 :  wi::to_poly_offset (TYPE_SIZE (TREE_TYPE (type))))
   12334              : )
   12335              :             {
   12336            0 :               {
   12337            0 :  unsigned HOST_WIDE_INT elsz
   12338            0 :  = tree_to_uhwi (TYPE_SIZE (TREE_TYPE (TREE_TYPE (captures[0]))));
   12339            0 :  poly_uint64 relt = exact_div (tree_to_poly_uint64 (captures[4]), elsz);
   12340            0 :  poly_uint64 ielt = exact_div (tree_to_poly_uint64 (captures[5]), elsz);
   12341            0 :  unsigned nunits = TYPE_VECTOR_SUBPARTS (type).to_constant ();
   12342            0 :  vec_perm_builder builder;
   12343            0 :  builder.new_vector (nunits, nunits, 1);
   12344            0 :  for (unsigned i = 0; i < nunits; ++i)
   12345            0 :  builder.quick_push (known_eq (ielt, i) ? nunits + relt : i);
   12346            0 :  vec_perm_indices sel (builder, 2, nunits);
   12347            0 :                   if (!VECTOR_MODE_P (TYPE_MODE (type))
   12348            0 :  || can_vec_perm_const_p (TYPE_MODE (type),
   12349            0 :  TYPE_MODE (type), sel, false)
   12350              : )
   12351              :                     {
   12352            0 :                       if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail2072;
   12353            0 :                       if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail2072;
   12354            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2072;
   12355            0 :                       {
   12356            0 :                         tree res_op0;
   12357            0 :                         res_op0 = captures[0];
   12358            0 :                         tree res_op1;
   12359            0 :                         {
   12360            0 :                           tree _o1[1], _r1;
   12361            0 :                           _o1[0] = captures[2];
   12362            0 :                           if (TREE_TYPE (_o1[0]) != type)
   12363              :                             {
   12364            0 :                               _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
   12365              :                             }
   12366              :                           else
   12367              :                             _r1 = _o1[0];
   12368            0 :                           res_op1 = _r1;
   12369              :                         }
   12370            0 :                         tree res_op2;
   12371            0 :                         res_op2 =  vec_perm_indices_to_tree (build_vector_type (ssizetype, nunits),
   12372              :  sel);
   12373            0 :                         tree _r;
   12374            0 :                         _r = fold_build3_loc (loc, VEC_PERM_EXPR, type, res_op0, res_op1, res_op2);
   12375            0 :                         if (TREE_SIDE_EFFECTS (captures[3]))
   12376            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
   12377            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1145, __FILE__, __LINE__, true);
   12378            0 :                         return _r;
   12379              :                       }
   12380            0 : next_after_fail2072:;
   12381              :                     }
   12382            0 :               }
   12383              :             }
   12384              :         }
   12385              :         break;
   12386              :       }
   12387        16253 :     default:;
   12388              :     }
   12389        16253 :   switch (TREE_CODE (_p0))
   12390              :     {
   12391            0 :     case VEC_PERM_EXPR:
   12392            0 :       {
   12393            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   12394            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   12395            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
   12396            0 :         switch (TREE_CODE (_q22))
   12397              :           {
   12398            0 :           case VECTOR_CST:
   12399            0 :             {
   12400            0 :               switch (TREE_CODE (_p2))
   12401              :                 {
   12402            0 :                 case INTEGER_CST:
   12403            0 :                   {
   12404            0 :                     {
   12405            0 :                       tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _p2 };
   12406            0 :                       {
   12407            0 :  bool from0 = false;
   12408            0 :  bool from1 = false;
   12409            0 :  tree single_op = NULL_TREE;
   12410            0 :  unsigned elt_size = vector_element_bits (type);
   12411            0 :  unsigned HOST_WIDE_INT nelts;
   12412            0 :  unsigned ins_lane_idx;
   12413            0 :  vec_perm_indices sel;
   12414            0 :  if (TYPE_VECTOR_SUBPARTS (type).is_constant (&nelts)
   12415            0 :  && captures[1] != captures[2]
   12416            0 :  && tree_to_vec_perm_indices (&sel, captures[1], captures[2], captures[3])
   12417            0 :  && tree_to_uhwi (TYPE_SIZE (TREE_TYPE (captures[4]))) == elt_size
   12418            0 :  && multiple_p (tree_to_uhwi (captures[5]), elt_size, &ins_lane_idx))
   12419              :  {
   12420            0 :  for (unsigned i = 0; i < nelts; i++)
   12421              :  {
   12422            0 :  if (i == ins_lane_idx)
   12423            0 :  continue;
   12424            0 :  unsigned HOST_WIDE_INT elt = sel[i].to_constant ();
   12425            0 :  if (elt < nelts)
   12426              :  from0 = true;
   12427              :  else
   12428            0 :  from1 = true;
   12429              :  }
   12430            0 :  if (from0 ^ from1)
   12431              :  {
   12432            0 :  single_op = from0 ? captures[1] : captures[2];
   12433            0 :  vec_perm_indices new_sel;
   12434            0 :  if (!tree_to_vec_perm_indices (&new_sel, single_op, single_op, captures[3])
   12435            0 :  || !can_vec_perm_const_p (TYPE_MODE (type),
   12436            0 :  TYPE_MODE (TREE_TYPE (single_op)),
   12437              :  new_sel,
   12438              :  false))
   12439              :  single_op = NULL_TREE;
   12440            0 :  }
   12441              :  }
   12442            0 :                           if (single_op != NULL_TREE
   12443              : )
   12444              :                             {
   12445            0 :                               if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail2073;
   12446            0 :                               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail2073;
   12447            0 :                               if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail2073;
   12448            0 :                               if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail2073;
   12449            0 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail2073;
   12450            0 :                               {
   12451            0 :                                 tree res_op0;
   12452            0 :                                 {
   12453            0 :                                   tree _o1[3], _r1;
   12454            0 :                                   _o1[0] =  single_op;
   12455            0 :                                   _o1[1] =  single_op;
   12456            0 :                                   _o1[2] = captures[3];
   12457            0 :                                   _r1 = fold_build3_loc (loc, VEC_PERM_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1], _o1[2]);
   12458            0 :                                   res_op0 = _r1;
   12459              :                                 }
   12460            0 :                                 tree res_op1;
   12461            0 :                                 res_op1 = captures[4];
   12462            0 :                                 tree res_op2;
   12463            0 :                                 res_op2 = captures[5];
   12464            0 :                                 tree _r;
   12465            0 :                                 _r = fold_build3_loc (loc, BIT_INSERT_EXPR, type, res_op0, res_op1, res_op2);
   12466            0 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1146, __FILE__, __LINE__, true);
   12467            0 :                                 return _r;
   12468              :                               }
   12469            0 : next_after_fail2073:;
   12470              :                             }
   12471            0 :                       }
   12472              :                     }
   12473            0 :                     break;
   12474              :                   }
   12475              :                 default:;
   12476              :                 }
   12477              :               break;
   12478              :             }
   12479              :           default:;
   12480              :           }
   12481              :         break;
   12482              :       }
   12483              :     default:;
   12484              :     }
   12485              :   return NULL_TREE;
   12486              : }
   12487              : #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.