LCOV - code coverage report
Current view: top level - /mnt/build/buildbot/bld/build-lcov/gcc - generic-match-3.cc (source / functions) Coverage Total Hit
Test: gcc.info Lines: 52.5 % 6849 3597
Test Date: 2026-02-28 14:20:25 Functions: 72.7 % 66 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    175330648 : tree_truth_valued_p (tree t)
      11              : {
      12    175330648 :   const tree type = TREE_TYPE (t);
      13    175330648 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
      14    175330648 :   if (TREE_SIDE_EFFECTS (t)) return false;
      15    169088074 :   {
      16    169088074 :     tree captures[1] ATTRIBUTE_UNUSED = { t };
      17    169088074 :     if (INTEGRAL_TYPE_P (type) && TYPE_PRECISION (type) == 1
      18              : )
      19              :       {
      20      6685384 :         {
      21      6685384 :           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 20, __FILE__, __LINE__, false);
      22      6685384 :           return true;
      23              :         }
      24              :       }
      25              :   }
      26    162402690 :   switch (TREE_CODE (t))
      27              :     {
      28          821 :     case LT_EXPR:
      29          821 :       {
      30          821 :         tree _p0 = TREE_OPERAND (t, 0);
      31          821 :         tree _p1 = TREE_OPERAND (t, 1);
      32          821 :         {
      33          821 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
      34          821 :           {
      35          821 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
      36          821 :             return true;
      37              :           }
      38              :         }
      39          700 :         break;
      40              :       }
      41          700 :     case LE_EXPR:
      42          700 :       {
      43          700 :         tree _p0 = TREE_OPERAND (t, 0);
      44          700 :         tree _p1 = TREE_OPERAND (t, 1);
      45          700 :         {
      46          700 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
      47          700 :           {
      48          700 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
      49          700 :             return true;
      50              :           }
      51              :         }
      52        11559 :         break;
      53              :       }
      54        11559 :     case EQ_EXPR:
      55        11559 :       {
      56        11559 :         tree _p0 = TREE_OPERAND (t, 0);
      57        11559 :         tree _p1 = TREE_OPERAND (t, 1);
      58        11559 :         {
      59        11559 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
      60        11559 :           {
      61        11559 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
      62        11559 :             return true;
      63              :           }
      64              :         }
      65         4510 :         break;
      66              :       }
      67         4510 :     case NE_EXPR:
      68         4510 :       {
      69         4510 :         tree _p0 = TREE_OPERAND (t, 0);
      70         4510 :         tree _p1 = TREE_OPERAND (t, 1);
      71         4510 :         {
      72         4510 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
      73         4510 :           {
      74         4510 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
      75         4510 :             return true;
      76              :           }
      77              :         }
      78          378 :         break;
      79              :       }
      80          378 :     case GE_EXPR:
      81          378 :       {
      82          378 :         tree _p0 = TREE_OPERAND (t, 0);
      83          378 :         tree _p1 = TREE_OPERAND (t, 1);
      84          378 :         {
      85          378 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
      86          378 :           {
      87          378 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
      88          378 :             return true;
      89              :           }
      90              :         }
      91       218857 :         break;
      92              :       }
      93       218857 :     case GT_EXPR:
      94       218857 :       {
      95       218857 :         tree _p0 = TREE_OPERAND (t, 0);
      96       218857 :         tree _p1 = TREE_OPERAND (t, 1);
      97       218857 :         {
      98       218857 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
      99       218857 :           {
     100       218857 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
     101       218857 :             return true;
     102              :           }
     103              :         }
     104       125675 :         break;
     105              :       }
     106       125675 :     case UNORDERED_EXPR:
     107       125675 :       {
     108       125675 :         tree _p0 = TREE_OPERAND (t, 0);
     109       125675 :         tree _p1 = TREE_OPERAND (t, 1);
     110       125675 :         {
     111       125675 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
     112       125675 :           {
     113       125675 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
     114       125675 :             return true;
     115              :           }
     116              :         }
     117           16 :         break;
     118              :       }
     119           16 :     case ORDERED_EXPR:
     120           16 :       {
     121           16 :         tree _p0 = TREE_OPERAND (t, 0);
     122           16 :         tree _p1 = TREE_OPERAND (t, 1);
     123           16 :         {
     124           16 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
     125           16 :           {
     126           16 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
     127           16 :             return true;
     128              :           }
     129              :         }
     130           79 :         break;
     131              :       }
     132           79 :     case UNLT_EXPR:
     133           79 :       {
     134           79 :         tree _p0 = TREE_OPERAND (t, 0);
     135           79 :         tree _p1 = TREE_OPERAND (t, 1);
     136           79 :         {
     137           79 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
     138           79 :           {
     139           79 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
     140           79 :             return true;
     141              :           }
     142              :         }
     143         1166 :         break;
     144              :       }
     145         1166 :     case UNLE_EXPR:
     146         1166 :       {
     147         1166 :         tree _p0 = TREE_OPERAND (t, 0);
     148         1166 :         tree _p1 = TREE_OPERAND (t, 1);
     149         1166 :         {
     150         1166 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
     151         1166 :           {
     152         1166 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
     153         1166 :             return true;
     154              :           }
     155              :         }
     156           79 :         break;
     157              :       }
     158           79 :     case UNGT_EXPR:
     159           79 :       {
     160           79 :         tree _p0 = TREE_OPERAND (t, 0);
     161           79 :         tree _p1 = TREE_OPERAND (t, 1);
     162           79 :         {
     163           79 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
     164           79 :           {
     165           79 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
     166           79 :             return true;
     167              :           }
     168              :         }
     169           79 :         break;
     170              :       }
     171           79 :     case UNGE_EXPR:
     172           79 :       {
     173           79 :         tree _p0 = TREE_OPERAND (t, 0);
     174           79 :         tree _p1 = TREE_OPERAND (t, 1);
     175           79 :         {
     176           79 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
     177           79 :           {
     178           79 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
     179           79 :             return true;
     180              :           }
     181              :         }
     182           95 :         break;
     183              :       }
     184           95 :     case UNEQ_EXPR:
     185           95 :       {
     186           95 :         tree _p0 = TREE_OPERAND (t, 0);
     187           95 :         tree _p1 = TREE_OPERAND (t, 1);
     188           95 :         {
     189           95 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
     190           95 :           {
     191           95 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
     192           95 :             return true;
     193              :           }
     194              :         }
     195           27 :         break;
     196              :       }
     197           27 :     case LTGT_EXPR:
     198           27 :       {
     199           27 :         tree _p0 = TREE_OPERAND (t, 0);
     200           27 :         tree _p1 = TREE_OPERAND (t, 1);
     201           27 :         {
     202           27 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
     203           27 :           {
     204           27 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
     205           27 :             return true;
     206              :           }
     207              :         }
     208          102 :         break;
     209              :       }
     210          102 :     case TRUTH_AND_EXPR:
     211          102 :       {
     212          102 :         tree _p0 = TREE_OPERAND (t, 0);
     213          102 :         tree _p1 = TREE_OPERAND (t, 1);
     214          102 :         {
     215          102 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
     216          102 :           {
     217          102 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
     218          102 :             return true;
     219              :           }
     220              :         }
     221          516 :         break;
     222              :       }
     223          516 :     case TRUTH_ANDIF_EXPR:
     224          516 :       {
     225          516 :         tree _p0 = TREE_OPERAND (t, 0);
     226          516 :         tree _p1 = TREE_OPERAND (t, 1);
     227          516 :         {
     228          516 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
     229          516 :           {
     230          516 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
     231          516 :             return true;
     232              :           }
     233              :         }
     234           43 :         break;
     235              :       }
     236           43 :     case TRUTH_OR_EXPR:
     237           43 :       {
     238           43 :         tree _p0 = TREE_OPERAND (t, 0);
     239           43 :         tree _p1 = TREE_OPERAND (t, 1);
     240           43 :         {
     241           43 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
     242           43 :           {
     243           43 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
     244           43 :             return true;
     245              :           }
     246              :         }
     247         1405 :         break;
     248              :       }
     249         1405 :     case TRUTH_ORIF_EXPR:
     250         1405 :       {
     251         1405 :         tree _p0 = TREE_OPERAND (t, 0);
     252         1405 :         tree _p1 = TREE_OPERAND (t, 1);
     253         1405 :         {
     254         1405 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
     255         1405 :           {
     256         1405 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
     257         1405 :             return true;
     258              :           }
     259              :         }
     260            0 :         break;
     261              :       }
     262            0 :     case TRUTH_XOR_EXPR:
     263            0 :       {
     264            0 :         tree _p0 = TREE_OPERAND (t, 0);
     265            0 :         tree _p1 = TREE_OPERAND (t, 1);
     266            0 :         {
     267            0 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
     268            0 :           {
     269            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
     270            0 :             return true;
     271              :           }
     272              :         }
     273       665796 :         break;
     274              :       }
     275       665796 :     case TRUTH_NOT_EXPR:
     276       665796 :       {
     277       665796 :         tree _p0 = TREE_OPERAND (t, 0);
     278       665796 :         {
     279       665796 :           tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
     280       665796 :           {
     281       665796 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 22, __FILE__, __LINE__, false);
     282       665796 :             return true;
     283              :           }
     284              :         }
     285              :         break;
     286              :       }
     287              :     default:;
     288              :     }
     289              :   return false;
     290              : }
     291              : 
     292              : tree
     293          116 : generic_simplify_35 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     294              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     295              :  const combined_fn ARG_UNUSED (POPCOUNT))
     296              : {
     297          116 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     298          232 :   if (INTEGRAL_TYPE_P (type)
     299          580 :  && (wi::bit_and (widest_int::from (tree_nonzero_bits (captures[1]), UNSIGNED),
     300          464 :  widest_int::from (tree_nonzero_bits (captures[3]), UNSIGNED))
     301          348 :  == 0)
     302              : )
     303              :     {
     304            1 :       {
     305            1 :  tree utype = TREE_TYPE (captures[1]);
     306            1 :  if (TYPE_PRECISION (utype) < TYPE_PRECISION (TREE_TYPE (captures[3])))
     307            0 :  utype = TREE_TYPE (captures[3]);
     308            1 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail117;
     309            1 :           {
     310            1 :             tree res_op0;
     311            1 :             {
     312            1 :               tree _o1[2], _r1;
     313            1 :               {
     314            1 :                 tree _o2[1], _r2;
     315            1 :                 _o2[0] = captures[1];
     316            1 :                 if (TREE_TYPE (_o2[0]) != utype)
     317              :                   {
     318            0 :                     _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
     319              :                   }
     320              :                 else
     321              :                   _r2 = _o2[0];
     322            1 :                 _o1[0] = _r2;
     323              :               }
     324            1 :               {
     325            1 :                 tree _o2[1], _r2;
     326            1 :                 _o2[0] = captures[3];
     327            1 :                 if (TREE_TYPE (_o2[0]) != utype)
     328              :                   {
     329            0 :                     _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
     330              :                   }
     331              :                 else
     332              :                   _r2 = _o2[0];
     333            1 :                 _o1[1] = _r2;
     334              :               }
     335            1 :               _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     336            1 :               res_op0 = _r1;
     337              :             }
     338            1 :             tree _r;
     339            1 :             _r = maybe_build_call_expr_loc (loc, POPCOUNT, type, 1, res_op0);
     340            1 :             if (!_r)
     341            0 :               goto next_after_fail117;
     342            1 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 94, __FILE__, __LINE__, true);
     343            1 :             return _r;
     344              :           }
     345              : next_after_fail117:;
     346              :       }
     347              :     }
     348              :   return NULL_TREE;
     349              : }
     350              : 
     351              : tree
     352            5 : generic_simplify_46 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     353              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     354              : {
     355            5 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     356            5 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail128;
     357            5 :   {
     358            5 :     tree res_op0;
     359            5 :     res_op0 = captures[1];
     360            5 :     tree res_op1;
     361            5 :     {
     362            5 :       tree _o1[1], _r1;
     363            5 :       _o1[0] = captures[2];
     364            5 :       _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
     365            5 :       res_op1 = _r1;
     366              :     }
     367            5 :     tree _r;
     368            5 :     _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
     369            5 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 105, __FILE__, __LINE__, true);
     370              :     return _r;
     371              :   }
     372            0 : next_after_fail128:;
     373            0 :   return NULL_TREE;
     374              : }
     375              : 
     376              : tree
     377          136 : generic_simplify_53 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     378              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     379              : {
     380          136 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     381          136 :   if (!TYPE_SATURATING (type)
     382              : )
     383              :     {
     384          136 :       if ((!FLOAT_TYPE_P (type) || flag_associative_math)
     385          272 :  && !FIXED_POINT_TYPE_P (type)
     386              : )
     387              :         {
     388          136 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail137;
     389          136 :           {
     390          136 :             tree res_op0;
     391          136 :             res_op0 = captures[1];
     392          136 :             tree _r;
     393          136 :             _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
     394          136 :             if (TREE_SIDE_EFFECTS (captures[0]))
     395            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
     396          136 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 113, __FILE__, __LINE__, true);
     397          136 :             return _r;
     398              :           }
     399            0 : next_after_fail137:;
     400              :         }
     401              :     }
     402              :   return NULL_TREE;
     403              : }
     404              : 
     405              : tree
     406       151877 : generic_simplify_59 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     407              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     408              : {
     409       151877 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     410       151877 :   if (!TYPE_SATURATING (type)
     411              : )
     412              :     {
     413       151877 :       if ((!FLOAT_TYPE_P (type) || flag_associative_math)
     414       303754 :  && !FIXED_POINT_TYPE_P (type)
     415              : )
     416              :         {
     417       151877 :           if (INTEGRAL_TYPE_P (type)
     418       151877 :  && TYPE_OVERFLOW_UNDEFINED (type)
     419           49 :  && element_precision (type) <= element_precision (TREE_TYPE (captures[1]))
     420       151926 :  && element_precision (type) <= element_precision (TREE_TYPE (captures[2]))
     421              : )
     422              :             {
     423           49 :               {
     424           49 :  tree utype = unsigned_type_for (type);
     425           49 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail146;
     426           49 :                   {
     427           49 :                     tree res_op0;
     428           49 :                     {
     429           49 :                       tree _o1[2], _r1;
     430           49 :                       {
     431           49 :                         tree _o2[1], _r2;
     432           49 :                         _o2[0] = captures[1];
     433           49 :                         if (TREE_TYPE (_o2[0]) != utype)
     434              :                           {
     435           41 :                             _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
     436              :                           }
     437              :                         else
     438              :                           _r2 = _o2[0];
     439           49 :                         _o1[0] = _r2;
     440              :                       }
     441           49 :                       {
     442           49 :                         tree _o2[1], _r2;
     443           49 :                         _o2[0] = captures[2];
     444           49 :                         if (TREE_TYPE (_o2[0]) != utype)
     445              :                           {
     446           40 :                             _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
     447              :                           }
     448              :                         else
     449              :                           _r2 = _o2[0];
     450           49 :                         _o1[1] = _r2;
     451              :                       }
     452           49 :                       _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     453           49 :                       res_op0 = _r1;
     454              :                     }
     455           49 :                     tree _r;
     456           49 :                     _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
     457           49 :                     if (TREE_SIDE_EFFECTS (captures[3]))
     458            2 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
     459           49 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 122, __FILE__, __LINE__, true);
     460           49 :                     return _r;
     461              :                   }
     462            0 : next_after_fail146:;
     463              :               }
     464              :             }
     465              :           else
     466              :             {
     467       151828 :               if (((element_precision (type) <= element_precision (TREE_TYPE (captures[1])))
     468       151828 :  == (element_precision (type) <= element_precision (TREE_TYPE (captures[2]))))
     469       151828 :  && (element_precision (type) <= element_precision (TREE_TYPE (captures[1]))
     470           53 :  || (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
     471           53 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
     472           53 :  && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))
     473           53 :  && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2]))))
     474              : )
     475              :                 {
     476       135163 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail147;
     477       135163 :                   {
     478       135163 :                     tree res_op0;
     479       135163 :                     {
     480       135163 :                       tree _o1[1], _r1;
     481       135163 :                       _o1[0] = captures[1];
     482       135163 :                       if (TREE_TYPE (_o1[0]) != type)
     483              :                         {
     484       135163 :                           _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
     485              :                         }
     486              :                       else
     487              :                         _r1 = _o1[0];
     488       135163 :                       res_op0 = _r1;
     489              :                     }
     490       135163 :                     tree res_op1;
     491       135163 :                     {
     492       135163 :                       tree _o1[1], _r1;
     493       135163 :                       _o1[0] = captures[2];
     494       135163 :                       if (TREE_TYPE (_o1[0]) != type)
     495              :                         {
     496       135163 :                           _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
     497              :                         }
     498              :                       else
     499              :                         _r1 = _o1[0];
     500       135163 :                       res_op1 = _r1;
     501              :                     }
     502       135163 :                     tree _r;
     503       135163 :                     _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
     504       135163 :                     if (TREE_SIDE_EFFECTS (captures[3]))
     505            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
     506       135163 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 123, __FILE__, __LINE__, true);
     507       135163 :                     return _r;
     508              :                   }
     509            0 : next_after_fail147:;
     510              :                 }
     511              :             }
     512              :         }
     513              :     }
     514              :   return NULL_TREE;
     515              : }
     516              : 
     517              : tree
     518            0 : generic_simplify_86 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     519              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     520              : {
     521            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     522            0 :   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail178;
     523            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail178;
     524            0 :   {
     525            0 :     tree _r;
     526            0 :     _r = captures[2];
     527            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 144, __FILE__, __LINE__, true);
     528              :     return _r;
     529              :   }
     530              : next_after_fail178:;
     531              :   return NULL_TREE;
     532              : }
     533              : 
     534              : tree
     535           93 : generic_simplify_94 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     536              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     537              :  const enum tree_code ARG_UNUSED (op),
     538              :  const enum tree_code ARG_UNUSED (rop))
     539              : {
     540           93 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     541           93 :   if (element_precision (type) <= element_precision (TREE_TYPE (captures[0]))
     542           93 :  && element_precision (type) <= element_precision (TREE_TYPE (captures[1]))
     543              : )
     544              :     {
     545           61 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail186;
     546           61 :       {
     547           61 :         tree res_op0;
     548           61 :         {
     549           61 :           tree _o1[2], _r1;
     550           61 :           {
     551           61 :             tree _o2[1], _r2;
     552           61 :             _o2[0] = captures[0];
     553           61 :             if (TREE_TYPE (_o2[0]) != type)
     554              :               {
     555            1 :                 _r2 = fold_build1_loc (loc, NOP_EXPR, type, _o2[0]);
     556              :               }
     557              :             else
     558              :               _r2 = _o2[0];
     559           61 :             _o1[0] = _r2;
     560              :           }
     561           61 :           {
     562           61 :             tree _o2[1], _r2;
     563           61 :             _o2[0] = captures[1];
     564           61 :             if (TREE_TYPE (_o2[0]) != type)
     565              :               {
     566            0 :                 _r2 = fold_build1_loc (loc, NOP_EXPR, type, _o2[0]);
     567              :               }
     568              :             else
     569              :               _r2 = _o2[0];
     570           61 :             _o1[1] = _r2;
     571              :           }
     572           61 :           _r1 = fold_build2_loc (loc, rop, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     573           61 :           res_op0 = _r1;
     574              :         }
     575           61 :         tree _r;
     576           61 :         _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
     577           61 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 153, __FILE__, __LINE__, true);
     578           61 :         return _r;
     579              :       }
     580            0 : next_after_fail186:;
     581              :     }
     582              :   return NULL_TREE;
     583              : }
     584              : 
     585              : tree
     586       890207 : generic_simplify_106 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     587              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     588              :  const enum tree_code ARG_UNUSED (bitop),
     589              :  const enum tree_code ARG_UNUSED (rbitop))
     590              : {
     591       890207 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     592       890207 :   {
     593       890207 :  bool wascmp;
     594       890207 :       if (bitwise_inverted_equal_p (captures[2], captures[0], wascmp)
     595       890207 :  && (!wascmp || element_precision (type) == 1)
     596              : )
     597              :         {
     598           12 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail202;
     599           12 :           {
     600           12 :             tree res_op0;
     601           12 :             res_op0 = captures[2];
     602           12 :             tree res_op1;
     603           12 :             res_op1 = captures[1];
     604           12 :             tree _r;
     605           12 :             _r = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
     606           12 :             if (TREE_SIDE_EFFECTS (captures[0]))
     607            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
     608           12 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 160, __FILE__, __LINE__, true);
     609           12 :             return _r;
     610              :           }
     611            0 : next_after_fail202:;
     612              :         }
     613              :   }
     614       890195 :   return NULL_TREE;
     615              : }
     616              : 
     617              : tree
     618            0 : generic_simplify_112 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     619              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     620              :  const enum tree_code ARG_UNUSED (bitop),
     621              :  const enum tree_code ARG_UNUSED (rbitop))
     622              : {
     623            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     624            0 :   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail208;
     625            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail208;
     626            0 :   {
     627            0 :     tree res_op0;
     628            0 :     res_op0 = captures[0];
     629            0 :     tree res_op1;
     630            0 :     res_op1 = captures[2];
     631            0 :     tree _r;
     632            0 :     _r = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
     633            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 162, __FILE__, __LINE__, true);
     634              :     return _r;
     635              :   }
     636              : next_after_fail208:;
     637              :   return NULL_TREE;
     638              : }
     639              : 
     640              : tree
     641            7 : generic_simplify_120 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     642              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     643              :  const enum tree_code ARG_UNUSED (op))
     644              : {
     645            7 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     646            7 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail219;
     647            7 :   {
     648            7 :     tree _r;
     649            7 :     _r =  constant_boolean_node (true, type);
     650            7 :     if (TREE_SIDE_EFFECTS (captures[0]))
     651            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
     652            7 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 172, __FILE__, __LINE__, true);
     653              :     return _r;
     654              :   }
     655            0 : next_after_fail219:;
     656            0 :   return NULL_TREE;
     657              : }
     658              : 
     659              : tree
     660           56 : generic_simplify_124 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     661              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     662              :  const enum tree_code ARG_UNUSED (inner_op),
     663              :  const enum tree_code ARG_UNUSED (outer_op))
     664              : {
     665           56 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     666           56 :   {
     667           56 :  bool fail = false;
     668           56 :  wide_int zero_mask_not;
     669           56 :  wide_int C0;
     670           56 :  wide_int cst_emit;
     671           56 :  if (TREE_CODE (captures[1]) == SSA_NAME)
     672            0 :  zero_mask_not = get_nonzero_bits (captures[1]);
     673              :  else
     674              :  fail = true;
     675           56 :  if (inner_op == BIT_XOR_EXPR)
     676              :  {
     677           33 :  C0 = wi::bit_and_not (wi::to_wide (captures[2]), wi::to_wide (captures[3]));
     678           33 :  cst_emit = C0 | wi::to_wide (captures[3]);
     679              :  }
     680              :  else
     681              :  {
     682           23 :  C0 = wi::to_wide (captures[2]);
     683           23 :  cst_emit = C0 ^ wi::to_wide (captures[3]);
     684              :  }
     685           56 :       if (!fail && (C0 & zero_mask_not) == 0
     686              : )
     687              :         {
     688            0 :           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail226;
     689            0 :           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail226;
     690            0 :           if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail226;
     691            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail226;
     692            0 :           {
     693            0 :             tree res_op0;
     694            0 :             res_op0 = captures[1];
     695            0 :             tree res_op1;
     696            0 :             res_op1 =  wide_int_to_tree (type, cst_emit);
     697            0 :             tree _r;
     698            0 :             _r = fold_build2_loc (loc, outer_op, type, res_op0, res_op1);
     699            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 179, __FILE__, __LINE__, true);
     700            0 :             return _r;
     701              :           }
     702           56 : next_after_fail226:;
     703              :         }
     704              :       else
     705              :         {
     706           56 :           if (!fail && (wi::to_wide (captures[3]) & zero_mask_not) == 0
     707              : )
     708              :             {
     709            0 :               if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail227;
     710            0 :               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail227;
     711            0 :               if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail227;
     712            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail227;
     713            0 :               {
     714            0 :                 tree res_op0;
     715            0 :                 res_op0 = captures[1];
     716            0 :                 tree res_op1;
     717            0 :                 res_op1 =  wide_int_to_tree (type, cst_emit);
     718            0 :                 tree _r;
     719            0 :                 _r = fold_build2_loc (loc, inner_op, type, res_op0, res_op1);
     720            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 180, __FILE__, __LINE__, true);
     721            0 :                 return _r;
     722              :               }
     723           56 : next_after_fail227:;
     724              :             }
     725              :         }
     726           56 :   }
     727           56 :   return NULL_TREE;
     728              : }
     729              : 
     730              : tree
     731            4 : generic_simplify_141 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     732              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     733              : {
     734            4 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     735            4 :   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail276;
     736            4 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail276;
     737            4 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail276;
     738            4 :   {
     739            4 :     tree _r;
     740            4 :     _r = captures[0];
     741            4 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 203, __FILE__, __LINE__, true);
     742              :     return _r;
     743              :   }
     744              : next_after_fail276:;
     745              :   return NULL_TREE;
     746              : }
     747              : 
     748              : tree
     749           19 : generic_simplify_143 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     750              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     751              :  const enum tree_code ARG_UNUSED (op))
     752              : {
     753           19 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     754           38 :   if (INTEGRAL_TYPE_P (type)
     755           19 :  && operand_equal_p (captures[2], captures[6], 0)
     756           38 :  && (tree_nonzero_bits (captures[0]) & tree_nonzero_bits (captures[4])) == 0
     757              : )
     758              :     {
     759            0 :       {
     760            0 :  tree t = type;
     761            0 :  if (!TYPE_OVERFLOW_WRAPS (t))
     762            0 :  t = unsigned_type_for (t);
     763            0 :  wide_int c = wi::add (wi::to_wide (captures[3]), wi::to_wide (captures[7]));
     764            0 :           if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail278;
     765            0 :           if (TREE_SIDE_EFFECTS (captures[7])) goto next_after_fail278;
     766            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail278;
     767            0 :           {
     768            0 :             tree res_op0;
     769            0 :             {
     770            0 :               tree _o1[2], _r1;
     771            0 :               {
     772            0 :                 tree _o2[1], _r2;
     773            0 :                 _o2[0] = captures[2];
     774            0 :                 if (TREE_TYPE (_o2[0]) != t)
     775              :                   {
     776            0 :                     _r2 = fold_build1_loc (loc, NOP_EXPR, t, _o2[0]);
     777              :                   }
     778              :                 else
     779              :                   _r2 = _o2[0];
     780            0 :                 _o1[0] = _r2;
     781              :               }
     782            0 :               _o1[1] =  wide_int_to_tree (t, c);
     783            0 :               _r1 = fold_build2_loc (loc, MULT_EXPR, t, _o1[0], _o1[1]);
     784            0 :               res_op0 = _r1;
     785              :             }
     786            0 :             tree _r;
     787            0 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
     788            0 :             if (TREE_SIDE_EFFECTS (captures[6]))
     789            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[6]), _r);
     790            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 166, __FILE__, __LINE__, true);
     791            0 :             return _r;
     792              :           }
     793            0 : next_after_fail278:;
     794            0 :       }
     795              :     }
     796              :   return NULL_TREE;
     797              : }
     798              : 
     799              : tree
     800            0 : generic_simplify_148 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     801              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     802              : {
     803            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     804            0 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail283;
     805            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail283;
     806            0 :   {
     807            0 :     tree _r;
     808            0 :     _r = captures[1];
     809            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 206, __FILE__, __LINE__, true);
     810              :     return _r;
     811              :   }
     812              : next_after_fail283:;
     813              :   return NULL_TREE;
     814              : }
     815              : 
     816              : tree
     817            0 : generic_simplify_151 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     818              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     819              : {
     820            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     821            0 :   if (type_has_mode_precision_p (type)
     822            0 :  && tree_fits_uhwi_p (captures[1])
     823            0 :  && tree_fits_uhwi_p (captures[3])
     824            0 :  && tree_fits_uhwi_p (captures[4])
     825            0 :  && ((~((HOST_WIDE_INT_1U << tree_to_uhwi (captures[1])) - 1)) & tree_to_uhwi (captures[4])) == 0
     826            0 :  && (tree_to_uhwi (captures[1]) + tree_to_uhwi (captures[3])) == TYPE_PRECISION (type)
     827            0 :  && TYPE_UNSIGNED (type)
     828            0 :  && captures[0] == captures[2]
     829              : )
     830              :     {
     831            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail286;
     832            0 :       {
     833            0 :         tree res_op0;
     834            0 :         {
     835            0 :           tree _o1[2], _r1;
     836            0 :           _o1[0] = captures[0];
     837            0 :           _o1[1] = captures[3];
     838            0 :           _r1 = fold_build2_loc (loc, RROTATE_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     839            0 :           res_op0 = _r1;
     840              :         }
     841            0 :         tree res_op1;
     842            0 :         res_op1 = captures[4];
     843            0 :         tree _r;
     844            0 :         _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
     845            0 :         if (TREE_SIDE_EFFECTS (captures[1]))
     846            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
     847            0 :         if (TREE_SIDE_EFFECTS (captures[2]))
     848            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
     849            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 208, __FILE__, __LINE__, true);
     850            0 :         return _r;
     851              :       }
     852            0 : next_after_fail286:;
     853              :     }
     854              :   return NULL_TREE;
     855              : }
     856              : 
     857              : tree
     858            1 : generic_simplify_159 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     859              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     860              : {
     861            1 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     862            1 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail294;
     863            1 :   {
     864            1 :     tree res_op0;
     865            1 :     res_op0 = captures[1];
     866            1 :     tree res_op1;
     867            1 :     {
     868            1 :       tree _o1[1], _r1;
     869            1 :       _o1[0] = captures[2];
     870            1 :       _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
     871            1 :       res_op1 = _r1;
     872              :     }
     873            1 :     tree _r;
     874            1 :     _r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
     875            1 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 216, __FILE__, __LINE__, true);
     876              :     return _r;
     877              :   }
     878            0 : next_after_fail294:;
     879            0 :   return NULL_TREE;
     880              : }
     881              : 
     882              : tree
     883          112 : generic_simplify_168 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     884              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     885              :  const enum tree_code ARG_UNUSED (opo),
     886              :  const enum tree_code ARG_UNUSED (opi))
     887              : {
     888          112 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     889          112 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail303;
     890          112 :   {
     891          112 :     tree res_op0;
     892          112 :     {
     893          112 :       tree _o1[1], _r1;
     894          112 :       _o1[0] = captures[1];
     895          112 :       _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
     896          112 :       res_op0 = _r1;
     897              :     }
     898          112 :     tree res_op1;
     899          112 :     res_op1 = captures[2];
     900          112 :     tree _r;
     901          112 :     _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
     902          112 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 225, __FILE__, __LINE__, true);
     903              :     return _r;
     904              :   }
     905            0 : next_after_fail303:;
     906            0 :   return NULL_TREE;
     907              : }
     908              : 
     909              : tree
     910           18 : generic_simplify_173 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     911              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     912              :  const enum tree_code ARG_UNUSED (cmp))
     913              : {
     914           18 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     915           36 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
     916           18 :  && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
     917           36 :  && types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[3]))
     918              : )
     919              :     {
     920           18 :       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail309;
     921           18 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail309;
     922           18 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail309;
     923           18 :       {
     924           18 :         tree res_op0;
     925           18 :         {
     926           18 :           tree _o1[2], _r1;
     927           18 :           _o1[0] = captures[1];
     928           18 :           _o1[1] = captures[3];
     929           18 :           _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     930           18 :           res_op0 = _r1;
     931              :         }
     932           18 :         tree res_op1;
     933           18 :         res_op1 =  build_zero_cst (TREE_TYPE (captures[1]));
     934           18 :         tree _r;
     935           18 :         _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
     936           18 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 230, __FILE__, __LINE__, true);
     937           18 :         return _r;
     938              :       }
     939              : next_after_fail309:;
     940              :     }
     941              :   return NULL_TREE;
     942              : }
     943              : 
     944              : tree
     945            6 : generic_simplify_185 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     946              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     947              : {
     948            6 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     949            6 :   if (INTEGRAL_TYPE_P (type)
     950            6 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
     951           12 :  && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
     952              : )
     953              :     {
     954            6 :       if (TYPE_UNSIGNED (type)
     955              : )
     956              :         {
     957            5 :           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail322;
     958            5 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail322;
     959            5 :           {
     960            5 :             tree res_op0;
     961            5 :             res_op0 = captures[0];
     962            5 :             tree _r;
     963            5 :             _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
     964            5 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 240, __FILE__, __LINE__, true);
     965            5 :             return _r;
     966              :           }
     967              : next_after_fail322:;
     968              :         }
     969              :       else
     970              :         {
     971            1 :           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail323;
     972            1 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail323;
     973            1 :           {
     974            1 :             tree res_op0;
     975            1 :             res_op0 = captures[0];
     976            1 :             tree _r;
     977            1 :             _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
     978            1 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 241, __FILE__, __LINE__, true);
     979            1 :             return _r;
     980              :           }
     981              : next_after_fail323:;
     982              :         }
     983              :     }
     984              :   return NULL_TREE;
     985              : }
     986              : 
     987              : tree
     988            6 : generic_simplify_197 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     989              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     990              :  const combined_fn ARG_UNUSED (LDEXP))
     991              : {
     992            6 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     993            6 :   if (flag_unsafe_math_optimizations
     994              : )
     995              :     {
     996            6 :       {
     997            6 :  HOST_WIDE_INT tmp = 0;
     998            6 :           if (real_isinteger (&TREE_REAL_CST (captures[0]), &tmp)
     999            6 :  && tmp > 0 && pow2p_hwi (tmp)
    1000              : )
    1001              :             {
    1002            3 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail337;
    1003            3 :               {
    1004            3 :                 tree res_op0;
    1005            3 :                 res_op0 = captures[1];
    1006            3 :                 tree res_op1;
    1007            3 :                 {
    1008            3 :                   tree _o1[2], _r1;
    1009            3 :                   _o1[0] = build_int_cst (integer_type_node,
    1010            6 :  exact_log2 (tmp));
    1011            3 :                   _o1[1] = captures[2];
    1012            3 :                   _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1013            3 :                   res_op1 = _r1;
    1014              :                 }
    1015            3 :                 tree _r;
    1016            3 :                 _r = maybe_build_call_expr_loc (loc, LDEXP, type, 2, res_op0, res_op1);
    1017            3 :                 if (!_r)
    1018            0 :                   goto next_after_fail337;
    1019            3 :                 if (TREE_SIDE_EFFECTS (captures[0]))
    1020            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1021            3 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 252, __FILE__, __LINE__, true);
    1022            3 :                 return _r;
    1023              :               }
    1024            3 : next_after_fail337:;
    1025              :             }
    1026              :       }
    1027              :     }
    1028              :   return NULL_TREE;
    1029              : }
    1030              : 
    1031              : tree
    1032            4 : generic_simplify_209 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1033              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    1034              : {
    1035            4 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1036            8 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    1037            8 :  && TYPE_PRECISION (TREE_TYPE (captures[1])) == 1
    1038              : )
    1039              :     {
    1040            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail352;
    1041            0 :       {
    1042            0 :         tree res_op0;
    1043            0 :         {
    1044            0 :           tree _o1[2], _r1;
    1045            0 :           _o1[0] = captures[1];
    1046            0 :           _o1[1] = captures[2];
    1047            0 :           _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1048            0 :           res_op0 = _r1;
    1049              :         }
    1050            0 :         tree _r;
    1051            0 :         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    1052            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 266, __FILE__, __LINE__, true);
    1053            0 :         return _r;
    1054              :       }
    1055            0 : next_after_fail352:;
    1056              :     }
    1057              :   return NULL_TREE;
    1058              : }
    1059              : 
    1060              : tree
    1061         9220 : generic_simplify_214 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1062              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1063              :  const enum tree_code ARG_UNUSED (neeq),
    1064              :  const enum tree_code ARG_UNUSED (ltge))
    1065              : {
    1066         9220 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1067         9220 :   {
    1068         9220 :  tree itype = signed_type_for (TREE_TYPE (captures[1]));
    1069        18227 :       if (wi::to_wide (captures[2]) == element_precision (itype) - 1
    1070         9220 :  && (!VECTOR_TYPE_P (itype)
    1071           11 :  || (cfun
    1072           11 :  && cfun->after_inlining
    1073            3 :  && VECTOR_BOOLEAN_TYPE_P (type)
    1074            0 :  && (expand_vec_cmp_expr_p (itype, type, ltge)
    1075            0 :  || !expand_vec_cmp_expr_p (TREE_TYPE (captures[0]),
    1076              :  type, neeq))))
    1077              : )
    1078              :         {
    1079          213 :           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail370;
    1080          213 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail370;
    1081          213 :           {
    1082          213 :             tree res_op0;
    1083          213 :             {
    1084          213 :               tree _o1[1], _r1;
    1085          213 :               _o1[0] = captures[1];
    1086          213 :               if (TREE_TYPE (_o1[0]) != itype)
    1087              :                 {
    1088          161 :                   _r1 = fold_build1_loc (loc, NOP_EXPR, itype, _o1[0]);
    1089              :                 }
    1090              :               else
    1091              :                 _r1 = _o1[0];
    1092          213 :               res_op0 = _r1;
    1093              :             }
    1094          213 :             tree res_op1;
    1095          213 :             res_op1 =  build_zero_cst (itype);
    1096          213 :             tree _r;
    1097          213 :             _r = fold_build2_loc (loc, ltge, type, res_op0, res_op1);
    1098          213 :             if (TREE_SIDE_EFFECTS (captures[2]))
    1099            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1100          213 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 284, __FILE__, __LINE__, true);
    1101          213 :             return _r;
    1102              :           }
    1103              : next_after_fail370:;
    1104              :         }
    1105              :   }
    1106              :   return NULL_TREE;
    1107              : }
    1108              : 
    1109              : tree
    1110         1063 : generic_simplify_227 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1111              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1112              :  const enum tree_code ARG_UNUSED (minmax),
    1113              :  const enum tree_code ARG_UNUSED (cmp),
    1114              :  const enum tree_code ARG_UNUSED (out))
    1115              : {
    1116         1063 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1117         2126 :   if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    1118         1208 :  && (!VECTOR_TYPE_P (TREE_TYPE (captures[0]))
    1119            1 :  || (VECTOR_TYPE_P (type)
    1120            0 :  && (!expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, cmp)
    1121            0 :  || expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, out))))
    1122              : )
    1123              :     {
    1124          144 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail383;
    1125          144 :       {
    1126          144 :         tree res_op0;
    1127          144 :         res_op0 = captures[0];
    1128          144 :         tree res_op1;
    1129          144 :         res_op1 = captures[1];
    1130          144 :         tree _r;
    1131          144 :         _r = fold_build2_loc (loc, out, type, res_op0, res_op1);
    1132          144 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 296, __FILE__, __LINE__, true);
    1133          144 :         return _r;
    1134              :       }
    1135            0 : next_after_fail383:;
    1136              :     }
    1137              :   return NULL_TREE;
    1138              : }
    1139              : 
    1140              : tree
    1141          644 : generic_simplify_235 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1142              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1143              :  const enum tree_code ARG_UNUSED (cmp))
    1144              : {
    1145          644 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1146          644 :   if (tree_fits_shwi_p (captures[3])
    1147          644 :  && tree_to_shwi (captures[3]) > 0
    1148         1274 :  && tree_to_shwi (captures[3]) < TYPE_PRECISION (TREE_TYPE (captures[2]))
    1149              : )
    1150              :     {
    1151          630 :       {
    1152          630 :  tree t0 = TREE_TYPE (captures[2]);
    1153          630 :  unsigned int prec = TYPE_PRECISION (t0);
    1154          630 :  wide_int c1 = wi::to_wide (captures[3]);
    1155          630 :  wide_int c2 = wi::to_wide (captures[4]);
    1156          630 :  wide_int c3 = wi::to_wide (captures[5]);
    1157          630 :  wide_int sb = wi::set_bit_in_zero (prec - 1, prec);
    1158          630 :           if ((c2 & c3) != c3
    1159              : )
    1160              :             {
    1161            0 :               if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail396;
    1162            0 :               if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail396;
    1163            0 :               if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail396;
    1164            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail396;
    1165            0 :               {
    1166            0 :                 tree _r;
    1167            0 :                 _r =  constant_boolean_node (cmp == NE_EXPR, type);
    1168            0 :                 if (TREE_SIDE_EFFECTS (captures[2]))
    1169            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1170            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 309, __FILE__, __LINE__, true);
    1171            0 :                 return _r;
    1172              :               }
    1173            0 : next_after_fail396:;
    1174              :             }
    1175              :           else
    1176              :             {
    1177          630 :               if (TYPE_UNSIGNED (t0)
    1178              : )
    1179              :                 {
    1180          508 :                   if ((c3 & wi::arshift (sb, c1 - 1)) != 0
    1181              : )
    1182              :                     {
    1183            0 :                       if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail397;
    1184            0 :                       if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail397;
    1185            0 :                       if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail397;
    1186            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail397;
    1187            0 :                       {
    1188            0 :                         tree _r;
    1189            0 :                         _r =  constant_boolean_node (cmp == NE_EXPR, type);
    1190            0 :                         if (TREE_SIDE_EFFECTS (captures[2]))
    1191            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1192            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 310, __FILE__, __LINE__, true);
    1193            0 :                         return _r;
    1194              :                       }
    1195            0 : next_after_fail397:;
    1196              :                     }
    1197              :                   else
    1198              :                     {
    1199          508 :                       if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail398;
    1200          508 :                       if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail398;
    1201          508 :                       if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail398;
    1202          508 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail398;
    1203          508 :                       {
    1204          508 :                         tree res_op0;
    1205          508 :                         {
    1206          508 :                           tree _o1[2], _r1;
    1207          508 :                           _o1[0] = captures[2];
    1208          508 :                           _o1[1] =  wide_int_to_tree (t0, c2 << c1);
    1209          508 :                           _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1210          508 :                           res_op0 = _r1;
    1211              :                         }
    1212          508 :                         tree res_op1;
    1213          508 :                         res_op1 =  wide_int_to_tree (t0, c3 << c1);
    1214          508 :                         tree _r;
    1215          508 :                         _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1216          508 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 311, __FILE__, __LINE__, true);
    1217          508 :                         return _r;
    1218              :                       }
    1219            0 : next_after_fail398:;
    1220              :                     }
    1221              :                 }
    1222              :               else
    1223              :                 {
    1224          122 :                   {
    1225          122 :  wide_int smask = wi::arshift (sb, c1);
    1226          122 :                       if ((c2 & smask) == 0
    1227              : )
    1228              :                         {
    1229          120 :                           if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail399;
    1230          120 :                           if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail399;
    1231          120 :                           if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail399;
    1232          120 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail399;
    1233          120 :                           {
    1234          120 :                             tree res_op0;
    1235          120 :                             {
    1236          120 :                               tree _o1[2], _r1;
    1237          120 :                               _o1[0] = captures[2];
    1238          120 :                               _o1[1] =  wide_int_to_tree (t0, c2 << c1);
    1239          120 :                               _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1240          120 :                               res_op0 = _r1;
    1241              :                             }
    1242          120 :                             tree res_op1;
    1243          120 :                             res_op1 =  wide_int_to_tree (t0, c3 << c1);
    1244          120 :                             tree _r;
    1245          120 :                             _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1246          120 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 312, __FILE__, __LINE__, true);
    1247          120 :                             return _r;
    1248              :                           }
    1249            0 : next_after_fail399:;
    1250              :                         }
    1251              :                       else
    1252              :                         {
    1253            2 :                           if ((c3 & smask) == 0
    1254              : )
    1255              :                             {
    1256            2 :                               if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail400;
    1257            2 :                               if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail400;
    1258            2 :                               if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail400;
    1259            2 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail400;
    1260            2 :                               {
    1261            2 :                                 tree res_op0;
    1262            2 :                                 {
    1263            2 :                                   tree _o1[2], _r1;
    1264            2 :                                   _o1[0] = captures[2];
    1265            2 :                                   _o1[1] =  wide_int_to_tree (t0, (c2 << c1) | sb);
    1266            2 :                                   _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1267            2 :                                   res_op0 = _r1;
    1268              :                                 }
    1269            2 :                                 tree res_op1;
    1270            2 :                                 res_op1 =  wide_int_to_tree (t0, c3 << c1);
    1271            2 :                                 tree _r;
    1272            2 :                                 _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1273            2 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 313, __FILE__, __LINE__, true);
    1274            2 :                                 return _r;
    1275              :                               }
    1276            0 : next_after_fail400:;
    1277              :                             }
    1278              :                           else
    1279              :                             {
    1280            0 :                               if ((c2 & smask) != (c3 & smask)
    1281              : )
    1282              :                                 {
    1283            0 :                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail401;
    1284            0 :                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail401;
    1285            0 :                                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail401;
    1286            0 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail401;
    1287            0 :                                   {
    1288            0 :                                     tree _r;
    1289            0 :                                     _r =  constant_boolean_node (cmp == NE_EXPR, type);
    1290            0 :                                     if (TREE_SIDE_EFFECTS (captures[2]))
    1291            0 :                                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1292            0 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 314, __FILE__, __LINE__, true);
    1293            0 :                                     return _r;
    1294              :                                   }
    1295            0 : next_after_fail401:;
    1296              :                                 }
    1297              :                               else
    1298              :                                 {
    1299            0 :                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail402;
    1300            0 :                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail402;
    1301            0 :                                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail402;
    1302            0 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail402;
    1303            0 :                                   {
    1304            0 :                                     tree res_op0;
    1305            0 :                                     {
    1306            0 :                                       tree _o1[2], _r1;
    1307            0 :                                       _o1[0] = captures[2];
    1308            0 :                                       _o1[1] =  wide_int_to_tree (t0, (c2 << c1) | sb);
    1309            0 :                                       _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1310            0 :                                       res_op0 = _r1;
    1311              :                                     }
    1312            0 :                                     tree res_op1;
    1313            0 :                                     res_op1 =  wide_int_to_tree (t0, (c3 << c1) | sb);
    1314            0 :                                     tree _r;
    1315            0 :                                     _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1316            0 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 315, __FILE__, __LINE__, true);
    1317            0 :                                     return _r;
    1318              :                                   }
    1319            0 : next_after_fail402:;
    1320              :                                 }
    1321              :                             }
    1322              :                         }
    1323          122 :                   }
    1324              :                 }
    1325              :             }
    1326          630 :       }
    1327              :     }
    1328              :   return NULL_TREE;
    1329              : }
    1330              : 
    1331              : tree
    1332      1110620 : generic_simplify_267 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1333              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1334              :  const enum tree_code ARG_UNUSED (cmp))
    1335              : {
    1336      1110620 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1337      1110620 :   {
    1338      1110620 :  poly_int64 off; tree base;
    1339      1110620 :  tree addr = (TREE_CODE (captures[1]) == SSA_NAME
    1340      1110620 :  ? gimple_assign_rhs1 (SSA_NAME_DEF_STMT (captures[1])) : captures[1]);
    1341      1110620 :       if (SSA_NAME_IS_DEFAULT_DEF (captures[0])
    1342        46952 :  && TREE_CODE (SSA_NAME_VAR (captures[0])) == PARM_DECL
    1343        46794 :  && (base = get_base_address (TREE_OPERAND (addr, 0)))
    1344        46794 :  && TREE_CODE (base) == VAR_DECL
    1345      1113838 :  && auto_var_in_fn_p (base, current_function_decl)
    1346              : )
    1347              :         {
    1348            0 :           if (cmp == NE_EXPR
    1349              : )
    1350              :             {
    1351            0 :               if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail494;
    1352            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail494;
    1353            0 :               {
    1354            0 :                 tree _r;
    1355            0 :                 _r =  constant_boolean_node (true, type);
    1356            0 :                 if (TREE_SIDE_EFFECTS (captures[0]))
    1357            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1358            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 398, __FILE__, __LINE__, true);
    1359            2 :                 return _r;
    1360              :               }
    1361      1110618 : next_after_fail494:;
    1362              :             }
    1363              :           else
    1364              :             {
    1365            0 :               if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail495;
    1366            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail495;
    1367            0 :               {
    1368            0 :                 tree _r;
    1369            0 :                 _r =  constant_boolean_node (false, type);
    1370            0 :                 if (TREE_SIDE_EFFECTS (captures[0]))
    1371            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1372            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 399, __FILE__, __LINE__, true);
    1373            0 :                 return _r;
    1374              :               }
    1375      1110618 : next_after_fail495:;
    1376              :             }
    1377              :         }
    1378              :       else
    1379              :         {
    1380      1110620 :           if ((base = get_addr_base_and_unit_offset (TREE_OPERAND (addr, 0), &off))
    1381      1108232 :  && TREE_CODE (base) == MEM_REF
    1382      1269087 :  && TREE_OPERAND (base, 0) == captures[0]
    1383              : )
    1384              :             {
    1385            2 :               {
    1386            2 :  off += mem_ref_offset (base).force_shwi ();
    1387            2 :                   if (known_ne (off, 0)
    1388              : )
    1389              :                     {
    1390            2 :                       if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail496;
    1391            2 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail496;
    1392            2 :                       {
    1393            2 :                         tree _r;
    1394            2 :                         _r =  constant_boolean_node (cmp == NE_EXPR, type);
    1395            2 :                         if (TREE_SIDE_EFFECTS (captures[0]))
    1396            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1397            2 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 400, __FILE__, __LINE__, true);
    1398            2 :                         return _r;
    1399              :                       }
    1400      1110618 : next_after_fail496:;
    1401              :                     }
    1402              :                   else
    1403              :                     {
    1404            0 :                       if (known_eq (off, 0)
    1405              : )
    1406              :                         {
    1407            0 :                           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail497;
    1408            0 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail497;
    1409            0 :                           {
    1410            0 :                             tree _r;
    1411            0 :                             _r =  constant_boolean_node (cmp == EQ_EXPR, type);
    1412            0 :                             if (TREE_SIDE_EFFECTS (captures[0]))
    1413            0 :                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1414            0 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 401, __FILE__, __LINE__, true);
    1415            0 :                             return _r;
    1416              :                           }
    1417      1110618 : next_after_fail497:;
    1418              :                         }
    1419              :                     }
    1420              :               }
    1421              :             }
    1422              :         }
    1423              :   }
    1424      1110618 :   return NULL_TREE;
    1425              : }
    1426              : 
    1427              : tree
    1428            4 : generic_simplify_280 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1429              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1430              :  const enum tree_code ARG_UNUSED (cmp),
    1431              :  const enum tree_code ARG_UNUSED (ncmp))
    1432              : {
    1433            4 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1434            8 :   if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    1435            4 :  && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
    1436            8 :  && types_match (captures[0], captures[2])
    1437              : )
    1438              :     {
    1439            4 :       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail510;
    1440            4 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail510;
    1441            4 :       {
    1442            4 :         tree res_op0;
    1443            4 :         {
    1444            4 :           tree _o1[2], _r1;
    1445            4 :           _o1[0] = captures[0];
    1446            4 :           _o1[1] = captures[2];
    1447            4 :           _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1448            4 :           res_op0 = _r1;
    1449              :         }
    1450            4 :         tree res_op1;
    1451            4 :         res_op1 = captures[1];
    1452            4 :         tree _r;
    1453            4 :         _r = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
    1454            4 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 413, __FILE__, __LINE__, true);
    1455            4 :         return _r;
    1456              :       }
    1457              : next_after_fail510:;
    1458              :     }
    1459              :   return NULL_TREE;
    1460              : }
    1461              : 
    1462              : tree
    1463      1082456 : generic_simplify_286 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1464              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1465              :  const enum tree_code ARG_UNUSED (cmp))
    1466              : {
    1467      1082456 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1468      1636089 :   if (((POINTER_TYPE_P (TREE_TYPE (captures[0]))
    1469       530650 :  && !FUNC_OR_METHOD_TYPE_P (TREE_TYPE (TREE_TYPE (captures[0])))
    1470       493777 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    1471         9220 :  && !(
    1472              : 1
    1473         9192 :  && TREE_CODE (TREE_TYPE (captures[0])) == REFERENCE_TYPE
    1474           28 :  && (flag_sanitize & (SANITIZE_NULL | SANITIZE_ALIGNMENT))))
    1475      1073276 :  || (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    1476       551677 :  && POINTER_TYPE_P (TREE_TYPE (captures[1]))
    1477         2336 :  && !FUNC_OR_METHOD_TYPE_P (TREE_TYPE (TREE_TYPE (captures[1])))))
    1478      1093524 :  && TYPE_PRECISION (TREE_TYPE (captures[0])) == TYPE_PRECISION (TREE_TYPE (captures[1]))
    1479              : )
    1480              :     {
    1481        10006 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail530;
    1482        10006 :       {
    1483        10006 :         tree res_op0;
    1484        10006 :         res_op0 = captures[0];
    1485        10006 :         tree res_op1;
    1486        10006 :         {
    1487        10006 :           tree _o1[1], _r1;
    1488        10006 :           _o1[0] = captures[1];
    1489        10006 :           if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
    1490              :             {
    1491        10006 :               _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
    1492              :             }
    1493              :           else
    1494              :             _r1 = _o1[0];
    1495        10006 :           res_op1 = _r1;
    1496              :         }
    1497        10006 :         tree _r;
    1498        10006 :         _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1499        10006 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 424, __FILE__, __LINE__, true);
    1500        10006 :         return _r;
    1501              :       }
    1502            0 : next_after_fail530:;
    1503              :     }
    1504              :   return NULL_TREE;
    1505              : }
    1506              : 
    1507              : tree
    1508       593262 : generic_simplify_290 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1509              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1510              :  const enum tree_code ARG_UNUSED (cmp),
    1511              :  const enum tree_code ARG_UNUSED (rcmp))
    1512              : {
    1513       593262 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1514      1186524 :   if (!TREE_OVERFLOW (captures[0]) && !TREE_OVERFLOW (captures[2])
    1515      1186524 :  && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))
    1516              : )
    1517              :     {
    1518         4396 :       {
    1519         4396 :  tree res = int_const_binop (MINUS_EXPR, captures[0], captures[2]);
    1520         4396 :           if (TREE_OVERFLOW (res)
    1521              : )
    1522              :             {
    1523           48 :               if (cmp == NE_EXPR
    1524              : )
    1525              :                 {
    1526            0 :                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail539;
    1527            0 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail539;
    1528            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail539;
    1529            0 :                   {
    1530            0 :                     tree _r;
    1531            0 :                     _r =  constant_boolean_node (true, type);
    1532            0 :                     if (TREE_SIDE_EFFECTS (captures[1]))
    1533            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1534            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 433, __FILE__, __LINE__, true);
    1535            0 :                     return _r;
    1536              :                   }
    1537              : next_after_fail539:;
    1538              :                 }
    1539              :               else
    1540              :                 {
    1541           48 :                   if (cmp == EQ_EXPR
    1542              : )
    1543              :                     {
    1544            0 :                       if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail540;
    1545            0 :                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail540;
    1546            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail540;
    1547            0 :                       {
    1548            0 :                         tree _r;
    1549            0 :                         _r =  constant_boolean_node (false, type);
    1550            0 :                         if (TREE_SIDE_EFFECTS (captures[1]))
    1551            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1552            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 434, __FILE__, __LINE__, true);
    1553            0 :                         return _r;
    1554              :                       }
    1555              : next_after_fail540:;
    1556              :                     }
    1557              :                   else
    1558              :                     {
    1559           48 :                       if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail541;
    1560           48 :                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail541;
    1561           48 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail541;
    1562           48 :                       {
    1563           48 :                         tree _r;
    1564           48 :  bool less = cmp == LE_EXPR || cmp == LT_EXPR;
    1565           48 :  bool ovf_high = wi::lt_p (wi::to_wide (captures[0]), 0,
    1566           48 :  TYPE_SIGN (TREE_TYPE (captures[0])));                  _r = 
    1567           48 :  constant_boolean_node (less == ovf_high, type);
    1568           48 :                         if (TREE_SIDE_EFFECTS (captures[1]))
    1569            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1570           48 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 435, __FILE__, __LINE__, true);
    1571           48 :                         return _r;
    1572              :                       }
    1573              : next_after_fail541:;
    1574              :                     }
    1575              :                 }
    1576              :             }
    1577              :           else
    1578              :             {
    1579         4348 :               if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail542;
    1580         4348 :               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail542;
    1581         4348 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail542;
    1582         4348 :               {
    1583         4348 :                 tree res_op0;
    1584         4348 :                 res_op0 = captures[1];
    1585         4348 :                 tree res_op1;
    1586         4348 :                 res_op1 =  res;
    1587         4348 :                 tree _r;
    1588         4348 :                 _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    1589         4348 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 436, __FILE__, __LINE__, true);
    1590         4348 :                 return _r;
    1591              :               }
    1592              : next_after_fail542:;
    1593              :             }
    1594              :       }
    1595              :     }
    1596              :   else
    1597              :     {
    1598       588866 :       if (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
    1599              : )
    1600              :         {
    1601       588760 :           if (cmp == EQ_EXPR || cmp == NE_EXPR
    1602              : )
    1603              :             {
    1604        36724 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail543;
    1605        36724 :               {
    1606        36724 :                 tree res_op0;
    1607        36724 :                 res_op0 = captures[1];
    1608        36724 :                 tree res_op1;
    1609        36724 :                 {
    1610        36724 :                   tree _o1[2], _r1;
    1611        36724 :                   _o1[0] = captures[0];
    1612        36724 :                   _o1[1] = captures[2];
    1613        36724 :                   _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1614        36724 :                   res_op1 = _r1;
    1615              :                 }
    1616        36724 :                 tree _r;
    1617        36724 :                 _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1618        36724 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 437, __FILE__, __LINE__, true);
    1619        36724 :                 return _r;
    1620              :               }
    1621            0 : next_after_fail543:;
    1622              :             }
    1623              :           else
    1624              :             {
    1625       552036 :               if (cmp == LE_EXPR || cmp == GT_EXPR
    1626              : )
    1627              :                 {
    1628       552036 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail544;
    1629       552036 :                   {
    1630       552036 :                     if (! tree_invariant_p (captures[2])) goto next_after_fail544;
    1631       552036 :                     tree res_op0;
    1632       552036 :                     {
    1633       552036 :                       tree _o1[2], _r1;
    1634       552036 :                       _o1[0] = captures[1];
    1635       552036 :                       {
    1636       552036 :                         tree _o2[2], _r2;
    1637       552036 :                         _o2[0] = unshare_expr (captures[2]);
    1638       552036 :                         _o2[1] = captures[0];
    1639       552036 :                         _r2 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    1640       552036 :                         _o1[1] = _r2;
    1641              :                       }
    1642       552036 :                       _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1643       552036 :                       res_op0 = _r1;
    1644              :                     }
    1645       552036 :                     tree res_op1;
    1646       552036 :                     res_op1 = captures[2];
    1647       552036 :                     tree _r;
    1648       552036 :                     _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1649       552036 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 438, __FILE__, __LINE__, true);
    1650       552036 :                     return _r;
    1651              :                   }
    1652              : next_after_fail544:;
    1653              :                 }
    1654              :               else
    1655              :                 {
    1656            0 :                   if (cmp == LT_EXPR || cmp == GE_EXPR
    1657              : )
    1658              :                     {
    1659            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail545;
    1660            0 :                       {
    1661            0 :                         if (! tree_invariant_p (captures[2])) goto next_after_fail545;
    1662            0 :                         tree res_op0;
    1663            0 :                         {
    1664            0 :                           tree _o1[2], _r1;
    1665            0 :                           _o1[0] = captures[1];
    1666            0 :                           {
    1667            0 :                             tree _o2[2], _r2;
    1668            0 :                             _o2[0] = unshare_expr (captures[2]);
    1669            0 :                             {
    1670            0 :                               tree _o3[2], _r3;
    1671            0 :                               _o3[0] = captures[0];
    1672            0 :                               _o3[1] =  build_one_cst (TREE_TYPE (captures[1]));
    1673            0 :                               _r3 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
    1674            0 :                               _o2[1] = _r3;
    1675              :                             }
    1676            0 :                             _r2 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    1677            0 :                             _o1[1] = _r2;
    1678              :                           }
    1679            0 :                           _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1680            0 :                           res_op0 = _r1;
    1681              :                         }
    1682            0 :                         tree res_op1;
    1683            0 :                         res_op1 = captures[2];
    1684            0 :                         tree _r;
    1685            0 :                         _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1686            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 439, __FILE__, __LINE__, true);
    1687            0 :                         return _r;
    1688              :                       }
    1689              : next_after_fail545:;
    1690              :                     }
    1691              :                 }
    1692              :             }
    1693              :         }
    1694              :       else
    1695              :         {
    1696          106 :           if (!TYPE_UNSIGNED (TREE_TYPE (captures[1]))
    1697          106 :  && TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))
    1698              : )
    1699              :             {
    1700          106 :               if (cmp == EQ_EXPR || cmp == NE_EXPR
    1701              : )
    1702              :                 {
    1703            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail546;
    1704            0 :                   {
    1705            0 :                     tree res_op0;
    1706            0 :                     res_op0 = captures[1];
    1707            0 :                     tree res_op1;
    1708            0 :                     {
    1709            0 :                       tree _o1[2], _r1;
    1710            0 :                       _o1[0] = captures[0];
    1711            0 :                       _o1[1] = captures[2];
    1712            0 :                       _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1713            0 :                       res_op1 = _r1;
    1714              :                     }
    1715            0 :                     tree _r;
    1716            0 :                     _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1717            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 440, __FILE__, __LINE__, true);
    1718            0 :                     return _r;
    1719              :                   }
    1720            0 : next_after_fail546:;
    1721              :                 }
    1722              :               else
    1723              :                 {
    1724          106 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail547;
    1725          106 :                   {
    1726          106 :                     tree res_op0;
    1727          106 :                     {
    1728          106 :                       tree _o1[2], _r1;
    1729          106 :                       _o1[0] = captures[1];
    1730          106 :                       {
    1731          106 :                         tree _o2[2], _r2;
    1732          106 :                         _o2[0] = captures[0];
    1733          106 :                         _o2[1] =  build_one_cst (TREE_TYPE (captures[1]));
    1734          106 :                         _r2 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    1735          106 :                         _o1[1] = _r2;
    1736              :                       }
    1737          106 :                       _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1738          106 :                       res_op0 = _r1;
    1739              :                     }
    1740          106 :                     tree res_op1;
    1741          106 :                     {
    1742          106 :                       tree _o1[1], _r1;
    1743          106 :                       _o1[0] = captures[2];
    1744          106 :                       _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    1745          106 :                       res_op1 = _r1;
    1746              :                     }
    1747          106 :                     tree _r;
    1748          106 :                     _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    1749          106 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 441, __FILE__, __LINE__, true);
    1750          106 :                     return _r;
    1751              :                   }
    1752            0 : next_after_fail547:;
    1753              :                 }
    1754              :             }
    1755              :         }
    1756              :     }
    1757              :   return NULL_TREE;
    1758              : }
    1759              : 
    1760              : tree
    1761            6 : generic_simplify_331 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1762              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1763              :  const combined_fn ARG_UNUSED (SIN),
    1764              :  const combined_fn ARG_UNUSED (COS),
    1765              :  const combined_fn ARG_UNUSED (TAN))
    1766              : {
    1767            6 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1768            6 :   if (flag_unsafe_math_optimizations && canonicalize_math_p ()
    1769              : )
    1770              :     {
    1771            6 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail600;
    1772            6 :       {
    1773            6 :         tree res_op0;
    1774            6 :         res_op0 = captures[1];
    1775            6 :         tree _r;
    1776            6 :         _r = maybe_build_call_expr_loc (loc, TAN, type, 1, res_op0);
    1777            6 :         if (!_r)
    1778            0 :           goto next_after_fail600;
    1779            6 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 492, __FILE__, __LINE__, true);
    1780            6 :         return _r;
    1781              :       }
    1782              : next_after_fail600:;
    1783              :     }
    1784              :   return NULL_TREE;
    1785              : }
    1786              : 
    1787              : tree
    1788            0 : generic_simplify_339 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1789              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    1790              :  const enum tree_code ARG_UNUSED (op),
    1791              :  const combined_fn ARG_UNUSED (bt),
    1792              :  const combined_fn ARG_UNUSED (bf),
    1793              :  const combined_fn ARG_UNUSED (floor),
    1794              :  const combined_fn ARG_UNUSED (ceil))
    1795              : {
    1796            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1797            0 :   if (!HONOR_SIGNED_ZEROS (type) && !HONOR_SIGN_DEPENDENT_ROUNDING (type)
    1798              : )
    1799              :     {
    1800            0 :       if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail608;
    1801            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail608;
    1802            0 :       {
    1803            0 :         tree res_op0;
    1804            0 :         {
    1805            0 :           tree _o1[2], _r1;
    1806            0 :           _o1[0] = captures[1];
    1807            0 :           _o1[1] =  build_real (type, dconsthalf);
    1808            0 :           _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1809            0 :           res_op0 = _r1;
    1810              :         }
    1811            0 :         tree _r;
    1812            0 :         _r = maybe_build_call_expr_loc (loc, floor, type, 1, res_op0);
    1813            0 :         if (!_r)
    1814            0 :           goto next_after_fail608;
    1815            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 500, __FILE__, __LINE__, true);
    1816            0 :         return _r;
    1817              :       }
    1818              : next_after_fail608:;
    1819              :     }
    1820              :   return NULL_TREE;
    1821              : }
    1822              : 
    1823              : tree
    1824           15 : generic_simplify_348 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1825              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    1826              :  const enum tree_code ARG_UNUSED (op))
    1827              : {
    1828           15 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1829           15 :   if (INTEGRAL_TYPE_P (type)
    1830           15 :  && TYPE_PRECISION (type) > 1
    1831           15 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    1832           30 :  && expr_no_side_effects_p (captures[1])
    1833              : )
    1834              :     {
    1835            8 :       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail623;
    1836            8 :       if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail623;
    1837            8 :       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail623;
    1838            8 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail623;
    1839            8 :       {
    1840            8 :         tree res_op0;
    1841            8 :         {
    1842            8 :           tree _o1[2], _r1;
    1843            8 :           {
    1844            8 :             tree _o2[1], _r2;
    1845            8 :             _o2[0] = captures[0];
    1846            8 :             if (TREE_TYPE (_o2[0]) != type)
    1847              :               {
    1848            0 :                 _r2 = fold_build1_loc (loc, NOP_EXPR, type, _o2[0]);
    1849              :               }
    1850              :             else
    1851              :               _r2 = _o2[0];
    1852            8 :             _o1[0] = _r2;
    1853              :           }
    1854            8 :           _o1[1] = captures[1];
    1855            8 :           _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1856            8 :           res_op0 = _r1;
    1857              :         }
    1858            8 :         tree res_op1;
    1859            8 :         res_op1 = captures[2];
    1860            8 :         tree _r;
    1861            8 :         _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
    1862            8 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 514, __FILE__, __LINE__, true);
    1863            8 :         return _r;
    1864              :       }
    1865              : next_after_fail623:;
    1866              :     }
    1867              :   return NULL_TREE;
    1868              : }
    1869              : 
    1870              : tree
    1871            0 : generic_simplify_356 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1872              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    1873              :  const enum tree_code ARG_UNUSED (op))
    1874              : {
    1875            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1876            0 :   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail631;
    1877            0 :   if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail631;
    1878            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail631;
    1879            0 :   {
    1880            0 :     tree _r;
    1881            0 :     _r = captures[2];
    1882            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 522, __FILE__, __LINE__, true);
    1883              :     return _r;
    1884              :   }
    1885              : next_after_fail631:;
    1886              :   return NULL_TREE;
    1887              : }
    1888              : 
    1889              : tree
    1890            6 : generic_simplify_363 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1891              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    1892              :  const enum tree_code ARG_UNUSED (neeq),
    1893              :  const combined_fn ARG_UNUSED (sign))
    1894              : {
    1895            6 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1896            6 :   if (neeq == NE_EXPR
    1897              : )
    1898              :     {
    1899            3 :       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail638;
    1900            3 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail638;
    1901            3 :       {
    1902            3 :         tree res_op0;
    1903            3 :         res_op0 = captures[0];
    1904            3 :         tree _r;
    1905            3 :         _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
    1906            3 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 529, __FILE__, __LINE__, true);
    1907            3 :         return _r;
    1908              :       }
    1909              : next_after_fail638:;
    1910              :     }
    1911              :   else
    1912              :     {
    1913            3 :       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail639;
    1914            3 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail639;
    1915            3 :       {
    1916            3 :         tree res_op0;
    1917            3 :         {
    1918            3 :           tree _o1[1], _r1;
    1919            3 :           _o1[0] = captures[0];
    1920            3 :           _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    1921            3 :           res_op0 = _r1;
    1922              :         }
    1923            3 :         tree _r;
    1924            3 :         _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    1925            3 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 530, __FILE__, __LINE__, true);
    1926            3 :         return _r;
    1927              :       }
    1928              : next_after_fail639:;
    1929              :     }
    1930              :   return NULL_TREE;
    1931              : }
    1932              : 
    1933              : tree
    1934        83707 : generic_simplify_374 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1935              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1936              :  const enum tree_code ARG_UNUSED (op))
    1937              : {
    1938        83707 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1939       167414 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    1940        83707 :  && TYPE_UNSIGNED (TREE_TYPE (captures[1]))
    1941       167414 :  && wi::only_sign_bit_p (wi::to_wide (captures[1]))
    1942              : )
    1943              :     {
    1944            5 :       {
    1945            5 :  tree stype = signed_type_for (TREE_TYPE (captures[1]));
    1946            5 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail654;
    1947            5 :           {
    1948            5 :             tree res_op0;
    1949            5 :             {
    1950            5 :               tree _o1[1], _r1;
    1951            5 :               _o1[0] = captures[0];
    1952            5 :               if (TREE_TYPE (_o1[0]) != stype)
    1953              :                 {
    1954            5 :                   _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
    1955              :                 }
    1956              :               else
    1957              :                 _r1 = _o1[0];
    1958            5 :               res_op0 = _r1;
    1959              :             }
    1960            5 :             tree res_op1;
    1961            5 :             {
    1962            5 :               tree _o1[1], _r1;
    1963            5 :               _o1[0] = captures[2];
    1964            5 :               if (TREE_TYPE (_o1[0]) != stype)
    1965              :                 {
    1966            5 :                   _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
    1967              :                 }
    1968              :               else
    1969              :                 _r1 = _o1[0];
    1970            5 :               res_op1 = _r1;
    1971              :             }
    1972            5 :             tree _r;
    1973            5 :             _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
    1974            5 :             if (TREE_SIDE_EFFECTS (captures[1]))
    1975            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1976            5 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 544, __FILE__, __LINE__, true);
    1977            5 :             return _r;
    1978              :           }
    1979            0 : next_after_fail654:;
    1980              :       }
    1981              :     }
    1982              :   return NULL_TREE;
    1983              : }
    1984              : 
    1985              : tree
    1986      1251752 : generic_simplify_385 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1987              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1988              :  const enum tree_code ARG_UNUSED (cmp))
    1989              : {
    1990      1251752 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1991      2503504 :   if ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
    1992          386 :  || POINTER_TYPE_P (TREE_TYPE (captures[2]))
    1993           11 :  || VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[2])))
    1994      2503504 :  && tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
    1995              : )
    1996              :     {
    1997      1080398 :       {
    1998      1080398 :  tree cst = uniform_integer_cst_p (captures[2]);
    1999      1080398 :  tree arg1_type = TREE_TYPE (cst);
    2000      1080398 :  unsigned int prec = TYPE_PRECISION (arg1_type);
    2001      1080398 :  wide_int max = wi::max_value (arg1_type);
    2002      1080398 :  wide_int signed_max = wi::max_value (prec, SIGNED);
    2003      1080398 :  wide_int min = wi::min_value (arg1_type);
    2004      1080398 :           if (wi::to_wide (cst) == max
    2005              : )
    2006              :             {
    2007          671 :               if (cmp == GT_EXPR
    2008              : )
    2009              :                 {
    2010          448 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail668;
    2011          448 :                   {
    2012          448 :                     tree _r;
    2013          448 :                     _r =  constant_boolean_node (false, type);
    2014          448 :                     if (TREE_SIDE_EFFECTS (captures[1]))
    2015            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2016          448 :                     if (TREE_SIDE_EFFECTS (captures[2]))
    2017            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2018          448 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 558, __FILE__, __LINE__, true);
    2019          448 :                     return _r;
    2020              :                   }
    2021            0 : next_after_fail668:;
    2022              :                 }
    2023              :               else
    2024              :                 {
    2025          223 :                   if (cmp == GE_EXPR
    2026              : )
    2027              :                     {
    2028            0 :                       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail669;
    2029            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail669;
    2030            0 :                       {
    2031            0 :                         tree res_op0;
    2032            0 :                         res_op0 = captures[0];
    2033            0 :                         tree res_op1;
    2034            0 :                         res_op1 = captures[2];
    2035            0 :                         tree _r;
    2036            0 :                         _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
    2037            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 559, __FILE__, __LINE__, true);
    2038            0 :                         return _r;
    2039              :                       }
    2040      1017671 : next_after_fail669:;
    2041              :                     }
    2042              :                   else
    2043              :                     {
    2044          223 :                       if (cmp == LE_EXPR
    2045              : )
    2046              :                         {
    2047          223 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail670;
    2048          223 :                           {
    2049          223 :                             tree _r;
    2050          223 :                             _r =  constant_boolean_node (true, type);
    2051          223 :                             if (TREE_SIDE_EFFECTS (captures[1]))
    2052            0 :                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2053          223 :                             if (TREE_SIDE_EFFECTS (captures[2]))
    2054            0 :                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2055          223 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 560, __FILE__, __LINE__, true);
    2056          223 :                             return _r;
    2057              :                           }
    2058            0 : next_after_fail670:;
    2059              :                         }
    2060              :                       else
    2061              :                         {
    2062            0 :                           if (cmp == LT_EXPR
    2063              : )
    2064              :                             {
    2065            0 :                               if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail671;
    2066            0 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail671;
    2067            0 :                               {
    2068            0 :                                 tree res_op0;
    2069            0 :                                 res_op0 = captures[0];
    2070            0 :                                 tree res_op1;
    2071            0 :                                 res_op1 = captures[2];
    2072            0 :                                 tree _r;
    2073            0 :                                 _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    2074            0 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 561, __FILE__, __LINE__, true);
    2075            0 :                                 return _r;
    2076              :                               }
    2077      1017671 : next_after_fail671:;
    2078              :                             }
    2079              :                         }
    2080              :                     }
    2081              :                 }
    2082              :             }
    2083              :           else
    2084              :             {
    2085      1079727 :               if (wi::to_wide (cst) == min
    2086              : )
    2087              :                 {
    2088        56867 :                   if (cmp == LT_EXPR
    2089              : )
    2090              :                     {
    2091         2802 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail672;
    2092         2802 :                       {
    2093         2802 :                         tree _r;
    2094         2802 :                         _r =  constant_boolean_node (false, type);
    2095         2802 :                         if (TREE_SIDE_EFFECTS (captures[1]))
    2096            6 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2097         2802 :                         if (TREE_SIDE_EFFECTS (captures[2]))
    2098            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2099         2802 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 562, __FILE__, __LINE__, true);
    2100         2802 :                         return _r;
    2101              :                       }
    2102            0 : next_after_fail672:;
    2103              :                     }
    2104              :                   else
    2105              :                     {
    2106        54065 :                       if (cmp == LE_EXPR
    2107              : )
    2108              :                         {
    2109        14851 :                           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail673;
    2110        13733 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail673;
    2111        13733 :                           {
    2112        13733 :                             tree res_op0;
    2113        13733 :                             res_op0 = captures[0];
    2114        13733 :                             tree res_op1;
    2115        13733 :                             res_op1 = captures[2];
    2116        13733 :                             tree _r;
    2117        13733 :                             _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
    2118        13733 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 563, __FILE__, __LINE__, true);
    2119        13733 :                             return _r;
    2120              :                           }
    2121      1017671 : next_after_fail673:;
    2122              :                         }
    2123              :                       else
    2124              :                         {
    2125        39214 :                           if (cmp == GE_EXPR
    2126              : )
    2127              :                             {
    2128         8108 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail674;
    2129         8108 :                               {
    2130         8108 :                                 tree _r;
    2131         8108 :                                 _r =  constant_boolean_node (true, type);
    2132         8108 :                                 if (TREE_SIDE_EFFECTS (captures[1]))
    2133           51 :                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2134         8108 :                                 if (TREE_SIDE_EFFECTS (captures[2]))
    2135            0 :                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2136         8108 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 564, __FILE__, __LINE__, true);
    2137         8108 :                                 return _r;
    2138              :                               }
    2139            0 : next_after_fail674:;
    2140              :                             }
    2141              :                           else
    2142              :                             {
    2143        31106 :                               if (cmp == GT_EXPR
    2144              : )
    2145              :                                 {
    2146        31106 :                                   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail675;
    2147        25516 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail675;
    2148        25516 :                                   {
    2149        25516 :                                     tree res_op0;
    2150        25516 :                                     res_op0 = captures[0];
    2151        25516 :                                     tree res_op1;
    2152        25516 :                                     res_op1 = captures[2];
    2153        25516 :                                     tree _r;
    2154        25516 :                                     _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    2155        25516 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 565, __FILE__, __LINE__, true);
    2156        25516 :                                     return _r;
    2157              :                                   }
    2158      1017671 : next_after_fail675:;
    2159              :                                 }
    2160              :                             }
    2161              :                         }
    2162              :                     }
    2163              :                 }
    2164              :               else
    2165              :                 {
    2166      1022860 :                   if (wi::to_wide (cst) == max - 1
    2167              : )
    2168              :                     {
    2169         6363 :                       if (cmp == GT_EXPR
    2170              : )
    2171              :                         {
    2172         1404 :                           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail676;
    2173         1404 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail676;
    2174         1404 :                           {
    2175         1404 :                             tree res_op0;
    2176         1404 :                             res_op0 = captures[0];
    2177         1404 :                             tree res_op1;
    2178         1404 :                             res_op1 =  build_uniform_cst (TREE_TYPE (captures[2]),
    2179         1404 :  wide_int_to_tree (TREE_TYPE (cst),
    2180         1404 :  wi::to_wide (cst)
    2181         2808 :  + 1));
    2182         1404 :                             tree _r;
    2183         1404 :                             _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
    2184         1404 :                             if (TREE_SIDE_EFFECTS (captures[2]))
    2185            0 :                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2186         1404 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 566, __FILE__, __LINE__, true);
    2187         1404 :                             return _r;
    2188              :                           }
    2189      1017671 : next_after_fail676:;
    2190              :                         }
    2191              :                       else
    2192              :                         {
    2193         4959 :                           if (cmp == LE_EXPR
    2194              : )
    2195              :                             {
    2196         4959 :                               if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail677;
    2197         4959 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail677;
    2198         4959 :                               {
    2199         4959 :                                 tree res_op0;
    2200         4959 :                                 res_op0 = captures[0];
    2201         4959 :                                 tree res_op1;
    2202         4959 :                                 res_op1 =  build_uniform_cst (TREE_TYPE (captures[2]),
    2203         4959 :  wide_int_to_tree (TREE_TYPE (cst),
    2204         4959 :  wi::to_wide (cst)
    2205         9918 :  + 1));
    2206         4959 :                                 tree _r;
    2207         4959 :                                 _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    2208         4959 :                                 if (TREE_SIDE_EFFECTS (captures[2]))
    2209            0 :                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2210         4959 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 567, __FILE__, __LINE__, true);
    2211         4959 :                                 return _r;
    2212              :                               }
    2213      1017671 : next_after_fail677:;
    2214              :                             }
    2215              :                         }
    2216              :                     }
    2217              :                   else
    2218              :                     {
    2219      1016497 :                       if (wi::to_wide (cst) == min + 1
    2220              : )
    2221              :                         {
    2222        54170 :                           if (cmp == GE_EXPR
    2223              : )
    2224              :                             {
    2225         2308 :                               if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail678;
    2226         2308 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail678;
    2227         2308 :                               {
    2228         2308 :                                 tree res_op0;
    2229         2308 :                                 res_op0 = captures[0];
    2230         2308 :                                 tree res_op1;
    2231         2308 :                                 res_op1 =  build_uniform_cst (TREE_TYPE (captures[2]),
    2232         2308 :  wide_int_to_tree (TREE_TYPE (cst),
    2233         2308 :  wi::to_wide (cst)
    2234         4616 :  - 1));
    2235         2308 :                                 tree _r;
    2236         2308 :                                 _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    2237         2308 :                                 if (TREE_SIDE_EFFECTS (captures[2]))
    2238            0 :                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2239         2308 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 568, __FILE__, __LINE__, true);
    2240         2308 :                                 return _r;
    2241              :                               }
    2242      1017671 : next_after_fail678:;
    2243              :                             }
    2244              :                           else
    2245              :                             {
    2246        51862 :                               if (cmp == LT_EXPR
    2247              : )
    2248              :                                 {
    2249          341 :                                   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail679;
    2250          341 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail679;
    2251          341 :                                   {
    2252          341 :                                     tree res_op0;
    2253          341 :                                     res_op0 = captures[0];
    2254          341 :                                     tree res_op1;
    2255          341 :                                     res_op1 =  build_uniform_cst (TREE_TYPE (captures[2]),
    2256          341 :  wide_int_to_tree (TREE_TYPE (cst),
    2257          341 :  wi::to_wide (cst)
    2258          682 :  - 1));
    2259          341 :                                     tree _r;
    2260          341 :                                     _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
    2261          341 :                                     if (TREE_SIDE_EFFECTS (captures[2]))
    2262            0 :                                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2263          341 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 569, __FILE__, __LINE__, true);
    2264          341 :                                     return _r;
    2265              :                                   }
    2266      1017671 : next_after_fail679:;
    2267              :                                 }
    2268              :                             }
    2269              :                         }
    2270              :                       else
    2271              :                         {
    2272       962327 :                           if (wi::to_wide (cst) == signed_max
    2273         2885 :  && TYPE_UNSIGNED (arg1_type)
    2274         2885 :  && TYPE_MODE (arg1_type) != BLKmode
    2275       962327 :  && prec == GET_MODE_PRECISION (SCALAR_INT_TYPE_MODE (arg1_type))
    2276       965212 :  && INTEGRAL_TYPE_P (arg1_type)
    2277              : )
    2278              :                             {
    2279         2885 :                               if (cmp == LE_EXPR || cmp == GT_EXPR
    2280              : )
    2281              :                                 {
    2282         2885 :                                   {
    2283         2885 :  tree st = signed_type_for (TREE_TYPE (captures[2]));
    2284         2885 :                                       if (cst == captures[2] && cmp == LE_EXPR
    2285              : )
    2286              :                                         {
    2287         2848 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail680;
    2288         2848 :                                           {
    2289         2848 :                                             tree res_op0;
    2290         2848 :                                             {
    2291         2848 :                                               tree _o1[1], _r1;
    2292         2848 :                                               _o1[0] = captures[1];
    2293         2848 :                                               if (TREE_TYPE (_o1[0]) != st)
    2294              :                                                 {
    2295         2844 :                                                   _r1 = fold_build1_loc (loc, NOP_EXPR, st, _o1[0]);
    2296              :                                                 }
    2297              :                                               else
    2298              :                                                 _r1 = _o1[0];
    2299         2848 :                                               res_op0 = _r1;
    2300              :                                             }
    2301         2848 :                                             tree res_op1;
    2302         2848 :                                             res_op1 =  build_zero_cst (st);
    2303         2848 :                                             tree _r;
    2304         2848 :                                             _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
    2305         2848 :                                             if (TREE_SIDE_EFFECTS (captures[2]))
    2306            0 :                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2307         2848 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 570, __FILE__, __LINE__, true);
    2308         2848 :                                             return _r;
    2309              :                                           }
    2310            0 : next_after_fail680:;
    2311            0 :                                         }
    2312              :                                       else
    2313              :                                         {
    2314           37 :                                           if (cst == captures[2] && cmp == GT_EXPR
    2315              : )
    2316              :                                             {
    2317           37 :                                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail681;
    2318           37 :                                               {
    2319           37 :                                                 tree res_op0;
    2320           37 :                                                 {
    2321           37 :                                                   tree _o1[1], _r1;
    2322           37 :                                                   _o1[0] = captures[1];
    2323           37 :                                                   if (TREE_TYPE (_o1[0]) != st)
    2324              :                                                     {
    2325           37 :                                                       _r1 = fold_build1_loc (loc, NOP_EXPR, st, _o1[0]);
    2326              :                                                     }
    2327              :                                                   else
    2328              :                                                     _r1 = _o1[0];
    2329           37 :                                                   res_op0 = _r1;
    2330              :                                                 }
    2331           37 :                                                 tree res_op1;
    2332           37 :                                                 res_op1 =  build_zero_cst (st);
    2333           37 :                                                 tree _r;
    2334           37 :                                                 _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
    2335           37 :                                                 if (TREE_SIDE_EFFECTS (captures[2]))
    2336            0 :                                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2337           37 :                                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 571, __FILE__, __LINE__, true);
    2338           37 :                                                 return _r;
    2339              :                                               }
    2340            0 : next_after_fail681:;
    2341            0 :                                             }
    2342              :                                           else
    2343              :                                             {
    2344            0 :                                               if (cmp == LE_EXPR
    2345              : )
    2346              :                                                 {
    2347            0 :                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail682;
    2348            0 :                                                   {
    2349            0 :                                                     tree res_op0;
    2350            0 :                                                     {
    2351            0 :                                                       tree _o1[1], _r1;
    2352            0 :                                                       _o1[0] = captures[1];
    2353            0 :                                                       if (TREE_TYPE (_o1[0]) != st)
    2354              :                                                         {
    2355            0 :                                                           _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, st, _o1[0]);
    2356              :                                                         }
    2357              :                                                       else
    2358              :                                                         _r1 = _o1[0];
    2359            0 :                                                       res_op0 = _r1;
    2360              :                                                     }
    2361            0 :                                                     tree res_op1;
    2362            0 :                                                     res_op1 =  build_zero_cst (st);
    2363            0 :                                                     tree _r;
    2364            0 :                                                     _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
    2365            0 :                                                     if (TREE_SIDE_EFFECTS (captures[2]))
    2366            0 :                                                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2367            0 :                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 572, __FILE__, __LINE__, true);
    2368            0 :                                                     return _r;
    2369              :                                                   }
    2370            0 : next_after_fail682:;
    2371              :                                                 }
    2372              :                                               else
    2373              :                                                 {
    2374            0 :                                                   if (cmp == GT_EXPR
    2375              : )
    2376              :                                                     {
    2377            0 :                                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail683;
    2378            0 :                                                       {
    2379            0 :                                                         tree res_op0;
    2380            0 :                                                         {
    2381            0 :                                                           tree _o1[1], _r1;
    2382            0 :                                                           _o1[0] = captures[1];
    2383            0 :                                                           if (TREE_TYPE (_o1[0]) != st)
    2384              :                                                             {
    2385            0 :                                                               _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, st, _o1[0]);
    2386              :                                                             }
    2387              :                                                           else
    2388              :                                                             _r1 = _o1[0];
    2389            0 :                                                           res_op0 = _r1;
    2390              :                                                         }
    2391            0 :                                                         tree res_op1;
    2392            0 :                                                         res_op1 =  build_zero_cst (st);
    2393            0 :                                                         tree _r;
    2394            0 :                                                         _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
    2395            0 :                                                         if (TREE_SIDE_EFFECTS (captures[2]))
    2396            0 :                                                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2397            0 :                                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 573, __FILE__, __LINE__, true);
    2398            0 :                                                         return _r;
    2399              :                                                       }
    2400            0 : next_after_fail683:;
    2401              :                                                     }
    2402              :                                                 }
    2403              :                                             }
    2404              :                                         }
    2405              :                                   }
    2406              :                                 }
    2407              :                             }
    2408              :                         }
    2409              :                     }
    2410              :                 }
    2411              :             }
    2412      1080398 :       }
    2413              :     }
    2414              :   return NULL_TREE;
    2415              : }
    2416              : 
    2417              : tree
    2418       123859 : generic_simplify_446 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2419              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    2420              : {
    2421       123859 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2422       123859 :   {
    2423       123859 :  bool wascmp;
    2424       123859 :       if (bitwise_inverted_equal_p (captures[0], captures[1], wascmp)
    2425       123859 :  && (!wascmp || element_precision (type) == 1)
    2426              : )
    2427              :         {
    2428            1 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail791;
    2429            1 :           {
    2430            1 :             tree res_op0;
    2431            1 :             res_op0 = captures[0];
    2432            1 :             tree res_op1;
    2433            1 :             res_op1 = captures[2];
    2434            1 :             tree _r;
    2435            1 :             _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    2436            1 :             if (TREE_SIDE_EFFECTS (captures[1]))
    2437            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2438            1 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 646, __FILE__, __LINE__, true);
    2439            1 :             return _r;
    2440              :           }
    2441            0 : next_after_fail791:;
    2442              :         }
    2443              :   }
    2444       123858 :   return NULL_TREE;
    2445              : }
    2446              : 
    2447              : tree
    2448           65 : generic_simplify_453 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2449              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    2450              : {
    2451           65 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2452           65 :   if (INTEGRAL_TYPE_P (type)
    2453           65 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    2454           65 :  && TREE_CODE (TREE_TYPE (captures[0])) != BOOLEAN_TYPE
    2455          130 :  && (!TYPE_UNSIGNED (TREE_TYPE (captures[0]))
    2456           19 :  || TYPE_PRECISION (type) <= TYPE_PRECISION (TREE_TYPE (captures[0])))
    2457              : )
    2458              :     {
    2459           65 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail798;
    2460           65 :       {
    2461           65 :         tree res_op0;
    2462           65 :         {
    2463           65 :           tree _o1[1], _r1;
    2464           65 :           _o1[0] = captures[0];
    2465           65 :           if (TREE_TYPE (_o1[0]) != type)
    2466              :             {
    2467           20 :               _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    2468              :             }
    2469              :           else
    2470              :             _r1 = _o1[0];
    2471           65 :           res_op0 = _r1;
    2472              :         }
    2473           65 :         tree res_op1;
    2474           65 :         res_op1 = captures[1];
    2475           65 :         tree _r;
    2476           65 :         _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    2477           65 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 652, __FILE__, __LINE__, true);
    2478           65 :         return _r;
    2479              :       }
    2480            0 : next_after_fail798:;
    2481              :     }
    2482              :   return NULL_TREE;
    2483              : }
    2484              : 
    2485              : tree
    2486            0 : generic_simplify_460 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2487              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2488              :  const enum tree_code ARG_UNUSED (cmp))
    2489              : {
    2490            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2491            0 :   if (fold_before_rtl_expansion_p ()
    2492              : )
    2493              :     {
    2494            0 :       if (INTEGRAL_TYPE_P (type)
    2495            0 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    2496              : )
    2497              :         {
    2498            0 :           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail805;
    2499            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail805;
    2500            0 :           {
    2501            0 :             tree res_op0;
    2502            0 :             res_op0 = captures[0];
    2503            0 :             tree res_op1;
    2504            0 :             res_op1 = captures[3];
    2505            0 :             tree res_op2;
    2506            0 :             res_op2 =  build_zero_cst (type);
    2507            0 :             tree _r;
    2508            0 :             _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
    2509            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 658, __FILE__, __LINE__, true);
    2510            0 :             return _r;
    2511              :           }
    2512              : next_after_fail805:;
    2513              :         }
    2514              :     }
    2515              :   return NULL_TREE;
    2516              : }
    2517              : 
    2518              : tree
    2519            0 : generic_simplify_470 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2520              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    2521              : {
    2522            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2523            0 :   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail837;
    2524            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail837;
    2525            0 :   {
    2526            0 :     tree _r;
    2527            0 :     _r = captures[2];
    2528            0 :     if (TREE_SIDE_EFFECTS (captures[1]))
    2529            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2530            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 679, __FILE__, __LINE__, true);
    2531              :     return _r;
    2532              :   }
    2533              : next_after_fail837:;
    2534              :   return NULL_TREE;
    2535              : }
    2536              : 
    2537              : tree
    2538            4 : generic_simplify_475 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2539              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    2540              : {
    2541            4 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2542            4 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail854;
    2543            4 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail854;
    2544            4 :   {
    2545            4 :     tree _r;
    2546            4 :     _r = captures[2];
    2547            4 :     if (TREE_SIDE_EFFECTS (captures[1]))
    2548            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2549            4 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 679, __FILE__, __LINE__, true);
    2550              :     return _r;
    2551              :   }
    2552              : next_after_fail854:;
    2553              :   return NULL_TREE;
    2554              : }
    2555              : 
    2556              : tree
    2557       160713 : generic_simplify_479 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2558              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2559              :  const enum tree_code ARG_UNUSED (shift))
    2560              : {
    2561       160713 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2562       160713 :   if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
    2563       160713 :  && TYPE_PRECISION (type) <= HOST_BITS_PER_WIDE_INT
    2564       160605 :  && tree_fits_uhwi_p (captures[4])
    2565       160556 :  && tree_to_uhwi (captures[4]) > 0
    2566       321268 :  && tree_to_uhwi (captures[4]) < TYPE_PRECISION (type)
    2567              : )
    2568              :     {
    2569       160555 :       {
    2570       160555 :  unsigned int shiftc = tree_to_uhwi (captures[4]);
    2571       160555 :  unsigned HOST_WIDE_INT mask = TREE_INT_CST_LOW (captures[5]);
    2572       160555 :  unsigned HOST_WIDE_INT newmask, zerobits = 0;
    2573       160555 :  tree shift_type = TREE_TYPE (captures[2]);
    2574       160555 :  unsigned int prec;
    2575       160555 :  if (shift == LSHIFT_EXPR)
    2576        27779 :  zerobits = ((HOST_WIDE_INT_1U << shiftc) - 1);
    2577       132776 :  else if (shift == RSHIFT_EXPR
    2578       132776 :  && type_has_mode_precision_p (shift_type))
    2579              :  {
    2580       132776 :  prec = TYPE_PRECISION (TREE_TYPE (captures[2]));
    2581       132776 :  tree arg00 = captures[3];
    2582       132776 :  if (captures[2] != captures[3]
    2583       132776 :  && TYPE_UNSIGNED (TREE_TYPE (captures[3])))
    2584              :  {
    2585            0 :  tree inner_type = TREE_TYPE (captures[3]);
    2586            0 :  if (type_has_mode_precision_p (inner_type)
    2587            0 :  && TYPE_PRECISION (inner_type) < prec)
    2588              :  {
    2589            0 :  prec = TYPE_PRECISION (inner_type);
    2590            0 :  if (shiftc < prec)
    2591            0 :  shift_type = inner_type;
    2592              :  }
    2593              :  }
    2594       132776 :  zerobits = HOST_WIDE_INT_M1U;
    2595       132776 :  if (shiftc < prec)
    2596              :  {
    2597       132776 :  zerobits >>= HOST_BITS_PER_WIDE_INT - shiftc;
    2598       132776 :  zerobits <<= prec - shiftc;
    2599              :  }
    2600       132776 :  if (!TYPE_UNSIGNED (TREE_TYPE (captures[2]))
    2601       132776 :  && prec == TYPE_PRECISION (TREE_TYPE (captures[2])))
    2602              :  {
    2603         2892 :  if ((mask & zerobits) == 0)
    2604         2881 :  shift_type = unsigned_type_for (TREE_TYPE (captures[2]));
    2605              :  else
    2606              :  zerobits = 0;
    2607              :  }
    2608              :  }
    2609       160544 :           if ((mask & zerobits) == mask
    2610              : )
    2611              :             {
    2612            3 :               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail860;
    2613            3 :               if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail860;
    2614            3 :               if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail860;
    2615            3 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail860;
    2616            3 :               {
    2617            3 :                 tree _r;
    2618            3 :                 _r =  build_int_cst (type, 0);
    2619            3 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 682, __FILE__, __LINE__, true);
    2620            3 :                 return _r;
    2621              :               }
    2622              : next_after_fail860:;
    2623              :             }
    2624              :           else
    2625              :             {
    2626       160552 :               {
    2627       160552 :  newmask = mask | zerobits;
    2628       160552 :                   if (newmask != mask && (newmask & (newmask + 1)) == 0
    2629              : )
    2630              :                     {
    2631              :                       {
    2632        18370 :  for (prec = BITS_PER_UNIT;
    2633        33955 :  prec < HOST_BITS_PER_WIDE_INT; prec <<= 1)
    2634        31848 :  if (newmask == (HOST_WIDE_INT_1U << prec) - 1)
    2635              :  break;
    2636        15585 :                           if (prec < HOST_BITS_PER_WIDE_INT
    2637         2107 :  || newmask == HOST_WIDE_INT_M1U
    2638              : )
    2639              :                             {
    2640        13642 :                               {
    2641        13642 :  tree newmaskt = build_int_cst_type (TREE_TYPE (captures[5]), newmask);
    2642        13642 :                                   if (!tree_int_cst_equal (newmaskt, captures[5])
    2643              : )
    2644              :                                     {
    2645        13642 :                                       if (shift_type != TREE_TYPE (captures[2])
    2646              : )
    2647              :                                         {
    2648           85 :                                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail861;
    2649           85 :                                           if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail861;
    2650           85 :                                           if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail861;
    2651           85 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail861;
    2652           85 :                                           {
    2653           85 :                                             tree res_op0;
    2654           85 :                                             {
    2655           85 :                                               tree _o1[1], _r1;
    2656           85 :                                               {
    2657           85 :                                                 tree _o2[2], _r2;
    2658           85 :                                                 {
    2659           85 :                                                   tree _o3[1], _r3;
    2660           85 :                                                   _o3[0] = captures[2];
    2661           85 :                                                   if (TREE_TYPE (_o3[0]) != shift_type)
    2662              :                                                     {
    2663           85 :                                                       _r3 = fold_build1_loc (loc, NOP_EXPR, shift_type, _o3[0]);
    2664              :                                                     }
    2665              :                                                   else
    2666              :                                                     _r3 = _o3[0];
    2667           85 :                                                   _o2[0] = _r3;
    2668              :                                                 }
    2669           85 :                                                 _o2[1] = captures[4];
    2670           85 :                                                 _r2 = fold_build2_loc (loc, shift, shift_type, _o2[0], _o2[1]);
    2671           85 :                                                 _o1[0] = _r2;
    2672              :                                               }
    2673           85 :                                               if (TREE_TYPE (_o1[0]) != type)
    2674              :                                                 {
    2675           85 :                                                   _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    2676              :                                                 }
    2677              :                                               else
    2678              :                                                 _r1 = _o1[0];
    2679           85 :                                               res_op0 = _r1;
    2680              :                                             }
    2681           85 :                                             tree res_op1;
    2682           85 :                                             res_op1 =  newmaskt;
    2683           85 :                                             tree _r;
    2684           85 :                                             _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    2685           85 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 683, __FILE__, __LINE__, true);
    2686           85 :                                             return _r;
    2687              :                                           }
    2688              : next_after_fail861:;
    2689              :                                         }
    2690              :                                       else
    2691              :                                         {
    2692        13557 :                                           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail862;
    2693        12509 :                                           if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail862;
    2694        12509 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail862;
    2695        12509 :                                           {
    2696        12509 :                                             tree res_op0;
    2697        12509 :                                             res_op0 = captures[0];
    2698        12509 :                                             tree res_op1;
    2699        12509 :                                             res_op1 =  newmaskt;
    2700        12509 :                                             tree _r;
    2701        12509 :                                             _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    2702        12509 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 684, __FILE__, __LINE__, true);
    2703        12509 :                                             return _r;
    2704              :                                           }
    2705              : next_after_fail862:;
    2706              :                                         }
    2707              :                                     }
    2708              :                               }
    2709              :                             }
    2710              :                       }
    2711              :                     }
    2712              :               }
    2713              :             }
    2714              :       }
    2715              :     }
    2716              :   return NULL_TREE;
    2717              : }
    2718              : 
    2719              : tree
    2720           42 : generic_simplify_489 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2721              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
    2722              : {
    2723           42 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2724           42 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail878;
    2725           42 :   {
    2726           42 :     tree res_op0;
    2727           42 :     res_op0 = captures[1];
    2728           42 :     tree res_op1;
    2729           42 :     {
    2730           42 :       tree _o1[1], _r1;
    2731           42 :       _o1[0] = captures[2];
    2732           42 :       _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    2733           42 :       res_op1 = _r1;
    2734              :     }
    2735           42 :     tree _r;
    2736           42 :     _r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
    2737           42 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 693, __FILE__, __LINE__, true);
    2738              :     return _r;
    2739              :   }
    2740            0 : next_after_fail878:;
    2741            0 :   return NULL_TREE;
    2742              : }
    2743              : 
    2744              : tree
    2745           31 : generic_simplify_494 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2746              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
    2747              : {
    2748           31 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2749           31 :   if (!TYPE_UNSIGNED (TREE_TYPE (captures[2]))
    2750           54 :  && (element_precision (TREE_TYPE (captures[2]))
    2751           23 :  <= element_precision (TREE_TYPE (captures[3]))
    2752            1 :  || !TYPE_UNSIGNED (TREE_TYPE (captures[3])))
    2753              : )
    2754              :     {
    2755           22 :       {
    2756           22 :  tree shift_type = TREE_TYPE (captures[2]);
    2757           22 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail883;
    2758           22 :           {
    2759           22 :             tree res_op0;
    2760           22 :             {
    2761           22 :               tree _o1[2], _r1;
    2762           22 :               {
    2763           22 :                 tree _o2[1], _r2;
    2764           22 :                 _o2[0] = captures[3];
    2765           22 :                 if (TREE_TYPE (_o2[0]) != shift_type)
    2766              :                   {
    2767            1 :                     _r2 = fold_build1_loc (loc, NOP_EXPR, shift_type, _o2[0]);
    2768              :                   }
    2769              :                 else
    2770              :                   _r2 = _o2[0];
    2771           22 :                 _o1[0] = _r2;
    2772              :               }
    2773           22 :               _o1[1] = captures[4];
    2774           22 :               _r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2775           22 :               res_op0 = _r1;
    2776              :             }
    2777           22 :             tree _r;
    2778           22 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    2779           22 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 698, __FILE__, __LINE__, true);
    2780           22 :             return _r;
    2781              :           }
    2782            0 : next_after_fail883:;
    2783              :       }
    2784              :     }
    2785              :   return NULL_TREE;
    2786              : }
    2787              : 
    2788              : tree
    2789         3515 : generic_simplify_506 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2790              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
    2791              : {
    2792         3515 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2793         3515 :   if (!TYPE_SATURATING (type)
    2794              : )
    2795              :     {
    2796         3480 :       if (!TYPE_OVERFLOW_SANITIZED (type)
    2797         6982 :  && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[0]))
    2798              : )
    2799              :         {
    2800         3502 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail896;
    2801         3502 :           {
    2802         3502 :             tree res_op0;
    2803         3502 :             {
    2804         3502 :               tree _o1[1], _r1;
    2805         3502 :               _o1[0] = captures[0];
    2806         3502 :               if (TREE_TYPE (_o1[0]) != type)
    2807              :                 {
    2808            0 :                   _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
    2809              :                 }
    2810              :               else
    2811              :                 _r1 = _o1[0];
    2812         3502 :               res_op0 = _r1;
    2813              :             }
    2814         3502 :             tree _r;
    2815         3502 :             _r = non_lvalue_loc (loc, res_op0);
    2816         3502 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 709, __FILE__, __LINE__, true);
    2817         3502 :             return _r;
    2818              :           }
    2819            0 : next_after_fail896:;
    2820              :         }
    2821              :     }
    2822              :   return NULL_TREE;
    2823              : }
    2824              : 
    2825              : tree
    2826            4 : generic_simplify_513 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2827              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    2828              : {
    2829            4 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2830            4 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail904;
    2831            4 :   {
    2832            4 :     tree _r;
    2833            4 :     _r = captures[1];
    2834            4 :     if (TREE_SIDE_EFFECTS (captures[0]))
    2835            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    2836            4 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 716, __FILE__, __LINE__, true);
    2837              :     return _r;
    2838              :   }
    2839            0 : next_after_fail904:;
    2840            0 :   return NULL_TREE;
    2841              : }
    2842              : 
    2843              : tree
    2844            2 : generic_simplify_522 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2845              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    2846              : {
    2847            2 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2848            2 :   if (TREE_CODE (type) != COMPLEX_TYPE
    2849            2 :  && (! ANY_INTEGRAL_TYPE_P (type)
    2850            1 :  || TYPE_OVERFLOW_UNDEFINED (type))
    2851              : )
    2852              :     {
    2853            2 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail925;
    2854            2 :       {
    2855            2 :         tree res_op0;
    2856            2 :         res_op0 = captures[0];
    2857            2 :         tree _r;
    2858            2 :         _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
    2859            2 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 725, __FILE__, __LINE__, true);
    2860            2 :         return _r;
    2861              :       }
    2862            0 : next_after_fail925:;
    2863              :     }
    2864              :   return NULL_TREE;
    2865              : }
    2866              : 
    2867              : tree
    2868            0 : generic_simplify_527 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2869              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2870              :  const enum tree_code ARG_UNUSED (rotate))
    2871              : {
    2872            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2873            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail930;
    2874            0 :   {
    2875            0 :     tree _r;
    2876            0 :     _r = captures[0];
    2877            0 :     if (TREE_SIDE_EFFECTS (captures[1]))
    2878            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2879            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 730, __FILE__, __LINE__, true);
    2880              :     return _r;
    2881              :   }
    2882            0 : next_after_fail930:;
    2883            0 :   return NULL_TREE;
    2884              : }
    2885              : 
    2886              : tree
    2887            0 : generic_simplify_533 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2888              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    2889              :  const enum tree_code ARG_UNUSED (bitop),
    2890              :  const combined_fn ARG_UNUSED (bswap))
    2891              : {
    2892            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2893            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail939;
    2894            0 :   {
    2895            0 :     tree res_op0;
    2896            0 :     res_op0 = captures[0];
    2897            0 :     tree res_op1;
    2898            0 :     {
    2899            0 :       tree _o1[1], _r1;
    2900            0 :       _o1[0] = captures[1];
    2901            0 :       _r1 = maybe_build_call_expr_loc (loc, bswap, TREE_TYPE (_o1[0]), 1, _o1[0]);
    2902            0 :       if (!_r1)
    2903            0 :         goto next_after_fail939;
    2904            0 :       res_op1 = _r1;
    2905              :     }
    2906            0 :     tree _r;
    2907            0 :     _r = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
    2908            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 739, __FILE__, __LINE__, true);
    2909              :     return _r;
    2910              :   }
    2911              : next_after_fail939:;
    2912              :   return NULL_TREE;
    2913              : }
    2914              : 
    2915              : tree
    2916            0 : generic_simplify_541 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2917              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    2918              :  const combined_fn ARG_UNUSED (cond_op))
    2919              : {
    2920            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2921            0 :   {
    2922            0 :  tree op_type = TREE_TYPE (captures[4]);
    2923            0 :       if (element_precision (type) == element_precision (op_type)
    2924              : )
    2925              :         {
    2926            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail947;
    2927            0 :           {
    2928            0 :             tree res_op0;
    2929            0 :             {
    2930            0 :               tree _o1[5], _r1;
    2931            0 :               _o1[0] = captures[0];
    2932            0 :               _o1[1] = captures[1];
    2933            0 :               _o1[2] = captures[2];
    2934            0 :               _o1[3] = captures[3];
    2935            0 :               {
    2936            0 :                 tree _o2[1], _r2;
    2937            0 :                 _o2[0] = captures[5];
    2938            0 :                 if (TREE_TYPE (_o2[0]) != op_type)
    2939              :                   {
    2940            0 :                     _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, op_type, _o2[0]);
    2941              :                   }
    2942              :                 else
    2943              :                   _r2 = _o2[0];
    2944            0 :                 _o1[4] = _r2;
    2945              :               }
    2946            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]);
    2947            0 :               if (!_r1)
    2948            0 :                 goto next_after_fail947;
    2949            0 :               res_op0 = _r1;
    2950              :             }
    2951            0 :             tree _r;
    2952            0 :             _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
    2953            0 :             if (TREE_SIDE_EFFECTS (captures[4]))
    2954            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
    2955            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 742, __FILE__, __LINE__, true);
    2956            0 :             return _r;
    2957              :           }
    2958              : next_after_fail947:;
    2959              :         }
    2960              :   }
    2961              :   return NULL_TREE;
    2962              : }
    2963              : 
    2964              : tree
    2965      3392035 : generic_simplify_549 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2966              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2967              :  const enum tree_code ARG_UNUSED (cmp))
    2968              : {
    2969      3392035 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2970      3392035 :   if (REAL_VALUE_ISNAN (TREE_REAL_CST (captures[1]))
    2971      3392035 :  && (cmp != LTGT_EXPR || ! flag_trapping_math)
    2972              : )
    2973              :     {
    2974           10 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail955;
    2975           10 :       {
    2976           10 :         tree _r;
    2977           20 :         _r =  constant_boolean_node (cmp == ORDERED_EXPR || cmp == LTGT_EXPR
    2978           10 :  ? false : true, type);
    2979           10 :         if (TREE_SIDE_EFFECTS (captures[0]))
    2980            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    2981           10 :         if (TREE_SIDE_EFFECTS (captures[1]))
    2982            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2983           10 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 750, __FILE__, __LINE__, true);
    2984           10 :         return _r;
    2985              :       }
    2986            0 : next_after_fail955:;
    2987              :     }
    2988              :   return NULL_TREE;
    2989              : }
    2990              : 
    2991              : tree
    2992            0 : generic_simplify_561 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2993              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    2994              :  const combined_fn ARG_UNUSED (fns))
    2995              : {
    2996            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2997            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail967;
    2998            0 :   {
    2999            0 :     tree _r;
    3000            0 :     _r = captures[0];
    3001            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 762, __FILE__, __LINE__, true);
    3002              :     return _r;
    3003              :   }
    3004            0 : next_after_fail967:;
    3005            0 :   return NULL_TREE;
    3006              : }
    3007              : 
    3008              : tree
    3009            0 : generic_simplify_565 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3010              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    3011              : {
    3012            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3013            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail971;
    3014            0 :   {
    3015            0 :     tree _r;
    3016            0 :     _r = captures[0];
    3017            0 :     if (TREE_SIDE_EFFECTS (captures[1]))
    3018            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    3019            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 766, __FILE__, __LINE__, true);
    3020              :     return _r;
    3021              :   }
    3022            0 : next_after_fail971:;
    3023            0 :   return NULL_TREE;
    3024              : }
    3025              : 
    3026              : tree
    3027            0 : generic_simplify_570 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3028              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3029              :  const combined_fn ARG_UNUSED (fns))
    3030              : {
    3031            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3032            0 :   if (canonicalize_math_p ()
    3033              : )
    3034              :     {
    3035            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail976;
    3036            0 :       {
    3037            0 :         tree res_op0;
    3038            0 :         res_op0 = captures[0];
    3039            0 :         tree _r;
    3040            0 :         _r = fold_build1_loc (loc, FIX_TRUNC_EXPR, type, res_op0);
    3041            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 771, __FILE__, __LINE__, true);
    3042            0 :         return _r;
    3043              :       }
    3044            0 : next_after_fail976:;
    3045              :     }
    3046              :   return NULL_TREE;
    3047              : }
    3048              : 
    3049              : tree
    3050            0 : generic_simplify_579 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3051              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
    3052              : {
    3053            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3054            0 :   if (canonicalize_math_after_vectorization_p ()
    3055              : )
    3056              :     {
    3057              :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail985;
    3058              :       {
    3059              :         tree res_op0;
    3060              :         res_op0 = captures[0];
    3061              :         tree res_op1;
    3062              :         res_op1 = captures[1];
    3063              :         tree res_op2;
    3064              :         res_op2 = captures[2];
    3065              :         tree _r;
    3066              :         _r = maybe_build_call_expr_loc (loc, CFN_FNMS, type, 3, res_op0, res_op1, res_op2);
    3067              :         if (!_r)
    3068              :           goto next_after_fail985;
    3069              :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 780, __FILE__, __LINE__, true);
    3070              :         return _r;
    3071              :       }
    3072            0 : next_after_fail985:;
    3073              :     }
    3074            0 :   return NULL_TREE;
    3075              : }
    3076              : 
    3077              : tree
    3078            0 : generic_simplify_589 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3079              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree ARG_UNUSED (_p3), tree ARG_UNUSED (_p4), tree *ARG_UNUSED (captures))
    3080              : {
    3081            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3082            0 :   if (canonicalize_math_after_vectorization_p ()
    3083              : )
    3084              :     {
    3085              :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail995;
    3086              :       {
    3087              :         tree res_op0;
    3088              :         res_op0 = captures[0];
    3089              :         tree res_op1;
    3090              :         res_op1 = captures[1];
    3091              :         tree res_op2;
    3092              :         res_op2 = captures[2];
    3093              :         tree res_op3;
    3094              :         res_op3 = captures[3];
    3095              :         tree res_op4;
    3096              :         res_op4 = captures[4];
    3097              :         tree _r;
    3098              :         _r = maybe_build_call_expr_loc (loc, CFN_COND_FMA, type, 5, res_op0, res_op1, res_op2, res_op3, res_op4);
    3099              :         if (!_r)
    3100              :           goto next_after_fail995;
    3101              :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 790, __FILE__, __LINE__, true);
    3102              :         return _r;
    3103              :       }
    3104            0 : next_after_fail995:;
    3105              :     }
    3106            0 :   return NULL_TREE;
    3107              : }
    3108              : 
    3109              : tree
    3110            0 : generic_simplify_599 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3111              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3112              :  const combined_fn ARG_UNUSED (POPCOUNT))
    3113              : {
    3114            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3115            0 :   {
    3116            0 :  tree type0 = TREE_TYPE (captures[1]);
    3117            0 :  tree type2 = TREE_TYPE (captures[0]);
    3118            0 :       if (INTEGRAL_TYPE_P (type0)
    3119            0 :  && TYPE_PRECISION (type2) <= TYPE_PRECISION (type0)
    3120              : )
    3121              :         {
    3122            0 :           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1005;
    3123            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1005;
    3124            0 :           {
    3125            0 :             tree res_op0;
    3126            0 :             {
    3127            0 :               tree _o1[2], _r1;
    3128            0 :               {
    3129            0 :                 tree _o2[1], _r2;
    3130            0 :                 _o2[0] = captures[2];
    3131            0 :                 if (TREE_TYPE (_o2[0]) != type2)
    3132              :                   {
    3133            0 :                     _r2 = fold_build1_loc (loc, NOP_EXPR, type2, _o2[0]);
    3134              :                   }
    3135              :                 else
    3136              :                   _r2 = _o2[0];
    3137            0 :                 _o1[0] = _r2;
    3138              :               }
    3139            0 :               _o1[1] =  build_zero_cst (type2);
    3140            0 :               _r1 = fold_build2_loc (loc, NE_EXPR, boolean_type_node, _o1[0], _o1[1]);
    3141            0 :               res_op0 = _r1;
    3142              :             }
    3143            0 :             tree _r;
    3144            0 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3145            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 797, __FILE__, __LINE__, true);
    3146            0 :             return _r;
    3147              :           }
    3148              : next_after_fail1005:;
    3149              :         }
    3150              :   }
    3151              :   return NULL_TREE;
    3152              : }
    3153              : 
    3154              : tree
    3155            0 : generic_simplify_609 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3156              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3157              :  const combined_fn ARG_UNUSED (reduc))
    3158              : {
    3159            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3160            0 :   {
    3161            0 :  tree ctor = (TREE_CODE (captures[0]) == SSA_NAME
    3162            0 :  ? gimple_assign_rhs1 (SSA_NAME_DEF_STMT (captures[0])) : captures[0]);
    3163            0 :  tree elt = ctor_single_nonzero_element (ctor);
    3164            0 :       if (elt
    3165            0 :  && types_match (type, TREE_TYPE (elt))
    3166            0 :  && !HONOR_SNANS (type)
    3167            0 :  && !HONOR_SIGNED_ZEROS (type)
    3168              : )
    3169              :         {
    3170            0 :           if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1016;
    3171            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1016;
    3172            0 :           {
    3173            0 :             tree _r;
    3174            0 :             _r =  elt;
    3175            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 804, __FILE__, __LINE__, true);
    3176            0 :             return _r;
    3177              :           }
    3178              : next_after_fail1016:;
    3179              :         }
    3180              :   }
    3181              :   return NULL_TREE;
    3182              : }
    3183              : 
    3184              : tree
    3185    504603239 : generic_simplify_VIEW_CONVERT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0)
    3186              : {
    3187    504603239 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3188    504603239 :   {
    3189    504603239 :     tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    3190   1009206478 :     if ((
    3191              : 
    3192              :  && useless_type_conversion_p (type, TREE_TYPE (captures[0])))
    3193              :  || (
    3194              : 1
    3195    504603239 :  && type == TREE_TYPE (captures[0]))
    3196              : )
    3197              :       {
    3198    242777871 :         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1075;
    3199    242777871 :         {
    3200    242777871 :           tree _r;
    3201    242777871 :           _r = captures[0];
    3202    242777871 :           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 818, __FILE__, __LINE__, true);
    3203    242777871 :           return _r;
    3204              :         }
    3205            0 : next_after_fail1075:;
    3206              :       }
    3207              :   }
    3208    261825368 :   switch (TREE_CODE (_p0))
    3209              :     {
    3210     28829021 :     case VIEW_CONVERT_EXPR:
    3211     28829021 :       {
    3212     28829021 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3213     28829021 :         {
    3214     28829021 :           tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    3215     28829021 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1076;
    3216     28829021 :           {
    3217     28829021 :             tree res_op0;
    3218     28829021 :             res_op0 = captures[0];
    3219     28829021 :             tree _r;
    3220     28829021 :             _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
    3221     28829021 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 852, __FILE__, __LINE__, true);
    3222    504603239 :             return _r;
    3223              :           }
    3224            0 : next_after_fail1076:;
    3225              :         }
    3226            0 :         break;
    3227              :       }
    3228            0 :     case BIT_FIELD_REF:
    3229            0 :       {
    3230            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3231            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3232            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
    3233            0 :         {
    3234            0 :           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
    3235            0 :           if (is_gimple_reg_type (type)
    3236            0 :  && (!INTEGRAL_TYPE_P (type)
    3237            0 :  || !INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    3238            0 :  || (type_has_mode_precision_p (type)
    3239            0 :  && type_has_mode_precision_p (TREE_TYPE (captures[0]))))
    3240              : )
    3241              :             {
    3242            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1077;
    3243            0 :               {
    3244            0 :                 tree res_op0;
    3245            0 :                 res_op0 = captures[1];
    3246            0 :                 tree res_op1;
    3247            0 :                 res_op1 = captures[2];
    3248            0 :                 tree res_op2;
    3249            0 :                 res_op2 = captures[3];
    3250            0 :                 tree _r;
    3251            0 :                 _r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
    3252            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 853, __FILE__, __LINE__, true);
    3253            0 :                 return _r;
    3254              :               }
    3255            0 : next_after_fail1077:;
    3256              :             }
    3257              :         }
    3258            0 :         break;
    3259              :       }
    3260    232996347 :     default:;
    3261              :     }
    3262    232996347 :   {
    3263    232996347 :     tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    3264    231198689 :     if ((INTEGRAL_TYPE_P (type) || POINTER_TYPE_P (type))
    3265      3115266 :  && (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) || POINTER_TYPE_P (TREE_TYPE (captures[0])))
    3266    235835462 :  && TYPE_PRECISION (type) == TYPE_PRECISION (TREE_TYPE (captures[0]))
    3267              : )
    3268              :       {
    3269      2494424 :         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1078;
    3270      2494424 :         {
    3271      2494424 :           tree res_op0;
    3272      2494424 :           res_op0 = captures[0];
    3273      2494424 :           tree _r;
    3274      2494424 :           _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3275      2494424 :           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 854, __FILE__, __LINE__, true);
    3276      2494424 :           return _r;
    3277              :         }
    3278            0 : next_after_fail1078:;
    3279              :       }
    3280              :   }
    3281    230501923 :   switch (TREE_CODE (_p0))
    3282              :     {
    3283         3354 :     CASE_CONVERT:
    3284         3354 :       {
    3285         3354 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3286         3354 :         {
    3287         3354 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
    3288         3354 :           {
    3289         3354 :  bool extended_bitint = false;
    3290         3354 :  if (BITINT_TYPE_P (TREE_TYPE (captures[0])))
    3291              :  {
    3292            0 :  struct bitint_info info;
    3293            0 :  extended_bitint
    3294            0 :  = targetm.c.bitint_type_info (TYPE_PRECISION (TREE_TYPE (captures[0])),
    3295              :  &info);
    3296            0 :  extended_bitint = extended_bitint && info.extended;
    3297              :  }
    3298         6708 :               if ((INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) || POINTER_TYPE_P (TREE_TYPE (captures[0])))
    3299           71 :  && (INTEGRAL_TYPE_P (TREE_TYPE (captures[1])) || POINTER_TYPE_P (TREE_TYPE (captures[1])))
    3300           71 :  && !extended_bitint
    3301           71 :  && TYPE_SIZE (TREE_TYPE (captures[0])) == TYPE_SIZE (TREE_TYPE (captures[1]))
    3302         3354 :  && (TYPE_PRECISION (TREE_TYPE (captures[0])) == TYPE_PRECISION (TREE_TYPE (captures[1]))
    3303            0 :  || (TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (TREE_TYPE (captures[1]))
    3304            0 :  && TYPE_UNSIGNED (TREE_TYPE (captures[1]))))
    3305              : )
    3306              :                 {
    3307            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1079;
    3308            0 :                   {
    3309            0 :                     tree res_op0;
    3310            0 :                     res_op0 = captures[1];
    3311            0 :                     tree _r;
    3312            0 :                     _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
    3313            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 855, __FILE__, __LINE__, true);
    3314            0 :                     return _r;
    3315              :                   }
    3316            0 : next_after_fail1079:;
    3317              :                 }
    3318              :           }
    3319              :         }
    3320         3354 :         break;
    3321              :       }
    3322        83479 :     case CONSTRUCTOR:
    3323        83479 :       {
    3324        83479 :         {
    3325        83479 :           tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    3326        83479 :           {
    3327        83479 :  tree ctor = (TREE_CODE (captures[0]) == SSA_NAME
    3328              :  ? gimple_assign_rhs1 (SSA_NAME_DEF_STMT (captures[0])) : captures[0]);
    3329        83479 :               if (CONSTRUCTOR_NELTS (ctor) == 0
    3330              : )
    3331              :                 {
    3332            6 :                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1080;
    3333            6 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1080;
    3334            6 :                   {
    3335            6 :                     tree _r;
    3336            6 :                     _r =  build_zero_cst (type);
    3337            6 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 856, __FILE__, __LINE__, true);
    3338            6 :                     return _r;
    3339              :                   }
    3340              : next_after_fail1080:;
    3341              :                 }
    3342              :               else
    3343              :                 {
    3344        83473 :                   if (CONSTRUCTOR_NELTS (ctor) == 1
    3345           40 :  && VECTOR_TYPE_P (TREE_TYPE (ctor))
    3346        83508 :  && operand_equal_p (TYPE_SIZE (type),
    3347           35 :  TYPE_SIZE (TREE_TYPE
    3348              :  (CONSTRUCTOR_ELT (ctor, 0)->value)))
    3349              : )
    3350              :                     {
    3351            0 :                       if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1081;
    3352            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1081;
    3353            0 :                       {
    3354            0 :                         tree res_op0;
    3355            0 :                         res_op0 =  CONSTRUCTOR_ELT (ctor, 0)->value;
    3356            0 :                         tree _r;
    3357            0 :                         _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
    3358            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 857, __FILE__, __LINE__, true);
    3359            0 :                         return _r;
    3360              :                       }
    3361              : next_after_fail1081:;
    3362              :                     }
    3363              :                 }
    3364              :           }
    3365              :         }
    3366              :         break;
    3367              :       }
    3368       288792 :     case VEC_COND_EXPR:
    3369       288792 :       {
    3370       288792 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3371       288792 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3372       288792 :         tree _q22 = TREE_OPERAND (_p0, 2);
    3373       288792 :         {
    3374       288792 :           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
    3375       288746 :           if (VECTOR_TYPE_P (type) && VECTOR_TYPE_P (TREE_TYPE (captures[2]))
    3376       289135 :  && known_eq (TYPE_VECTOR_SUBPARTS (type),
    3377              :  TYPE_VECTOR_SUBPARTS (TREE_TYPE (captures[2])))
    3378        41851 :  && tree_nop_conversion_p (TREE_TYPE (type), TREE_TYPE (TREE_TYPE (captures[2])))
    3379       330300 :  && (expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    3380          349 :  || !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1])))
    3381              : )
    3382              :             {
    3383        41508 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1082;
    3384        41508 :               {
    3385        41508 :                 tree res_op0;
    3386        41508 :                 res_op0 = captures[1];
    3387        41508 :                 tree res_op1;
    3388        41508 :                 {
    3389        41508 :                   tree _o1[1], _r1;
    3390        41508 :                   _o1[0] = captures[2];
    3391        41508 :                   if (TREE_TYPE (_o1[0]) != type)
    3392              :                     {
    3393        41508 :                       _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
    3394        41508 :                       if (EXPR_P (_r1))
    3395            6 :                         goto next_after_fail1082;
    3396              :                     }
    3397              :                   else
    3398              :                     _r1 = _o1[0];
    3399        41502 :                   res_op1 = _r1;
    3400              :                 }
    3401        41502 :                 tree res_op2;
    3402        41502 :                 {
    3403        41502 :                   tree _o1[1], _r1;
    3404        41502 :                   _o1[0] = captures[3];
    3405        41502 :                   if (TREE_TYPE (_o1[0]) != type)
    3406              :                     {
    3407        41502 :                       _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
    3408        41502 :                       if (EXPR_P (_r1))
    3409            0 :                         goto next_after_fail1082;
    3410              :                     }
    3411              :                   else
    3412              :                     _r1 = _o1[0];
    3413        41502 :                   res_op2 = _r1;
    3414              :                 }
    3415        41502 :                 tree _r;
    3416        41502 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    3417        41502 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 858, __FILE__, __LINE__, true);
    3418        41502 :                 return _r;
    3419              :               }
    3420       247290 : next_after_fail1082:;
    3421              :             }
    3422              :         }
    3423       247290 :         break;
    3424              :       }
    3425              :     default:;
    3426              :     }
    3427              :   return NULL_TREE;
    3428              : }
    3429              : 
    3430              : tree
    3431   1851958927 : generic_simplify (location_t loc, enum tree_code code, const tree type ATTRIBUTE_UNUSED, tree _p0)
    3432              : {
    3433   1851958927 :   switch (code)
    3434              :     {
    3435      3691642 :     case ABS_EXPR:
    3436      3691642 :       return generic_simplify_ABS_EXPR (loc, code, type, _p0);
    3437    878961035 :     CASE_CONVERT:
    3438    878961035 :       return generic_simplify_CONVERT_EXPR (loc, code, type, _p0);
    3439      2860202 :     case BIT_NOT_EXPR:
    3440      2860202 :       return generic_simplify_BIT_NOT_EXPR (loc, code, type, _p0);
    3441          942 :     case ABSU_EXPR:
    3442          942 :       return generic_simplify_ABSU_EXPR (loc, code, type, _p0);
    3443      4493992 :     case NEGATE_EXPR:
    3444      4493992 :       return generic_simplify_NEGATE_EXPR (loc, code, type, _p0);
    3445    504603239 :     case VIEW_CONVERT_EXPR:
    3446    504603239 :       return generic_simplify_VIEW_CONVERT_EXPR (loc, code, type, _p0);
    3447      6351650 :     case FLOAT_EXPR:
    3448      6351650 :       return generic_simplify_FLOAT_EXPR (loc, code, type, _p0);
    3449       492783 :     case FIX_TRUNC_EXPR:
    3450       492783 :       return generic_simplify_FIX_TRUNC_EXPR (loc, code, type, _p0);
    3451         3677 :     case PAREN_EXPR:
    3452         3677 :       return generic_simplify_PAREN_EXPR (loc, code, type, _p0);
    3453      1629251 :     case REALPART_EXPR:
    3454      1629251 :       return generic_simplify_REALPART_EXPR (loc, code, type, _p0);
    3455      1893179 :     case IMAGPART_EXPR:
    3456      1893179 :       return generic_simplify_IMAGPART_EXPR (loc, code, type, _p0);
    3457         1330 :     case CONJ_EXPR:
    3458         1330 :       return generic_simplify_CONJ_EXPR (loc, code, type, _p0);
    3459              :     default:;
    3460              :     }
    3461              :   return NULL_TREE;
    3462              : }
    3463              : 
    3464              : tree
    3465     33716408 : generic_simplify_MINUS_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
    3466              : {
    3467     33716408 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3468     33716408 :   if (integer_zerop (_p1))
    3469              :     {
    3470      2041124 :       {
    3471      2041124 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    3472      2041124 :         if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1172;
    3473      2041124 :         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1172;
    3474      2041124 :         {
    3475      2041124 :           tree res_op0;
    3476      2041124 :           res_op0 = captures[0];
    3477      2041124 :           tree _r;
    3478      2041124 :           _r = non_lvalue_loc (loc, res_op0);
    3479      2041124 :           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 869, __FILE__, __LINE__, true);
    3480      2041124 :           return _r;
    3481              :         }
    3482              : next_after_fail1172:;
    3483              :       }
    3484              :     }
    3485     31675284 :   if (real_zerop (_p1))
    3486              :     {
    3487         1140 :       {
    3488         1140 :         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    3489         1140 :         if (fold_real_zero_addition_p (type, captures[0], captures[1], 1)
    3490              : )
    3491              :           {
    3492          752 :             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1173;
    3493          752 :             {
    3494          752 :               tree res_op0;
    3495          752 :               res_op0 = captures[0];
    3496          752 :               tree _r;
    3497          752 :               _r = non_lvalue_loc (loc, res_op0);
    3498          752 :               if (TREE_SIDE_EFFECTS (captures[1]))
    3499            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    3500          752 :               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 889, __FILE__, __LINE__, true);
    3501          752 :               return _r;
    3502              :             }
    3503            0 : next_after_fail1173:;
    3504              :           }
    3505              :       }
    3506              :     }
    3507     31674532 :   switch (TREE_CODE (_p0))
    3508              :     {
    3509      2275473 :     case PLUS_EXPR:
    3510      2275473 :       {
    3511      2275473 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3512      2275473 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3513      2275473 :         switch (TREE_CODE (_q21))
    3514              :           {
    3515       148387 :           case REAL_CST:
    3516       148387 :             {
    3517       148387 :               switch (TREE_CODE (_p1))
    3518              :                 {
    3519           11 :                 case REAL_CST:
    3520           11 :                   {
    3521           11 :                     {
    3522           11 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    3523           11 :                       tree res = generic_simplify_4 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR);
    3524           11 :                       if (res) return res;
    3525              :                     }
    3526            8 :                     break;
    3527              :                   }
    3528              :                 default:;
    3529              :                 }
    3530              :               break;
    3531              :             }
    3532              :           default:;
    3533              :           }
    3534              :         break;
    3535              :       }
    3536      1281348 :     case MINUS_EXPR:
    3537      1281348 :       {
    3538      1281348 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3539      1281348 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3540      1281348 :         switch (TREE_CODE (_q21))
    3541              :           {
    3542        93254 :           case REAL_CST:
    3543        93254 :             {
    3544        93254 :               switch (TREE_CODE (_p1))
    3545              :                 {
    3546           40 :                 case REAL_CST:
    3547           40 :                   {
    3548           40 :                     {
    3549           40 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    3550           40 :                       tree res = generic_simplify_4 (loc, type, _p0, _p1, captures, MINUS_EXPR, MINUS_EXPR);
    3551           40 :                       if (res) return res;
    3552              :                     }
    3553           38 :                     break;
    3554              :                   }
    3555              :                 default:;
    3556              :                 }
    3557              :               break;
    3558              :             }
    3559              :           default:;
    3560              :           }
    3561              :         break;
    3562              :       }
    3563     31674527 :     default:;
    3564              :     }
    3565     31674527 :   if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    3566              :     {
    3567       203506 :       {
    3568       203506 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    3569       202755 :         if (!FLOAT_TYPE_P (type)
    3570       203507 :  || (!tree_expr_maybe_nan_p (captures[0])
    3571          107 :  && !tree_expr_maybe_infinite_p (captures[0])
    3572           15 :  && (!HONOR_SIGN_DEPENDENT_ROUNDING (type)
    3573            1 :  || !HONOR_SIGNED_ZEROS (type)))
    3574              : )
    3575              :           {
    3576       202768 :             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1174;
    3577       202768 :             {
    3578       202768 :               tree _r;
    3579       202768 :               _r =  build_zero_cst (type);
    3580       202768 :               if (TREE_SIDE_EFFECTS (captures[0]))
    3581           36 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    3582       202768 :               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 890, __FILE__, __LINE__, true);
    3583       202768 :               return _r;
    3584              :             }
    3585            0 : next_after_fail1174:;
    3586              :           }
    3587              :       }
    3588              :     }
    3589     31471759 :   switch (TREE_CODE (_p0))
    3590              :     {
    3591      8677203 :     CASE_CONVERT:
    3592      8677203 :       {
    3593      8677203 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3594      8677203 :         switch (TREE_CODE (_p1))
    3595              :           {
    3596      4197383 :           CASE_CONVERT:
    3597      4197383 :             {
    3598      4197383 :               tree _q40 = TREE_OPERAND (_p1, 0);
    3599      4197383 :               switch (TREE_CODE (_q40))
    3600              :                 {
    3601       103127 :                 case MULT_EXPR:
    3602       103127 :                   {
    3603       103127 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    3604       103127 :                     tree _q51 = TREE_OPERAND (_q40, 1);
    3605       103127 :                     switch (TREE_CODE (_q50))
    3606              :                       {
    3607           21 :                       case TRUNC_DIV_EXPR:
    3608           21 :                         {
    3609           21 :                           tree _q60 = TREE_OPERAND (_q50, 0);
    3610           21 :                           tree _q61 = TREE_OPERAND (_q50, 1);
    3611           21 :                           if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q20, 0))
    3612              :                             {
    3613           21 :                               if ((_q51 == _q61 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q61, 0))
    3614              :                                 {
    3615           21 :                                   {
    3616           21 :                                     tree captures[4] ATTRIBUTE_UNUSED = { _q60, _q61, _q20, _q61 };
    3617           21 :                                     tree res = generic_simplify_40 (loc, type, _p0, _p1, captures);
    3618           21 :                                     if (res) return res;
    3619              :                                   }
    3620              :                                 }
    3621              :                             }
    3622              :                           break;
    3623              :                         }
    3624       103106 :                       default:;
    3625              :                       }
    3626       103106 :                     switch (TREE_CODE (_q51))
    3627              :                       {
    3628            0 :                       case TRUNC_DIV_EXPR:
    3629            0 :                         {
    3630            0 :                           tree _q70 = TREE_OPERAND (_q51, 0);
    3631            0 :                           tree _q71 = TREE_OPERAND (_q51, 1);
    3632            0 :                           if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || operand_equal_p (_q70, _q20, 0))
    3633              :                             {
    3634            0 :                               if ((_q71 == _q50 && ! TREE_SIDE_EFFECTS (_q71)) || operand_equal_p (_q71, _q50, 0))
    3635              :                                 {
    3636            0 :                                   {
    3637            0 :                                     tree captures[4] ATTRIBUTE_UNUSED = { _q70, _q71, _q20, _q50 };
    3638            0 :                                     tree res = generic_simplify_40 (loc, type, _p0, _p1, captures);
    3639            0 :                                     if (res) return res;
    3640              :                                   }
    3641              :                                 }
    3642              :                             }
    3643              :                           break;
    3644              :                         }
    3645              :                       default:;
    3646              :                       }
    3647              :                     break;
    3648              :                   }
    3649              :                 default:;
    3650              :                 }
    3651              :               break;
    3652              :             }
    3653       149088 :           case MULT_EXPR:
    3654       149088 :             {
    3655       149088 :               tree _q40 = TREE_OPERAND (_p1, 0);
    3656       149088 :               tree _q41 = TREE_OPERAND (_p1, 1);
    3657       149088 :               switch (TREE_CODE (_q40))
    3658              :                 {
    3659         1733 :                 case TRUNC_DIV_EXPR:
    3660         1733 :                   {
    3661         1733 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    3662         1733 :                     tree _q51 = TREE_OPERAND (_q40, 1);
    3663         1733 :                     if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
    3664              :                       {
    3665           10 :                         if ((_q41 == _q51 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _q51, 0))
    3666              :                           {
    3667           10 :                             {
    3668           10 :                               tree captures[4] ATTRIBUTE_UNUSED = { _q50, _q51, _q20, _q51 };
    3669           10 :                               tree res = generic_simplify_40 (loc, type, _p0, _p1, captures);
    3670           10 :                               if (res) return res;
    3671              :                             }
    3672              :                           }
    3673              :                       }
    3674              :                     break;
    3675              :                   }
    3676       149078 :                 default:;
    3677              :                 }
    3678       149078 :               switch (TREE_CODE (_q41))
    3679              :                 {
    3680            0 :                 case TRUNC_DIV_EXPR:
    3681            0 :                   {
    3682            0 :                     tree _q60 = TREE_OPERAND (_q41, 0);
    3683            0 :                     tree _q61 = TREE_OPERAND (_q41, 1);
    3684            0 :                     if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q20, 0))
    3685              :                       {
    3686            0 :                         if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || operand_equal_p (_q61, _q40, 0))
    3687              :                           {
    3688            0 :                             {
    3689            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _q60, _q61, _q20, _q40 };
    3690            0 :                               tree res = generic_simplify_40 (loc, type, _p0, _p1, captures);
    3691            0 :                               if (res) return res;
    3692              :                             }
    3693              :                           }
    3694              :                       }
    3695              :                     break;
    3696              :                   }
    3697              :                 default:;
    3698              :                 }
    3699              :               break;
    3700              :             }
    3701              :           default:;
    3702              :           }
    3703              :         break;
    3704              :       }
    3705     31471728 :     default:;
    3706              :     }
    3707     31471728 :   switch (TREE_CODE (_p1))
    3708              :     {
    3709      7707346 :     CASE_CONVERT:
    3710      7707346 :       {
    3711      7707346 :         tree _q30 = TREE_OPERAND (_p1, 0);
    3712      7707346 :         switch (TREE_CODE (_q30))
    3713              :           {
    3714       138759 :           case MULT_EXPR:
    3715       138759 :             {
    3716       138759 :               tree _q40 = TREE_OPERAND (_q30, 0);
    3717       138759 :               tree _q41 = TREE_OPERAND (_q30, 1);
    3718       138759 :               switch (TREE_CODE (_q40))
    3719              :                 {
    3720           12 :                 case TRUNC_DIV_EXPR:
    3721           12 :                   {
    3722           12 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    3723           12 :                     tree _q51 = TREE_OPERAND (_q40, 1);
    3724           12 :                     if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _p0, 0))
    3725              :                       {
    3726            2 :                         if ((_q41 == _q51 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _q51, 0))
    3727              :                           {
    3728            2 :                             {
    3729            2 :                               tree captures[4] ATTRIBUTE_UNUSED = { _q50, _q51, _p0, _q51 };
    3730            2 :                               tree res = generic_simplify_40 (loc, type, _p0, _p1, captures);
    3731            2 :                               if (res) return res;
    3732              :                             }
    3733              :                           }
    3734              :                       }
    3735              :                     break;
    3736              :                   }
    3737       138757 :                 default:;
    3738              :                 }
    3739       138757 :               switch (TREE_CODE (_q41))
    3740              :                 {
    3741            0 :                 case TRUNC_DIV_EXPR:
    3742            0 :                   {
    3743            0 :                     tree _q60 = TREE_OPERAND (_q41, 0);
    3744            0 :                     tree _q61 = TREE_OPERAND (_q41, 1);
    3745            0 :                     if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _p0, 0))
    3746              :                       {
    3747            0 :                         if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || operand_equal_p (_q61, _q40, 0))
    3748              :                           {
    3749            0 :                             {
    3750            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _q60, _q61, _p0, _q40 };
    3751            0 :                               tree res = generic_simplify_40 (loc, type, _p0, _p1, captures);
    3752            0 :                               if (res) return res;
    3753              :                             }
    3754              :                           }
    3755              :                       }
    3756              :                     break;
    3757              :                   }
    3758              :                 default:;
    3759              :                 }
    3760              :               break;
    3761              :             }
    3762              :           default:;
    3763              :           }
    3764              :         break;
    3765              :       }
    3766      2014404 :     case MULT_EXPR:
    3767      2014404 :       {
    3768      2014404 :         tree _q30 = TREE_OPERAND (_p1, 0);
    3769      2014404 :         tree _q31 = TREE_OPERAND (_p1, 1);
    3770      2014404 :         switch (TREE_CODE (_q30))
    3771              :           {
    3772         2180 :           case TRUNC_DIV_EXPR:
    3773         2180 :             {
    3774         2180 :               tree _q40 = TREE_OPERAND (_q30, 0);
    3775         2180 :               tree _q41 = TREE_OPERAND (_q30, 1);
    3776         2180 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || operand_equal_p (_q40, _p0, 0))
    3777              :                 {
    3778           52 :                   if ((_q31 == _q41 && ! TREE_SIDE_EFFECTS (_q31)) || operand_equal_p (_q31, _q41, 0))
    3779              :                     {
    3780           52 :                       {
    3781           52 :                         tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q41, _p0, _q41 };
    3782           52 :                         tree res = generic_simplify_40 (loc, type, _p0, _p1, captures);
    3783           52 :                         if (res) return res;
    3784              :                       }
    3785              :                     }
    3786              :                 }
    3787              :               break;
    3788              :             }
    3789      2014352 :           default:;
    3790              :           }
    3791      2014352 :         switch (TREE_CODE (_q31))
    3792              :           {
    3793            0 :           case TRUNC_DIV_EXPR:
    3794            0 :             {
    3795            0 :               tree _q50 = TREE_OPERAND (_q31, 0);
    3796            0 :               tree _q51 = TREE_OPERAND (_q31, 1);
    3797            0 :               if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _p0, 0))
    3798              :                 {
    3799            0 :                   if ((_q51 == _q30 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q30, 0))
    3800              :                     {
    3801            0 :                       {
    3802            0 :                         tree captures[4] ATTRIBUTE_UNUSED = { _q50, _q51, _p0, _q30 };
    3803            0 :                         tree res = generic_simplify_40 (loc, type, _p0, _p1, captures);
    3804            0 :                         if (res) return res;
    3805              :                       }
    3806              :                     }
    3807              :                 }
    3808              :               break;
    3809              :             }
    3810              :           default:;
    3811              :           }
    3812              :         break;
    3813              :       }
    3814     31471674 :     default:;
    3815              :     }
    3816     31471674 :   switch (TREE_CODE (_p0))
    3817              :     {
    3818      1830638 :     case MULT_EXPR:
    3819      1830638 :       {
    3820      1830638 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3821      1830638 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3822      1830638 :         switch (TREE_CODE (_q21))
    3823              :           {
    3824          609 :           case PLUS_EXPR:
    3825          609 :             {
    3826          609 :               tree _q40 = TREE_OPERAND (_q21, 0);
    3827          609 :               tree _q41 = TREE_OPERAND (_q21, 1);
    3828          609 :               switch (TREE_CODE (_q40))
    3829              :                 {
    3830            0 :                 case TRUNC_DIV_EXPR:
    3831            0 :                   {
    3832            0 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    3833            0 :                     tree _q51 = TREE_OPERAND (_q40, 1);
    3834            0 :                     if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    3835              :                       {
    3836            0 :                         if (integer_onep (_q41))
    3837              :                           {
    3838            0 :                             if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50)))
    3839              :                               {
    3840            0 :                                 {
    3841            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q40, _q50 };
    3842            0 :                                   tree res = generic_simplify_41 (loc, type, _p0, _p1, captures);
    3843            0 :                                   if (res) return res;
    3844              :                                 }
    3845              :                               }
    3846              :                           }
    3847              :                       }
    3848              :                     break;
    3849              :                   }
    3850              :                 default:;
    3851              :                 }
    3852              :               break;
    3853              :             }
    3854      1830638 :           default:;
    3855              :           }
    3856      1830638 :         switch (TREE_CODE (_q20))
    3857              :           {
    3858       103664 :           case PLUS_EXPR:
    3859       103664 :             {
    3860       103664 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3861       103664 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3862       103664 :               switch (TREE_CODE (_q30))
    3863              :                 {
    3864            1 :                 case TRUNC_DIV_EXPR:
    3865            1 :                   {
    3866            1 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    3867            1 :                     tree _q41 = TREE_OPERAND (_q30, 1);
    3868            1 :                     if (integer_onep (_q31))
    3869              :                       {
    3870            1 :                         if ((_q21 == _q41 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q41, 0) && types_match (_q21, _q41)))
    3871              :                           {
    3872            1 :                             if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    3873              :                               {
    3874            1 :                                 {
    3875            1 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q41, _q20, _q30, _q40 };
    3876            1 :                                   tree res = generic_simplify_41 (loc, type, _p0, _p1, captures);
    3877            1 :                                   if (res) return res;
    3878              :                                 }
    3879              :                               }
    3880              :                           }
    3881              :                       }
    3882              :                     break;
    3883              :                   }
    3884              :                 default:;
    3885              :                 }
    3886              :               break;
    3887              :             }
    3888              :           default:;
    3889              :           }
    3890              :         break;
    3891              :       }
    3892         1266 :     case LSHIFT_EXPR:
    3893         1266 :       {
    3894         1266 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3895         1266 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3896         1266 :         switch (TREE_CODE (_p1))
    3897              :           {
    3898            0 :           case LSHIFT_EXPR:
    3899            0 :             {
    3900            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    3901            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    3902            0 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    3903              :                 {
    3904            0 :                   {
    3905            0 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
    3906            0 :                     tree res = generic_simplify_6 (loc, type, _p0, _p1, captures, MINUS_EXPR);
    3907            0 :                     if (res) return res;
    3908              :                   }
    3909              :                 }
    3910              :               break;
    3911              :             }
    3912              :           default:;
    3913              :           }
    3914              :         break;
    3915              :       }
    3916         1181 :     case BIT_AND_EXPR:
    3917         1181 :       {
    3918         1181 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3919         1181 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3920         1181 :         switch (TREE_CODE (_q21))
    3921              :           {
    3922            0 :           case BIT_NOT_EXPR:
    3923            0 :             {
    3924            0 :               tree _q40 = TREE_OPERAND (_q21, 0);
    3925            0 :               switch (TREE_CODE (_p1))
    3926              :                 {
    3927            0 :                 case BIT_AND_EXPR:
    3928            0 :                   {
    3929            0 :                     tree _q60 = TREE_OPERAND (_p1, 0);
    3930            0 :                     tree _q61 = TREE_OPERAND (_p1, 1);
    3931            0 :                     if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    3932              :                       {
    3933            0 :                         if ((_q61 == _q40 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q40, 0) && types_match (_q61, _q40)))
    3934              :                           {
    3935            0 :                             {
    3936            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _p1 };
    3937            0 :                               tree res = generic_simplify_42 (loc, type, _p0, _p1, captures);
    3938            0 :                               if (res) return res;
    3939              :                             }
    3940              :                           }
    3941              :                       }
    3942            0 :                     if ((_q60 == _q40 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q40, 0) && types_match (_q60, _q40)))
    3943              :                       {
    3944            0 :                         if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
    3945              :                           {
    3946            0 :                             {
    3947            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _p1 };
    3948            0 :                               tree res = generic_simplify_42 (loc, type, _p0, _p1, captures);
    3949            0 :                               if (res) return res;
    3950              :                             }
    3951              :                           }
    3952              :                       }
    3953              :                     break;
    3954              :                   }
    3955              :                 default:;
    3956              :                 }
    3957              :               break;
    3958              :             }
    3959         1181 :           default:;
    3960              :           }
    3961         1181 :         switch (TREE_CODE (_q20))
    3962              :           {
    3963           27 :           case BIT_NOT_EXPR:
    3964           27 :             {
    3965           27 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3966           27 :               switch (TREE_CODE (_p1))
    3967              :                 {
    3968           21 :                 case BIT_AND_EXPR:
    3969           21 :                   {
    3970           21 :                     tree _q60 = TREE_OPERAND (_p1, 0);
    3971           21 :                     tree _q61 = TREE_OPERAND (_p1, 1);
    3972           21 :                     if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
    3973              :                       {
    3974            0 :                         if ((_q61 == _q30 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q30, 0) && types_match (_q61, _q30)))
    3975              :                           {
    3976            0 :                             {
    3977            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q30, _p1 };
    3978            0 :                               tree res = generic_simplify_42 (loc, type, _p0, _p1, captures);
    3979            0 :                               if (res) return res;
    3980              :                             }
    3981              :                           }
    3982              :                       }
    3983           21 :                     if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q30, 0) && types_match (_q60, _q30)))
    3984              :                       {
    3985           21 :                         if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
    3986              :                           {
    3987           21 :                             {
    3988           21 :                               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q30, _p1 };
    3989           21 :                               tree res = generic_simplify_42 (loc, type, _p0, _p1, captures);
    3990           21 :                               if (res) return res;
    3991              :                             }
    3992              :                           }
    3993              :                       }
    3994              :                     break;
    3995              :                   }
    3996              :                 default:;
    3997              :                 }
    3998              :               break;
    3999              :             }
    4000         1160 :           default:;
    4001              :           }
    4002         1160 :         switch (TREE_CODE (_q21))
    4003              :           {
    4004         1120 :           case INTEGER_CST:
    4005         1120 :             {
    4006         1120 :               switch (TREE_CODE (_p1))
    4007              :                 {
    4008           22 :                 case BIT_AND_EXPR:
    4009           22 :                   {
    4010           22 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    4011           22 :                     tree _q51 = TREE_OPERAND (_p1, 1);
    4012           22 :                     if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    4013              :                       {
    4014            0 :                         switch (TREE_CODE (_q51))
    4015              :                           {
    4016            0 :                           case INTEGER_CST:
    4017            0 :                             {
    4018            0 :                               {
    4019            0 :                                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
    4020            0 :                                 if (~wi::to_wide (captures[2]) == wi::to_wide (captures[4])
    4021              : )
    4022              :                                   {
    4023            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1175;
    4024            0 :                                     {
    4025            0 :                                       if (! tree_invariant_p (captures[4])) goto next_after_fail1175;
    4026            0 :                                       tree res_op0;
    4027            0 :                                       {
    4028            0 :                                         tree _o1[2], _r1;
    4029            0 :                                         _o1[0] = captures[1];
    4030            0 :                                         _o1[1] = unshare_expr (captures[4]);
    4031            0 :                                         _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    4032            0 :                                         res_op0 = _r1;
    4033              :                                       }
    4034            0 :                                       tree res_op1;
    4035            0 :                                       res_op1 = captures[4];
    4036            0 :                                       tree _r;
    4037            0 :                                       _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
    4038            0 :                                       if (TREE_SIDE_EFFECTS (captures[2]))
    4039            0 :                                         _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    4040            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 891, __FILE__, __LINE__, true);
    4041            0 :                                       return _r;
    4042              :                                     }
    4043            0 : next_after_fail1175:;
    4044              :                                   }
    4045              :                               }
    4046            0 :                               break;
    4047              :                             }
    4048              :                           default:;
    4049              :                           }
    4050              :                       }
    4051              :                     break;
    4052              :                   }
    4053              :                 default:;
    4054              :                 }
    4055              :               break;
    4056              :             }
    4057         1160 :           default:;
    4058              :           }
    4059         1160 :         switch (TREE_CODE (_p1))
    4060              :           {
    4061           25 :           case BIT_AND_EXPR:
    4062           25 :             {
    4063           25 :               tree _q50 = TREE_OPERAND (_p1, 0);
    4064           25 :               tree _q51 = TREE_OPERAND (_p1, 1);
    4065           25 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    4066              :                 {
    4067            0 :                   switch (TREE_CODE (_q51))
    4068              :                     {
    4069            0 :                     case BIT_NOT_EXPR:
    4070            0 :                       {
    4071            0 :                         tree _q70 = TREE_OPERAND (_q51, 0);
    4072            0 :                         if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
    4073              :                           {
    4074            0 :                             {
    4075            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    4076            0 :                               tree res = generic_simplify_43 (loc, type, _p0, _p1, captures);
    4077            0 :                               if (res) return res;
    4078              :                             }
    4079              :                           }
    4080              :                         break;
    4081              :                       }
    4082              :                     default:;
    4083              :                     }
    4084              :                 }
    4085           25 :               switch (TREE_CODE (_q50))
    4086              :                 {
    4087            0 :                 case BIT_NOT_EXPR:
    4088            0 :                   {
    4089            0 :                     tree _q60 = TREE_OPERAND (_q50, 0);
    4090            0 :                     if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
    4091              :                       {
    4092            0 :                         if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    4093              :                           {
    4094            0 :                             {
    4095            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    4096            0 :                               tree res = generic_simplify_43 (loc, type, _p0, _p1, captures);
    4097            0 :                               if (res) return res;
    4098              :                             }
    4099              :                           }
    4100              :                       }
    4101            0 :                     if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    4102              :                       {
    4103            0 :                         if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    4104              :                           {
    4105            0 :                             {
    4106            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1 };
    4107            0 :                               tree res = generic_simplify_43 (loc, type, _p0, _p1, captures);
    4108            0 :                               if (res) return res;
    4109              :                             }
    4110              :                           }
    4111              :                       }
    4112              :                     break;
    4113              :                   }
    4114           25 :                 default:;
    4115              :                 }
    4116           25 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    4117              :                 {
    4118            0 :                   switch (TREE_CODE (_q51))
    4119              :                     {
    4120            0 :                     case BIT_NOT_EXPR:
    4121            0 :                       {
    4122            0 :                         tree _q70 = TREE_OPERAND (_q51, 0);
    4123            0 :                         if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
    4124              :                           {
    4125            0 :                             {
    4126            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1 };
    4127            0 :                               tree res = generic_simplify_43 (loc, type, _p0, _p1, captures);
    4128            0 :                               if (res) return res;
    4129              :                             }
    4130              :                           }
    4131              :                         break;
    4132              :                       }
    4133              :                     default:;
    4134              :                     }
    4135              :                 }
    4136              :               break;
    4137              :             }
    4138            2 :           case PLUS_EXPR:
    4139            2 :             {
    4140            2 :               tree _q50 = TREE_OPERAND (_p1, 0);
    4141            2 :               tree _q51 = TREE_OPERAND (_p1, 1);
    4142            2 :               switch (TREE_CODE (_q50))
    4143              :                 {
    4144            2 :                 case BIT_IOR_EXPR:
    4145            2 :                   {
    4146            2 :                     tree _q60 = TREE_OPERAND (_q50, 0);
    4147            2 :                     tree _q61 = TREE_OPERAND (_q50, 1);
    4148            2 :                     if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    4149              :                       {
    4150            2 :                         if ((_q61 == _q21 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q21, 0) && types_match (_q61, _q21)))
    4151              :                           {
    4152            2 :                             if (integer_onep (_q51))
    4153              :                               {
    4154            2 :                                 {
    4155            2 :                                   tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    4156            2 :                                   tree res = generic_simplify_44 (loc, type, _p0, _p1, captures);
    4157            2 :                                   if (res) return res;
    4158              :                                 }
    4159              :                               }
    4160              :                           }
    4161              :                       }
    4162            0 :                     if ((_q60 == _q21 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q21, 0) && types_match (_q60, _q21)))
    4163              :                       {
    4164            0 :                         if ((_q61 == _q20 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q20, 0) && types_match (_q61, _q20)))
    4165              :                           {
    4166            0 :                             if (integer_onep (_q51))
    4167              :                               {
    4168            0 :                                 {
    4169            0 :                                   tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    4170            0 :                                   tree res = generic_simplify_44 (loc, type, _p0, _p1, captures);
    4171            0 :                                   if (res) return res;
    4172              :                                 }
    4173              :                               }
    4174              :                           }
    4175              :                       }
    4176              :                     break;
    4177              :                   }
    4178            0 :                 default:;
    4179              :                 }
    4180            0 :             {
    4181            0 :               tree _q50_pops[1];
    4182            0 :               if (tree_nop_convert (_q50, _q50_pops))
    4183              :                 {
    4184            0 :                   tree _q60 = _q50_pops[0];
    4185            0 :                   switch (TREE_CODE (_q60))
    4186              :                     {
    4187            0 :                     case BIT_IOR_EXPR:
    4188            0 :                       {
    4189            0 :                         tree _q70 = TREE_OPERAND (_q60, 0);
    4190            0 :                         tree _q71 = TREE_OPERAND (_q60, 1);
    4191            0 :                         if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
    4192              :                           {
    4193            0 :                             if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
    4194              :                               {
    4195            0 :                                 if (integer_onep (_q51))
    4196              :                                   {
    4197            0 :                                     {
    4198            0 :                                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    4199            0 :                                       tree res = generic_simplify_44 (loc, type, _p0, _p1, captures);
    4200            0 :                                       if (res) return res;
    4201              :                                     }
    4202              :                                   }
    4203              :                               }
    4204              :                           }
    4205            0 :                         if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
    4206              :                           {
    4207            0 :                             if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
    4208              :                               {
    4209            0 :                                 if (integer_onep (_q51))
    4210              :                                   {
    4211            0 :                                     {
    4212            0 :                                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    4213            0 :                                       tree res = generic_simplify_44 (loc, type, _p0, _p1, captures);
    4214            0 :                                       if (res) return res;
    4215              :                                     }
    4216              :                                   }
    4217              :                               }
    4218              :                           }
    4219              :                         break;
    4220              :                       }
    4221              :                     default:;
    4222              :                     }
    4223              :                 }
    4224              :             }
    4225            0 :               break;
    4226              :             }
    4227         1158 :           default:;
    4228              :           }
    4229         1158 :       {
    4230         1158 :         tree _p1_pops[1];
    4231         1158 :         if (tree_nop_convert (_p1, _p1_pops))
    4232              :           {
    4233            7 :             tree _q50 = _p1_pops[0];
    4234            7 :             switch (TREE_CODE (_q50))
    4235              :               {
    4236            0 :               case PLUS_EXPR:
    4237            0 :                 {
    4238            0 :                   tree _q60 = TREE_OPERAND (_q50, 0);
    4239            0 :                   tree _q61 = TREE_OPERAND (_q50, 1);
    4240            0 :                   switch (TREE_CODE (_q60))
    4241              :                     {
    4242            0 :                     case BIT_IOR_EXPR:
    4243            0 :                       {
    4244            0 :                         tree _q70 = TREE_OPERAND (_q60, 0);
    4245            0 :                         tree _q71 = TREE_OPERAND (_q60, 1);
    4246            0 :                         if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
    4247              :                           {
    4248            0 :                             if ((_q71 == _q21 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q21, 0) && types_match (_q71, _q21)))
    4249              :                               {
    4250            0 :                                 if (integer_onep (_q61))
    4251              :                                   {
    4252            0 :                                     {
    4253            0 :                                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    4254            0 :                                       tree res = generic_simplify_44 (loc, type, _p0, _p1, captures);
    4255            0 :                                       if (res) return res;
    4256              :                                     }
    4257              :                                   }
    4258              :                               }
    4259              :                           }
    4260            0 :                         if ((_q70 == _q21 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q21, 0) && types_match (_q70, _q21)))
    4261              :                           {
    4262            0 :                             if ((_q71 == _q20 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q20, 0) && types_match (_q71, _q20)))
    4263              :                               {
    4264            0 :                                 if (integer_onep (_q61))
    4265              :                                   {
    4266            0 :                                     {
    4267            0 :                                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    4268            0 :                                       tree res = generic_simplify_44 (loc, type, _p0, _p1, captures);
    4269            0 :                                       if (res) return res;
    4270              :                                     }
    4271              :                                   }
    4272              :                               }
    4273              :                           }
    4274              :                         break;
    4275              :                       }
    4276            0 :                     default:;
    4277              :                     }
    4278            0 :                 {
    4279            0 :                   tree _q60_pops[1];
    4280            0 :                   if (tree_nop_convert (_q60, _q60_pops))
    4281              :                     {
    4282            0 :                       tree _q70 = _q60_pops[0];
    4283            0 :                       switch (TREE_CODE (_q70))
    4284              :                         {
    4285            0 :                         case BIT_IOR_EXPR:
    4286            0 :                           {
    4287            0 :                             tree _q80 = TREE_OPERAND (_q70, 0);
    4288            0 :                             tree _q81 = TREE_OPERAND (_q70, 1);
    4289            0 :                             if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
    4290              :                               {
    4291            0 :                                 if ((_q81 == _q21 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q21, 0) && types_match (_q81, _q21)))
    4292              :                                   {
    4293            0 :                                     if (integer_onep (_q61))
    4294              :                                       {
    4295            0 :                                         {
    4296            0 :                                           tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    4297            0 :                                           tree res = generic_simplify_44 (loc, type, _p0, _p1, captures);
    4298            0 :                                           if (res) return res;
    4299              :                                         }
    4300              :                                       }
    4301              :                                   }
    4302              :                               }
    4303            0 :                             if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
    4304              :                               {
    4305            0 :                                 if ((_q81 == _q20 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q20, 0) && types_match (_q81, _q20)))
    4306              :                                   {
    4307            0 :                                     if (integer_onep (_q61))
    4308              :                                       {
    4309            0 :                                         {
    4310            0 :                                           tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    4311            0 :                                           tree res = generic_simplify_44 (loc, type, _p0, _p1, captures);
    4312            0 :                                           if (res) return res;
    4313              :                                         }
    4314              :                                       }
    4315              :                                   }
    4316              :                               }
    4317              :                             break;
    4318              :                           }
    4319              :                         default:;
    4320              :                         }
    4321              :                     }
    4322              :                 }
    4323            0 :                   break;
    4324              :                 }
    4325              :               default:;
    4326              :               }
    4327              :           }
    4328              :       }
    4329         1158 :         break;
    4330              :       }
    4331         2849 :     case BIT_NOT_EXPR:
    4332         2849 :       {
    4333         2849 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4334         2849 :         switch (TREE_CODE (_p1))
    4335              :           {
    4336           22 :           case BIT_NOT_EXPR:
    4337           22 :             {
    4338           22 :               tree _q40 = TREE_OPERAND (_p1, 0);
    4339           22 :               {
    4340           22 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    4341           22 :                 if (!TYPE_OVERFLOW_SANITIZED (type)
    4342              : )
    4343              :                   {
    4344            9 :                     {
    4345            9 :  tree utype = unsigned_type_for (type);
    4346            9 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1176;
    4347            9 :                         {
    4348            9 :                           tree res_op0;
    4349            9 :                           {
    4350            9 :                             tree _o1[2], _r1;
    4351            9 :                             {
    4352            9 :                               tree _o2[1], _r2;
    4353            9 :                               _o2[0] = captures[1];
    4354            9 :                               if (TREE_TYPE (_o2[0]) != utype)
    4355              :                                 {
    4356            9 :                                   _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
    4357              :                                 }
    4358              :                               else
    4359              :                                 _r2 = _o2[0];
    4360            9 :                               _o1[0] = _r2;
    4361              :                             }
    4362            9 :                             {
    4363            9 :                               tree _o2[1], _r2;
    4364            9 :                               _o2[0] = captures[0];
    4365            9 :                               if (TREE_TYPE (_o2[0]) != utype)
    4366              :                                 {
    4367            9 :                                   _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
    4368              :                                 }
    4369              :                               else
    4370              :                                 _r2 = _o2[0];
    4371            9 :                               _o1[1] = _r2;
    4372              :                             }
    4373            9 :                             _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    4374            9 :                             res_op0 = _r1;
    4375              :                           }
    4376            9 :                           tree _r;
    4377            9 :                           _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4378            9 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 892, __FILE__, __LINE__, true);
    4379            9 :                           return _r;
    4380              :                         }
    4381            0 : next_after_fail1176:;
    4382              :                     }
    4383              :                   }
    4384              :               }
    4385           13 :               break;
    4386              :             }
    4387              :           default:;
    4388              :           }
    4389              :         break;
    4390              :       }
    4391      2273668 :     case PLUS_EXPR:
    4392      2273668 :       {
    4393      2273668 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4394      2273668 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4395      2273668 :         switch (TREE_CODE (_p1))
    4396              :           {
    4397           14 :           case BIT_IOR_EXPR:
    4398           14 :             {
    4399           14 :               tree _q50 = TREE_OPERAND (_p1, 0);
    4400           14 :               tree _q51 = TREE_OPERAND (_p1, 1);
    4401           14 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    4402              :                 {
    4403           13 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    4404              :                     {
    4405           13 :                       {
    4406           13 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4407           13 :                         if (!TYPE_OVERFLOW_SANITIZED (type) && !TYPE_OVERFLOW_TRAPS (type)
    4408           13 :  && !TYPE_SATURATING (type)
    4409              : )
    4410              :                           {
    4411            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1177;
    4412            0 :                             {
    4413            0 :                               tree res_op0;
    4414            0 :                               res_op0 = captures[0];
    4415            0 :                               tree res_op1;
    4416            0 :                               res_op1 = captures[1];
    4417            0 :                               tree _r;
    4418            0 :                               _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    4419            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
    4420            0 :                               return _r;
    4421              :                             }
    4422            0 : next_after_fail1177:;
    4423              :                           }
    4424              :                       }
    4425              :                     }
    4426              :                 }
    4427              :               break;
    4428              :             }
    4429           86 :           case BIT_AND_EXPR:
    4430           86 :             {
    4431           86 :               tree _q50 = TREE_OPERAND (_p1, 0);
    4432           86 :               tree _q51 = TREE_OPERAND (_p1, 1);
    4433           86 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    4434              :                 {
    4435           25 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    4436              :                     {
    4437           13 :                       {
    4438           13 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4439           13 :                         if (!TYPE_OVERFLOW_SANITIZED (type) && !TYPE_OVERFLOW_TRAPS (type)
    4440           13 :  && !TYPE_SATURATING (type)
    4441              : )
    4442              :                           {
    4443            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1178;
    4444            0 :                             {
    4445            0 :                               tree res_op0;
    4446            0 :                               res_op0 = captures[0];
    4447            0 :                               tree res_op1;
    4448            0 :                               res_op1 = captures[1];
    4449            0 :                               tree _r;
    4450            0 :                               _r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
    4451            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 894, __FILE__, __LINE__, true);
    4452            0 :                               return _r;
    4453              :                             }
    4454            0 : next_after_fail1178:;
    4455              :                           }
    4456              :                       }
    4457              :                     }
    4458              :                 }
    4459              :               break;
    4460              :             }
    4461      2273668 :           default:;
    4462              :           }
    4463      2273668 :         switch (TREE_CODE (_q20))
    4464              :           {
    4465          593 :           case BIT_AND_EXPR:
    4466          593 :             {
    4467          593 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4468          593 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4469          593 :               if (integer_all_onesp (_q21))
    4470              :                 {
    4471            1 :                   switch (TREE_CODE (_p1))
    4472              :                     {
    4473            1 :                     case BIT_IOR_EXPR:
    4474            1 :                       {
    4475            1 :                         tree _q70 = TREE_OPERAND (_p1, 0);
    4476            1 :                         tree _q71 = TREE_OPERAND (_p1, 1);
    4477            1 :                         if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
    4478              :                           {
    4479            1 :                             if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
    4480              :                               {
    4481            1 :                                 {
    4482            1 :                                   tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
    4483            1 :                                   tree res = generic_simplify_45 (loc, type, _p0, _p1, captures);
    4484            1 :                                   if (res) return res;
    4485              :                                 }
    4486              :                               }
    4487              :                           }
    4488            0 :                         if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
    4489              :                           {
    4490            0 :                             if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
    4491              :                               {
    4492            0 :                                 {
    4493            0 :                                   tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q31, _q30 };
    4494            0 :                                   tree res = generic_simplify_45 (loc, type, _p0, _p1, captures);
    4495            0 :                                   if (res) return res;
    4496              :                                 }
    4497              :                               }
    4498              :                           }
    4499              :                         break;
    4500              :                       }
    4501            0 :                     default:;
    4502              :                     }
    4503            0 :                 {
    4504            0 :                   tree _p1_pops[1];
    4505            0 :                   if (tree_nop_convert (_p1, _p1_pops))
    4506              :                     {
    4507            0 :                       tree _q70 = _p1_pops[0];
    4508            0 :                       switch (TREE_CODE (_q70))
    4509              :                         {
    4510            0 :                         case BIT_IOR_EXPR:
    4511            0 :                           {
    4512            0 :                             tree _q80 = TREE_OPERAND (_q70, 0);
    4513            0 :                             tree _q81 = TREE_OPERAND (_q70, 1);
    4514            0 :                             if ((_q80 == _q30 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q30, 0) && types_match (_q80, _q30)))
    4515              :                               {
    4516            0 :                                 if ((_q81 == _q31 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q31, 0) && types_match (_q81, _q31)))
    4517              :                                   {
    4518            0 :                                     {
    4519            0 :                                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
    4520            0 :                                       tree res = generic_simplify_45 (loc, type, _p0, _p1, captures);
    4521            0 :                                       if (res) return res;
    4522              :                                     }
    4523              :                                   }
    4524              :                               }
    4525            0 :                             if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
    4526              :                               {
    4527            0 :                                 if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
    4528              :                                   {
    4529            0 :                                     {
    4530            0 :                                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q31, _q30 };
    4531            0 :                                       tree res = generic_simplify_45 (loc, type, _p0, _p1, captures);
    4532            0 :                                       if (res) return res;
    4533              :                                     }
    4534              :                                   }
    4535              :                               }
    4536              :                             break;
    4537              :                           }
    4538              :                         default:;
    4539              :                         }
    4540              :                     }
    4541              :                 }
    4542              :                 }
    4543              :               break;
    4544              :             }
    4545      2273667 :           default:;
    4546              :           }
    4547      2273667 :       {
    4548      2273667 :         tree _q20_pops[1];
    4549      2273667 :         if (tree_nop_convert (_q20, _q20_pops))
    4550              :           {
    4551       552059 :             tree _q30 = _q20_pops[0];
    4552       552059 :             switch (TREE_CODE (_q30))
    4553              :               {
    4554            0 :               case BIT_AND_EXPR:
    4555            0 :                 {
    4556            0 :                   tree _q40 = TREE_OPERAND (_q30, 0);
    4557            0 :                   tree _q41 = TREE_OPERAND (_q30, 1);
    4558            0 :                   if (integer_all_onesp (_q21))
    4559              :                     {
    4560            0 :                       switch (TREE_CODE (_p1))
    4561              :                         {
    4562            0 :                         case BIT_IOR_EXPR:
    4563            0 :                           {
    4564            0 :                             tree _q80 = TREE_OPERAND (_p1, 0);
    4565            0 :                             tree _q81 = TREE_OPERAND (_p1, 1);
    4566            0 :                             if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
    4567              :                               {
    4568            0 :                                 if ((_q81 == _q41 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q41, 0) && types_match (_q81, _q41)))
    4569              :                                   {
    4570            0 :                                     {
    4571            0 :                                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q41 };
    4572            0 :                                       tree res = generic_simplify_45 (loc, type, _p0, _p1, captures);
    4573            0 :                                       if (res) return res;
    4574              :                                     }
    4575              :                                   }
    4576              :                               }
    4577            0 :                             if ((_q80 == _q41 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q41, 0) && types_match (_q80, _q41)))
    4578              :                               {
    4579            0 :                                 if ((_q81 == _q40 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q40, 0) && types_match (_q81, _q40)))
    4580              :                                   {
    4581            0 :                                     {
    4582            0 :                                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q41, _q40 };
    4583            0 :                                       tree res = generic_simplify_45 (loc, type, _p0, _p1, captures);
    4584            0 :                                       if (res) return res;
    4585              :                                     }
    4586              :                                   }
    4587              :                               }
    4588              :                             break;
    4589              :                           }
    4590            0 :                         default:;
    4591              :                         }
    4592            0 :                     {
    4593            0 :                       tree _p1_pops[1];
    4594            0 :                       if (tree_nop_convert (_p1, _p1_pops))
    4595              :                         {
    4596            0 :                           tree _q80 = _p1_pops[0];
    4597            0 :                           switch (TREE_CODE (_q80))
    4598              :                             {
    4599            0 :                             case BIT_IOR_EXPR:
    4600            0 :                               {
    4601            0 :                                 tree _q90 = TREE_OPERAND (_q80, 0);
    4602            0 :                                 tree _q91 = TREE_OPERAND (_q80, 1);
    4603            0 :                                 if ((_q90 == _q40 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q40, 0) && types_match (_q90, _q40)))
    4604              :                                   {
    4605            0 :                                     if ((_q91 == _q41 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q41, 0) && types_match (_q91, _q41)))
    4606              :                                       {
    4607            0 :                                         {
    4608            0 :                                           tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q41 };
    4609            0 :                                           tree res = generic_simplify_45 (loc, type, _p0, _p1, captures);
    4610            0 :                                           if (res) return res;
    4611              :                                         }
    4612              :                                       }
    4613              :                                   }
    4614            0 :                                 if ((_q90 == _q41 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q41, 0) && types_match (_q90, _q41)))
    4615              :                                   {
    4616            0 :                                     if ((_q91 == _q40 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q40, 0) && types_match (_q91, _q40)))
    4617              :                                       {
    4618            0 :                                         {
    4619            0 :                                           tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q41, _q40 };
    4620            0 :                                           tree res = generic_simplify_45 (loc, type, _p0, _p1, captures);
    4621            0 :                                           if (res) return res;
    4622              :                                         }
    4623              :                                       }
    4624              :                                   }
    4625              :                                 break;
    4626              :                               }
    4627              :                             default:;
    4628              :                             }
    4629              :                         }
    4630              :                     }
    4631              :                     }
    4632              :                   break;
    4633              :                 }
    4634              :               default:;
    4635              :               }
    4636              :           }
    4637              :       }
    4638      2273667 :         break;
    4639              :       }
    4640           77 :     case BIT_IOR_EXPR:
    4641           77 :       {
    4642           77 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4643           77 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4644           77 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    4645              :           {
    4646            5 :             {
    4647            5 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    4648            5 :               tree res = generic_simplify_46 (loc, type, _p0, _p1, captures);
    4649            5 :               if (res) return res;
    4650              :             }
    4651              :           }
    4652           72 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    4653              :           {
    4654            0 :             {
    4655            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
    4656            0 :               tree res = generic_simplify_46 (loc, type, _p0, _p1, captures);
    4657            0 :               if (res) return res;
    4658              :             }
    4659              :           }
    4660           72 :         switch (TREE_CODE (_p1))
    4661              :           {
    4662            0 :           case BIT_XOR_EXPR:
    4663            0 :             {
    4664            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    4665            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    4666            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    4667              :                 {
    4668            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    4669              :                     {
    4670            0 :                       {
    4671            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4672            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1179;
    4673            0 :                         {
    4674            0 :                           tree res_op0;
    4675            0 :                           res_op0 = captures[0];
    4676            0 :                           tree res_op1;
    4677            0 :                           res_op1 = captures[1];
    4678            0 :                           tree _r;
    4679            0 :                           _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    4680            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
    4681            0 :                           return _r;
    4682              :                         }
    4683            0 : next_after_fail1179:;
    4684              :                       }
    4685              :                     }
    4686              :                 }
    4687              :               break;
    4688              :             }
    4689            0 :           case BIT_AND_EXPR:
    4690            0 :             {
    4691            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    4692            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    4693            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    4694              :                 {
    4695            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    4696              :                     {
    4697            0 :                       {
    4698            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4699            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1180;
    4700            0 :                         {
    4701            0 :                           tree res_op0;
    4702            0 :                           res_op0 = captures[0];
    4703            0 :                           tree res_op1;
    4704            0 :                           res_op1 = captures[1];
    4705            0 :                           tree _r;
    4706            0 :                           _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
    4707            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
    4708            0 :                           return _r;
    4709              :                         }
    4710            0 : next_after_fail1180:;
    4711              :                       }
    4712              :                     }
    4713              :                 }
    4714              :               break;
    4715              :             }
    4716              :           default:;
    4717              :           }
    4718              :         break;
    4719              :       }
    4720     31471635 :     default:;
    4721              :     }
    4722     31471635 : {
    4723     31471635 :   tree _p0_pops[1];
    4724     31471635 :   if (tree_nop_convert (_p0, _p0_pops))
    4725              :     {
    4726      7564095 :       tree _q20 = _p0_pops[0];
    4727      7564095 :       switch (TREE_CODE (_q20))
    4728              :         {
    4729      1010221 :         case PLUS_EXPR:
    4730      1010221 :           {
    4731      1010221 :             tree _q30 = TREE_OPERAND (_q20, 0);
    4732      1010221 :             tree _q31 = TREE_OPERAND (_q20, 1);
    4733      1010221 :             switch (TREE_CODE (_q30))
    4734              :               {
    4735            8 :               case BIT_AND_EXPR:
    4736            8 :                 {
    4737            8 :                   tree _q40 = TREE_OPERAND (_q30, 0);
    4738            8 :                   tree _q41 = TREE_OPERAND (_q30, 1);
    4739            8 :                   if (integer_all_onesp (_q31))
    4740              :                     {
    4741            0 :                       switch (TREE_CODE (_p1))
    4742              :                         {
    4743            0 :                         case BIT_IOR_EXPR:
    4744            0 :                           {
    4745            0 :                             tree _q80 = TREE_OPERAND (_p1, 0);
    4746            0 :                             tree _q81 = TREE_OPERAND (_p1, 1);
    4747            0 :                             if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
    4748              :                               {
    4749            0 :                                 if ((_q81 == _q41 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q41, 0) && types_match (_q81, _q41)))
    4750              :                                   {
    4751            0 :                                     {
    4752            0 :                                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q40, _q41 };
    4753            0 :                                       tree res = generic_simplify_45 (loc, type, _p0, _p1, captures);
    4754            0 :                                       if (res) return res;
    4755              :                                     }
    4756              :                                   }
    4757              :                               }
    4758            0 :                             if ((_q80 == _q41 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q41, 0) && types_match (_q80, _q41)))
    4759              :                               {
    4760            0 :                                 if ((_q81 == _q40 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q40, 0) && types_match (_q81, _q40)))
    4761              :                                   {
    4762            0 :                                     {
    4763            0 :                                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q41, _q40 };
    4764            0 :                                       tree res = generic_simplify_45 (loc, type, _p0, _p1, captures);
    4765            0 :                                       if (res) return res;
    4766              :                                     }
    4767              :                                   }
    4768              :                               }
    4769              :                             break;
    4770              :                           }
    4771            0 :                         default:;
    4772              :                         }
    4773            0 :                     {
    4774            0 :                       tree _p1_pops[1];
    4775            0 :                       if (tree_nop_convert (_p1, _p1_pops))
    4776              :                         {
    4777            0 :                           tree _q80 = _p1_pops[0];
    4778            0 :                           switch (TREE_CODE (_q80))
    4779              :                             {
    4780            0 :                             case BIT_IOR_EXPR:
    4781            0 :                               {
    4782            0 :                                 tree _q90 = TREE_OPERAND (_q80, 0);
    4783            0 :                                 tree _q91 = TREE_OPERAND (_q80, 1);
    4784            0 :                                 if ((_q90 == _q40 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q40, 0) && types_match (_q90, _q40)))
    4785              :                                   {
    4786            0 :                                     if ((_q91 == _q41 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q41, 0) && types_match (_q91, _q41)))
    4787              :                                       {
    4788            0 :                                         {
    4789            0 :                                           tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q40, _q41 };
    4790            0 :                                           tree res = generic_simplify_45 (loc, type, _p0, _p1, captures);
    4791            0 :                                           if (res) return res;
    4792              :                                         }
    4793              :                                       }
    4794              :                                   }
    4795            0 :                                 if ((_q90 == _q41 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q41, 0) && types_match (_q90, _q41)))
    4796              :                                   {
    4797            0 :                                     if ((_q91 == _q40 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q40, 0) && types_match (_q91, _q40)))
    4798              :                                       {
    4799            0 :                                         {
    4800            0 :                                           tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q41, _q40 };
    4801            0 :                                           tree res = generic_simplify_45 (loc, type, _p0, _p1, captures);
    4802            0 :                                           if (res) return res;
    4803              :                                         }
    4804              :                                       }
    4805              :                                   }
    4806              :                                 break;
    4807              :                               }
    4808              :                             default:;
    4809              :                             }
    4810              :                         }
    4811              :                     }
    4812              :                     }
    4813              :                   break;
    4814              :                 }
    4815      1010221 :               default:;
    4816              :               }
    4817      1010221 :           {
    4818      1010221 :             tree _q30_pops[1];
    4819      1010221 :             if (tree_nop_convert (_q30, _q30_pops))
    4820              :               {
    4821        45179 :                 tree _q40 = _q30_pops[0];
    4822        45179 :                 switch (TREE_CODE (_q40))
    4823              :                   {
    4824            0 :                   case BIT_AND_EXPR:
    4825            0 :                     {
    4826            0 :                       tree _q50 = TREE_OPERAND (_q40, 0);
    4827            0 :                       tree _q51 = TREE_OPERAND (_q40, 1);
    4828            0 :                       if (integer_all_onesp (_q31))
    4829              :                         {
    4830            0 :                           switch (TREE_CODE (_p1))
    4831              :                             {
    4832            0 :                             case BIT_IOR_EXPR:
    4833            0 :                               {
    4834            0 :                                 tree _q90 = TREE_OPERAND (_p1, 0);
    4835            0 :                                 tree _q91 = TREE_OPERAND (_p1, 1);
    4836            0 :                                 if ((_q90 == _q50 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q50, 0) && types_match (_q90, _q50)))
    4837              :                                   {
    4838            0 :                                     if ((_q91 == _q51 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q51, 0) && types_match (_q91, _q51)))
    4839              :                                       {
    4840            0 :                                         {
    4841            0 :                                           tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q50, _q51 };
    4842            0 :                                           tree res = generic_simplify_45 (loc, type, _p0, _p1, captures);
    4843            0 :                                           if (res) return res;
    4844              :                                         }
    4845              :                                       }
    4846              :                                   }
    4847            0 :                                 if ((_q90 == _q51 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q51, 0) && types_match (_q90, _q51)))
    4848              :                                   {
    4849            0 :                                     if ((_q91 == _q50 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q50, 0) && types_match (_q91, _q50)))
    4850              :                                       {
    4851            0 :                                         {
    4852            0 :                                           tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q51, _q50 };
    4853            0 :                                           tree res = generic_simplify_45 (loc, type, _p0, _p1, captures);
    4854            0 :                                           if (res) return res;
    4855              :                                         }
    4856              :                                       }
    4857              :                                   }
    4858              :                                 break;
    4859              :                               }
    4860            0 :                             default:;
    4861              :                             }
    4862            0 :                         {
    4863            0 :                           tree _p1_pops[1];
    4864            0 :                           if (tree_nop_convert (_p1, _p1_pops))
    4865              :                             {
    4866            0 :                               tree _q90 = _p1_pops[0];
    4867            0 :                               switch (TREE_CODE (_q90))
    4868              :                                 {
    4869            0 :                                 case BIT_IOR_EXPR:
    4870            0 :                                   {
    4871            0 :                                     tree _q100 = TREE_OPERAND (_q90, 0);
    4872            0 :                                     tree _q101 = TREE_OPERAND (_q90, 1);
    4873            0 :                                     if ((_q100 == _q50 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q50, 0) && types_match (_q100, _q50)))
    4874              :                                       {
    4875            0 :                                         if ((_q101 == _q51 && ! TREE_SIDE_EFFECTS (_q101)) || (operand_equal_p (_q101, _q51, 0) && types_match (_q101, _q51)))
    4876              :                                           {
    4877            0 :                                             {
    4878            0 :                                               tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q50, _q51 };
    4879            0 :                                               tree res = generic_simplify_45 (loc, type, _p0, _p1, captures);
    4880            0 :                                               if (res) return res;
    4881              :                                             }
    4882              :                                           }
    4883              :                                       }
    4884            0 :                                     if ((_q100 == _q51 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q51, 0) && types_match (_q100, _q51)))
    4885              :                                       {
    4886            0 :                                         if ((_q101 == _q50 && ! TREE_SIDE_EFFECTS (_q101)) || (operand_equal_p (_q101, _q50, 0) && types_match (_q101, _q50)))
    4887              :                                           {
    4888            0 :                                             {
    4889            0 :                                               tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q51, _q50 };
    4890            0 :                                               tree res = generic_simplify_45 (loc, type, _p0, _p1, captures);
    4891            0 :                                               if (res) return res;
    4892              :                                             }
    4893              :                                           }
    4894              :                                       }
    4895              :                                     break;
    4896              :                                   }
    4897              :                                 default:;
    4898              :                                 }
    4899              :                             }
    4900              :                         }
    4901              :                         }
    4902              :                       break;
    4903              :                     }
    4904              :                   default:;
    4905              :                   }
    4906              :               }
    4907              :           }
    4908      1010221 :             break;
    4909              :           }
    4910           14 :         case BIT_AND_EXPR:
    4911           14 :           {
    4912           14 :             tree _q30 = TREE_OPERAND (_q20, 0);
    4913           14 :             tree _q31 = TREE_OPERAND (_q20, 1);
    4914           14 :             switch (TREE_CODE (_p1))
    4915              :               {
    4916            0 :               case PLUS_EXPR:
    4917            0 :                 {
    4918            0 :                   tree _q60 = TREE_OPERAND (_p1, 0);
    4919            0 :                   tree _q61 = TREE_OPERAND (_p1, 1);
    4920            0 :                   switch (TREE_CODE (_q60))
    4921              :                     {
    4922            0 :                     case BIT_IOR_EXPR:
    4923            0 :                       {
    4924            0 :                         tree _q70 = TREE_OPERAND (_q60, 0);
    4925            0 :                         tree _q71 = TREE_OPERAND (_q60, 1);
    4926            0 :                         if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
    4927              :                           {
    4928            0 :                             if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
    4929              :                               {
    4930            0 :                                 if (integer_onep (_q61))
    4931              :                                   {
    4932            0 :                                     {
    4933            0 :                                       tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
    4934            0 :                                       tree res = generic_simplify_44 (loc, type, _p0, _p1, captures);
    4935            0 :                                       if (res) return res;
    4936              :                                     }
    4937              :                                   }
    4938              :                               }
    4939              :                           }
    4940            0 :                         if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q31, 0) && types_match (_q70, _q31)))
    4941              :                           {
    4942            0 :                             if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
    4943              :                               {
    4944            0 :                                 if (integer_onep (_q61))
    4945              :                                   {
    4946            0 :                                     {
    4947            0 :                                       tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
    4948            0 :                                       tree res = generic_simplify_44 (loc, type, _p0, _p1, captures);
    4949            0 :                                       if (res) return res;
    4950              :                                     }
    4951              :                                   }
    4952              :                               }
    4953              :                           }
    4954              :                         break;
    4955              :                       }
    4956            0 :                     default:;
    4957              :                     }
    4958            0 :                 {
    4959            0 :                   tree _q60_pops[1];
    4960            0 :                   if (tree_nop_convert (_q60, _q60_pops))
    4961              :                     {
    4962            0 :                       tree _q70 = _q60_pops[0];
    4963            0 :                       switch (TREE_CODE (_q70))
    4964              :                         {
    4965            0 :                         case BIT_IOR_EXPR:
    4966            0 :                           {
    4967            0 :                             tree _q80 = TREE_OPERAND (_q70, 0);
    4968            0 :                             tree _q81 = TREE_OPERAND (_q70, 1);
    4969            0 :                             if ((_q80 == _q30 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q30, 0) && types_match (_q80, _q30)))
    4970              :                               {
    4971            0 :                                 if ((_q81 == _q31 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q31, 0) && types_match (_q81, _q31)))
    4972              :                                   {
    4973            0 :                                     if (integer_onep (_q61))
    4974              :                                       {
    4975            0 :                                         {
    4976            0 :                                           tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
    4977            0 :                                           tree res = generic_simplify_44 (loc, type, _p0, _p1, captures);
    4978            0 :                                           if (res) return res;
    4979              :                                         }
    4980              :                                       }
    4981              :                                   }
    4982              :                               }
    4983            0 :                             if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
    4984              :                               {
    4985            0 :                                 if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
    4986              :                                   {
    4987            0 :                                     if (integer_onep (_q61))
    4988              :                                       {
    4989            0 :                                         {
    4990            0 :                                           tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
    4991            0 :                                           tree res = generic_simplify_44 (loc, type, _p0, _p1, captures);
    4992            0 :                                           if (res) return res;
    4993              :                                         }
    4994              :                                       }
    4995              :                                   }
    4996              :                               }
    4997              :                             break;
    4998              :                           }
    4999              :                         default:;
    5000              :                         }
    5001              :                     }
    5002              :                 }
    5003            0 :                   break;
    5004              :                 }
    5005           14 :               default:;
    5006              :               }
    5007           14 :           {
    5008           14 :             tree _p1_pops[1];
    5009           14 :             if (tree_nop_convert (_p1, _p1_pops))
    5010              :               {
    5011           14 :                 tree _q60 = _p1_pops[0];
    5012           14 :                 switch (TREE_CODE (_q60))
    5013              :                   {
    5014            0 :                   case PLUS_EXPR:
    5015            0 :                     {
    5016            0 :                       tree _q70 = TREE_OPERAND (_q60, 0);
    5017            0 :                       tree _q71 = TREE_OPERAND (_q60, 1);
    5018            0 :                       switch (TREE_CODE (_q70))
    5019              :                         {
    5020            0 :                         case BIT_IOR_EXPR:
    5021            0 :                           {
    5022            0 :                             tree _q80 = TREE_OPERAND (_q70, 0);
    5023            0 :                             tree _q81 = TREE_OPERAND (_q70, 1);
    5024            0 :                             if ((_q80 == _q30 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q30, 0) && types_match (_q80, _q30)))
    5025              :                               {
    5026            0 :                                 if ((_q81 == _q31 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q31, 0) && types_match (_q81, _q31)))
    5027              :                                   {
    5028            0 :                                     if (integer_onep (_q71))
    5029              :                                       {
    5030            0 :                                         {
    5031            0 :                                           tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q60 };
    5032            0 :                                           tree res = generic_simplify_44 (loc, type, _p0, _p1, captures);
    5033            0 :                                           if (res) return res;
    5034              :                                         }
    5035              :                                       }
    5036              :                                   }
    5037              :                               }
    5038            0 :                             if ((_q80 == _q31 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q31, 0) && types_match (_q80, _q31)))
    5039              :                               {
    5040            0 :                                 if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
    5041              :                                   {
    5042            0 :                                     if (integer_onep (_q71))
    5043              :                                       {
    5044            0 :                                         {
    5045            0 :                                           tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q60 };
    5046            0 :                                           tree res = generic_simplify_44 (loc, type, _p0, _p1, captures);
    5047            0 :                                           if (res) return res;
    5048              :                                         }
    5049              :                                       }
    5050              :                                   }
    5051              :                               }
    5052              :                             break;
    5053              :                           }
    5054            0 :                         default:;
    5055              :                         }
    5056            0 :                     {
    5057            0 :                       tree _q70_pops[1];
    5058            0 :                       if (tree_nop_convert (_q70, _q70_pops))
    5059              :                         {
    5060            0 :                           tree _q80 = _q70_pops[0];
    5061            0 :                           switch (TREE_CODE (_q80))
    5062              :                             {
    5063            0 :                             case BIT_IOR_EXPR:
    5064            0 :                               {
    5065            0 :                                 tree _q90 = TREE_OPERAND (_q80, 0);
    5066            0 :                                 tree _q91 = TREE_OPERAND (_q80, 1);
    5067            0 :                                 if ((_q90 == _q30 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q30, 0) && types_match (_q90, _q30)))
    5068              :                                   {
    5069            0 :                                     if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
    5070              :                                       {
    5071            0 :                                         if (integer_onep (_q71))
    5072              :                                           {
    5073            0 :                                             {
    5074            0 :                                               tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q60 };
    5075            0 :                                               tree res = generic_simplify_44 (loc, type, _p0, _p1, captures);
    5076            0 :                                               if (res) return res;
    5077              :                                             }
    5078              :                                           }
    5079              :                                       }
    5080              :                                   }
    5081            0 :                                 if ((_q90 == _q31 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q31, 0) && types_match (_q90, _q31)))
    5082              :                                   {
    5083            0 :                                     if ((_q91 == _q30 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q30, 0) && types_match (_q91, _q30)))
    5084              :                                       {
    5085            0 :                                         if (integer_onep (_q71))
    5086              :                                           {
    5087            0 :                                             {
    5088            0 :                                               tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q60 };
    5089            0 :                                               tree res = generic_simplify_44 (loc, type, _p0, _p1, captures);
    5090            0 :                                               if (res) return res;
    5091              :                                             }
    5092              :                                           }
    5093              :                                       }
    5094              :                                   }
    5095              :                                 break;
    5096              :                               }
    5097              :                             default:;
    5098              :                             }
    5099              :                         }
    5100              :                     }
    5101            0 :                       break;
    5102              :                     }
    5103              :                   default:;
    5104              :                   }
    5105              :               }
    5106              :           }
    5107           14 :             break;
    5108              :           }
    5109              :         default:;
    5110              :         }
    5111              :     }
    5112              : }
    5113     31471635 :   if (tree_negate_expr_p (_p1))
    5114              :     {
    5115      7605552 :       {
    5116      7605552 :         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    5117      7605552 :         if (!FIXED_POINT_TYPE_P (type)
    5118              : )
    5119              :           {
    5120      7605552 :             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1181;
    5121      7605552 :             {
    5122      7605552 :               tree res_op0;
    5123      7605552 :               res_op0 = captures[0];
    5124      7605552 :               tree res_op1;
    5125      7605552 :               {
    5126      7605552 :                 tree _o1[1], _r1;
    5127      7605552 :                 _o1[0] = captures[1];
    5128      7605552 :                 _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    5129      7605552 :                 res_op1 = _r1;
    5130              :               }
    5131      7605552 :               tree _r;
    5132      7605552 :               _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
    5133      7605552 :               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
    5134      7605552 :               return _r;
    5135              :             }
    5136            0 : next_after_fail1181:;
    5137              :           }
    5138              :       }
    5139              :     }
    5140     23866083 :   switch (TREE_CODE (_p0))
    5141              :     {
    5142      5213154 :     CASE_CONVERT:
    5143      5213154 :       {
    5144      5213154 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5145      5213154 :         switch (TREE_CODE (_p1))
    5146              :           {
    5147      4197362 :           CASE_CONVERT:
    5148      4197362 :             {
    5149      4197362 :               tree _q40 = TREE_OPERAND (_p1, 0);
    5150      4197362 :               switch (TREE_CODE (_q40))
    5151              :                 {
    5152           15 :                 case BIT_AND_EXPR:
    5153           15 :                   {
    5154           15 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    5155           15 :                     tree _q51 = TREE_OPERAND (_q40, 1);
    5156           15 :                     if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
    5157              :                       {
    5158            0 :                         {
    5159            0 :                           tree captures[5] ATTRIBUTE_UNUSED = { _q50, _p1, _q40, _q51, _q20 };
    5160            0 :                           tree res = generic_simplify_47 (loc, type, _p0, _p1, captures);
    5161            0 :                           if (res) return res;
    5162              :                         }
    5163              :                       }
    5164           15 :                     if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q20, 0))
    5165              :                       {
    5166            1 :                         {
    5167            1 :                           tree captures[5] ATTRIBUTE_UNUSED = { _q51, _p1, _q40, _q50, _q20 };
    5168            1 :                           tree res = generic_simplify_47 (loc, type, _p0, _p1, captures);
    5169            1 :                           if (res) return res;
    5170              :                         }
    5171              :                       }
    5172              :                     break;
    5173              :                   }
    5174              :                 default:;
    5175              :                 }
    5176              :               break;
    5177              :             }
    5178         4918 :           case BIT_AND_EXPR:
    5179         4918 :             {
    5180         4918 :               tree _q40 = TREE_OPERAND (_p1, 0);
    5181         4918 :               tree _q41 = TREE_OPERAND (_p1, 1);
    5182         4918 :               if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || operand_equal_p (_q40, _q20, 0))
    5183              :                 {
    5184            0 :                   {
    5185            0 :                     tree captures[5] ATTRIBUTE_UNUSED = { _q40, _p1, _p1, _q41, _q20 };
    5186            0 :                     tree res = generic_simplify_48 (loc, type, _p0, _p1, captures);
    5187            0 :                     if (res) return res;
    5188              :                   }
    5189              :                 }
    5190         4918 :               if ((_q41 == _q20 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _q20, 0))
    5191              :                 {
    5192           21 :                   {
    5193           21 :                     tree captures[5] ATTRIBUTE_UNUSED = { _q41, _p1, _p1, _q40, _q20 };
    5194           21 :                     tree res = generic_simplify_48 (loc, type, _p0, _p1, captures);
    5195           21 :                     if (res) return res;
    5196              :                   }
    5197              :                 }
    5198              :               break;
    5199              :             }
    5200      5213132 :           default:;
    5201              :           }
    5202      5213132 :         switch (TREE_CODE (_q20))
    5203              :           {
    5204       108806 :           case ADDR_EXPR:
    5205       108806 :             {
    5206       108806 :               switch (TREE_CODE (_p1))
    5207              :                 {
    5208       100729 :                 CASE_CONVERT:
    5209       100729 :                   {
    5210       100729 :                     tree _q40 = TREE_OPERAND (_p1, 0);
    5211       100729 :                     switch (TREE_CODE (_q40))
    5212              :                       {
    5213        27246 :                       case POINTER_PLUS_EXPR:
    5214        27246 :                         {
    5215        27246 :                           tree _q50 = TREE_OPERAND (_q40, 0);
    5216        27246 :                           tree _q51 = TREE_OPERAND (_q40, 1);
    5217        27246 :                           {
    5218        27246 :                             tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q50, _q51 };
    5219        27246 :                             if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
    5220              : )
    5221              :                               {
    5222        27246 :                                 {
    5223        27246 :  poly_int64 diff;
    5224        27246 :                                     if (ptr_difference_const (captures[0], captures[1], &diff)
    5225              : )
    5226              :                                       {
    5227        12012 :                                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1182;
    5228        12012 :                                         {
    5229        12012 :                                           tree res_op0;
    5230        12012 :                                           res_op0 =  build_int_cst_type (type, diff);
    5231        12012 :                                           tree res_op1;
    5232        12012 :                                           {
    5233        12012 :                                             tree _o1[1], _r1;
    5234        12012 :                                             _o1[0] = captures[2];
    5235        12012 :                                             if (TREE_TYPE (_o1[0]) != type)
    5236              :                                               {
    5237        12012 :                                                 _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    5238              :                                               }
    5239              :                                             else
    5240              :                                               _r1 = _o1[0];
    5241        12012 :                                             res_op1 = _r1;
    5242              :                                           }
    5243        12012 :                                           tree _r;
    5244        12012 :                                           _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
    5245        12012 :                                           if (TREE_SIDE_EFFECTS (captures[0]))
    5246            0 :                                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    5247        12012 :                                           if (TREE_SIDE_EFFECTS (captures[1]))
    5248            0 :                                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    5249        12012 :                                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 898, __FILE__, __LINE__, true);
    5250        12012 :                                           return _r;
    5251              :                                         }
    5252            0 : next_after_fail1182:;
    5253              :                                       }
    5254              :                                 }
    5255              :                               }
    5256              :                           }
    5257        15234 :                           break;
    5258              :                         }
    5259        88717 :                       default:;
    5260              :                       }
    5261        88717 :                     {
    5262        88717 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    5263        88717 :                       if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
    5264              : )
    5265              :                         {
    5266        88717 :                           {
    5267        88717 :  poly_int64 diff;
    5268        88717 :                               if (ptr_difference_const (captures[0], captures[1], &diff)
    5269              : )
    5270              :                                 {
    5271        54060 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1183;
    5272        54060 :                                   {
    5273        54060 :                                     tree _r;
    5274        54060 :                                     _r =  build_int_cst_type (type, diff);
    5275        54060 :                                     if (TREE_SIDE_EFFECTS (captures[0]))
    5276            0 :                                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    5277        54060 :                                     if (TREE_SIDE_EFFECTS (captures[1]))
    5278            0 :                                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    5279        54060 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
    5280        54060 :                                     return _r;
    5281              :                                   }
    5282            0 : next_after_fail1183:;
    5283              :                                 }
    5284              :                           }
    5285              :                         }
    5286              :                     }
    5287        34657 :                     break;
    5288              :                   }
    5289              :                 default:;
    5290              :                 }
    5291              :               break;
    5292              :             }
    5293       101265 :           case POINTER_PLUS_EXPR:
    5294       101265 :             {
    5295       101265 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5296       101265 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5297       101265 :               switch (TREE_CODE (_p1))
    5298              :                 {
    5299       100175 :                 CASE_CONVERT:
    5300       100175 :                   {
    5301       100175 :                     tree _q60 = TREE_OPERAND (_p1, 0);
    5302       100175 :                     switch (TREE_CODE (_q60))
    5303              :                       {
    5304         5301 :                       case ADDR_EXPR:
    5305         5301 :                         {
    5306         5301 :                           {
    5307         5301 :                             tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q60 };
    5308         5301 :                             if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
    5309              : )
    5310              :                               {
    5311         5301 :                                 {
    5312         5301 :  poly_int64 diff;
    5313         5301 :                                     if (ptr_difference_const (captures[0], captures[2], &diff)
    5314              : )
    5315              :                                       {
    5316         1154 :                                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1184;
    5317         1154 :                                         {
    5318         1154 :                                           tree res_op0;
    5319         1154 :                                           {
    5320         1154 :                                             tree _o1[1], _r1;
    5321         1154 :                                             _o1[0] = captures[1];
    5322         1154 :                                             if (TREE_TYPE (_o1[0]) != type)
    5323              :                                               {
    5324          881 :                                                 _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    5325              :                                               }
    5326              :                                             else
    5327              :                                               _r1 = _o1[0];
    5328         1154 :                                             res_op0 = _r1;
    5329              :                                           }
    5330         1154 :                                           tree res_op1;
    5331         1154 :                                           res_op1 =  build_int_cst_type (type, diff);
    5332         1154 :                                           tree _r;
    5333         1154 :                                           _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
    5334         1154 :                                           if (TREE_SIDE_EFFECTS (captures[0]))
    5335            0 :                                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    5336         1154 :                                           if (TREE_SIDE_EFFECTS (captures[2]))
    5337            0 :                                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    5338         1154 :                                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 900, __FILE__, __LINE__, true);
    5339         1154 :                                           return _r;
    5340              :                                         }
    5341            0 : next_after_fail1184:;
    5342              :                                       }
    5343              :                                 }
    5344              :                               }
    5345              :                           }
    5346         4147 :                           break;
    5347              :                         }
    5348              :                       default:;
    5349              :                       }
    5350              :                     break;
    5351              :                   }
    5352              :                 default:;
    5353              :                 }
    5354              :               break;
    5355              :             }
    5356      5145906 :           default:;
    5357              :           }
    5358      5145906 :         switch (TREE_CODE (_p1))
    5359              :           {
    5360      4130135 :           CASE_CONVERT:
    5361      4130135 :             {
    5362      4130135 :               tree _q40 = TREE_OPERAND (_p1, 0);
    5363      4130135 :               switch (TREE_CODE (_q40))
    5364              :                 {
    5365        60413 :                 case ADDR_EXPR:
    5366        60413 :                   {
    5367        60413 :                     {
    5368        60413 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    5369        60413 :                       if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
    5370              : )
    5371              :                         {
    5372        60392 :                           {
    5373        60392 :  poly_int64 diff;
    5374        60392 :                               if (ptr_difference_const (captures[0], captures[1], &diff)
    5375              : )
    5376              :                                 {
    5377            0 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1185;
    5378            0 :                                   {
    5379            0 :                                     tree _r;
    5380            0 :                                     _r =  build_int_cst_type (type, diff);
    5381            0 :                                     if (TREE_SIDE_EFFECTS (captures[0]))
    5382            0 :                                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    5383            0 :                                     if (TREE_SIDE_EFFECTS (captures[1]))
    5384            0 :                                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    5385            0 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 901, __FILE__, __LINE__, true);
    5386            0 :                                     return _r;
    5387              :                                   }
    5388            0 : next_after_fail1185:;
    5389              :                                 }
    5390              :                           }
    5391              :                         }
    5392              :                     }
    5393        60413 :                     break;
    5394              :                   }
    5395              :                 default:;
    5396              :                 }
    5397              :               break;
    5398              :             }
    5399              :           default:;
    5400              :           }
    5401              :         break;
    5402              :       }
    5403     23798835 :     default:;
    5404              :     }
    5405     23798835 : if (integer_onep (_p0))
    5406              :   {
    5407       108753 :     switch (TREE_CODE (_p1))
    5408              :       {
    5409        27542 :       case SSA_NAME:
    5410        27542 :         {
    5411        27542 :           {
    5412        27542 :             tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    5413        27542 :             if (INTEGRAL_TYPE_P (type)
    5414        27542 :  && ssa_name_has_boolean_range (captures[1])
    5415              : )
    5416              :               {
    5417          212 :                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1186;
    5418          212 :                 {
    5419          212 :                   tree res_op0;
    5420          212 :                   res_op0 = captures[1];
    5421          212 :                   tree res_op1;
    5422          212 :                   res_op1 = captures[0];
    5423          212 :                   tree _r;
    5424          212 :                   _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
    5425          212 :                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 902, __FILE__, __LINE__, true);
    5426          212 :                   return _r;
    5427              :                 }
    5428            0 : next_after_fail1186:;
    5429              :               }
    5430              :           }
    5431        27330 :           break;
    5432              :         }
    5433              :       default:;
    5434              :       }
    5435              :   }
    5436     23798623 :   switch (TREE_CODE (_p1))
    5437              :     {
    5438      7640117 :     CASE_CONVERT:
    5439      7640117 :       {
    5440      7640117 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5441      7640117 :         switch (TREE_CODE (_q30))
    5442              :           {
    5443           14 :           case BIT_AND_EXPR:
    5444           14 :             {
    5445           14 :               tree _q40 = TREE_OPERAND (_q30, 0);
    5446           14 :               tree _q41 = TREE_OPERAND (_q30, 1);
    5447           14 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || operand_equal_p (_q40, _p0, 0))
    5448              :                 {
    5449            0 :                   {
    5450            0 :                     tree captures[5] ATTRIBUTE_UNUSED = { _q40, _p1, _q30, _q41, _p0 };
    5451            0 :                     tree res = generic_simplify_47 (loc, type, _p0, _p1, captures);
    5452            0 :                     if (res) return res;
    5453              :                   }
    5454              :                 }
    5455           14 :               if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _p0, 0))
    5456              :                 {
    5457            0 :                   {
    5458            0 :                     tree captures[5] ATTRIBUTE_UNUSED = { _q41, _p1, _q30, _q40, _p0 };
    5459            0 :                     tree res = generic_simplify_47 (loc, type, _p0, _p1, captures);
    5460            0 :                     if (res) return res;
    5461              :                   }
    5462              :                 }
    5463              :               break;
    5464              :             }
    5465              :           default:;
    5466              :           }
    5467              :         break;
    5468              :       }
    5469         7000 :     case BIT_AND_EXPR:
    5470         7000 :       {
    5471         7000 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5472         7000 :         tree _q31 = TREE_OPERAND (_p1, 1);
    5473         7000 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || operand_equal_p (_q30, _p0, 0))
    5474              :           {
    5475          213 :             {
    5476          213 :               tree captures[5] ATTRIBUTE_UNUSED = { _q30, _p1, _p1, _q31, _p0 };
    5477          213 :               tree res = generic_simplify_48 (loc, type, _p0, _p1, captures);
    5478          213 :               if (res) return res;
    5479              :             }
    5480              :           }
    5481         6787 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || operand_equal_p (_q31, _p0, 0))
    5482              :           {
    5483           38 :             {
    5484           38 :               tree captures[5] ATTRIBUTE_UNUSED = { _q31, _p1, _p1, _q30, _p0 };
    5485           38 :               tree res = generic_simplify_48 (loc, type, _p0, _p1, captures);
    5486           38 :               if (res) return res;
    5487              :             }
    5488              :           }
    5489              :         break;
    5490              :       }
    5491     23798372 :     default:;
    5492              :     }
    5493     23798372 :   switch (TREE_CODE (_p0))
    5494              :     {
    5495      1750592 :     case PLUS_EXPR:
    5496      1750592 :       {
    5497      1750592 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5498      1750592 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5499      1750592 :         switch (TREE_CODE (_p1))
    5500              :           {
    5501       472091 :           case PLUS_EXPR:
    5502       472091 :             {
    5503       472091 :               tree _q50 = TREE_OPERAND (_p1, 0);
    5504       472091 :               tree _q51 = TREE_OPERAND (_p1, 1);
    5505       472091 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    5506              :                 {
    5507       170952 :                   {
    5508       170952 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    5509       341904 :                     if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    5510       341904 :  && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
    5511        40229 :  || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
    5512              : )
    5513              :                       {
    5514       170946 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1187;
    5515       170946 :                         {
    5516       170946 :                           tree res_op0;
    5517       170946 :                           res_op0 = captures[0];
    5518       170946 :                           tree res_op1;
    5519       170946 :                           res_op1 = captures[2];
    5520       170946 :                           tree _r;
    5521       170946 :                           _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
    5522       170946 :                           if (TREE_SIDE_EFFECTS (captures[1]))
    5523            0 :                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    5524       170946 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 903, __FILE__, __LINE__, true);
    5525       170946 :                           return _r;
    5526              :                         }
    5527            0 : next_after_fail1187:;
    5528              :                       }
    5529              :                   }
    5530              :                 }
    5531       301145 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    5532              :                 {
    5533          407 :                   {
    5534          407 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
    5535          814 :                     if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    5536          814 :  && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
    5537          297 :  || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
    5538              : )
    5539              :                       {
    5540          407 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1188;
    5541          407 :                         {
    5542          407 :                           tree res_op0;
    5543          407 :                           res_op0 = captures[0];
    5544          407 :                           tree res_op1;
    5545          407 :                           res_op1 = captures[2];
    5546          407 :                           tree _r;
    5547          407 :                           _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
    5548          407 :                           if (TREE_SIDE_EFFECTS (captures[1]))
    5549            0 :                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    5550          407 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 903, __FILE__, __LINE__, true);
    5551          407 :                           return _r;
    5552              :                         }
    5553            0 : next_after_fail1188:;
    5554              :                       }
    5555              :                   }
    5556              :                 }
    5557       300738 :               if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    5558              :                 {
    5559          219 :                   {
    5560          219 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
    5561          438 :                     if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    5562          438 :  && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
    5563          130 :  || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
    5564              : )
    5565              :                       {
    5566          219 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1189;
    5567          219 :                         {
    5568          219 :                           tree res_op0;
    5569          219 :                           res_op0 = captures[0];
    5570          219 :                           tree res_op1;
    5571          219 :                           res_op1 = captures[2];
    5572          219 :                           tree _r;
    5573          219 :                           _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
    5574          219 :                           if (TREE_SIDE_EFFECTS (captures[1]))
    5575            0 :                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    5576          219 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 903, __FILE__, __LINE__, true);
    5577          219 :                           return _r;
    5578              :                         }
    5579            0 : next_after_fail1189:;
    5580              :                       }
    5581              :                   }
    5582              :                 }
    5583       300519 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5584              :                 {
    5585       172048 :                   {
    5586       172048 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
    5587       344096 :                     if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    5588       344096 :  && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
    5589       138657 :  || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
    5590              : )
    5591              :                       {
    5592       172048 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1190;
    5593       172048 :                         {
    5594       172048 :                           tree res_op0;
    5595       172048 :                           res_op0 = captures[0];
    5596       172048 :                           tree res_op1;
    5597       172048 :                           res_op1 = captures[2];
    5598       172048 :                           tree _r;
    5599       172048 :                           _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
    5600       172048 :                           if (TREE_SIDE_EFFECTS (captures[1]))
    5601            2 :                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    5602       172048 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 903, __FILE__, __LINE__, true);
    5603       172048 :                           return _r;
    5604              :                         }
    5605            0 : next_after_fail1190:;
    5606              :                       }
    5607              :                   }
    5608              :                 }
    5609              :               break;
    5610              :             }
    5611              :           default:;
    5612              :           }
    5613              :         break;
    5614              :       }
    5615       954018 :     case MINUS_EXPR:
    5616       954018 :       {
    5617       954018 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5618       954018 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5619       954018 :         switch (TREE_CODE (_p1))
    5620              :           {
    5621         3919 :           case MINUS_EXPR:
    5622         3919 :             {
    5623         3919 :               tree _q50 = TREE_OPERAND (_p1, 0);
    5624         3919 :               tree _q51 = TREE_OPERAND (_p1, 1);
    5625         3919 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    5626              :                 {
    5627         3877 :                   {
    5628         3877 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    5629         7754 :                     if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    5630         7754 :  && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
    5631            0 :  || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0])))
    5632              : )
    5633              :                       {
    5634         3877 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1191;
    5635         3877 :                         {
    5636         3877 :                           tree res_op0;
    5637         3877 :                           res_op0 = captures[0];
    5638         3877 :                           tree res_op1;
    5639         3877 :                           res_op1 = captures[2];
    5640         3877 :                           tree _r;
    5641         3877 :                           _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
    5642         3877 :                           if (TREE_SIDE_EFFECTS (captures[1]))
    5643            0 :                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    5644         3877 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 904, __FILE__, __LINE__, true);
    5645         3877 :                           return _r;
    5646              :                         }
    5647            0 : next_after_fail1191:;
    5648              :                       }
    5649              :                   }
    5650              :                 }
    5651           42 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5652              :                 {
    5653            0 :                   {
    5654            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
    5655            0 :                     if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    5656            0 :  && (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))
    5657            0 :  || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1])))
    5658              : )
    5659              :                       {
    5660            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1192;
    5661            0 :                         {
    5662            0 :                           tree res_op0;
    5663            0 :                           res_op0 = captures[2];
    5664            0 :                           tree res_op1;
    5665            0 :                           res_op1 = captures[1];
    5666            0 :                           tree _r;
    5667            0 :                           _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
    5668            0 :                           if (TREE_SIDE_EFFECTS (captures[0]))
    5669            0 :                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    5670            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 905, __FILE__, __LINE__, true);
    5671            0 :                           return _r;
    5672              :                         }
    5673            0 : next_after_fail1192:;
    5674              :                       }
    5675              :                   }
    5676              :                 }
    5677              :               break;
    5678              :             }
    5679              :           default:;
    5680              :           }
    5681              :         break;
    5682              :       }
    5683           59 :     case POINTER_DIFF_EXPR:
    5684           59 :       {
    5685           59 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5686           59 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5687           59 :         switch (TREE_CODE (_p1))
    5688              :           {
    5689            0 :           case POINTER_DIFF_EXPR:
    5690            0 :             {
    5691            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    5692            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    5693            0 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    5694              :                 {
    5695            0 :                   {
    5696            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
    5697            0 :                     if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
    5698            0 :  && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[2]))
    5699              : )
    5700              :                       {
    5701            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1193;
    5702            0 :                         {
    5703            0 :                           tree res_op0;
    5704            0 :                           res_op0 = captures[1];
    5705            0 :                           tree res_op1;
    5706            0 :                           res_op1 = captures[3];
    5707            0 :                           tree _r;
    5708            0 :                           _r = fold_build2_loc (loc, POINTER_DIFF_EXPR, type, res_op0, res_op1);
    5709            0 :                           if (TREE_SIDE_EFFECTS (captures[2]))
    5710            0 :                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    5711            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 906, __FILE__, __LINE__, true);
    5712            0 :                           return _r;
    5713              :                         }
    5714            0 : next_after_fail1193:;
    5715              :                       }
    5716              :                   }
    5717              :                 }
    5718            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5719              :                 {
    5720            0 :                   {
    5721            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
    5722            0 :                     if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
    5723            0 :  && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[1]))
    5724              : )
    5725              :                       {
    5726            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1194;
    5727            0 :                         {
    5728            0 :                           tree res_op0;
    5729            0 :                           res_op0 = captures[3];
    5730            0 :                           tree res_op1;
    5731            0 :                           res_op1 = captures[2];
    5732            0 :                           tree _r;
    5733            0 :                           _r = fold_build2_loc (loc, POINTER_DIFF_EXPR, type, res_op0, res_op1);
    5734            0 :                           if (TREE_SIDE_EFFECTS (captures[1]))
    5735            0 :                             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    5736            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 907, __FILE__, __LINE__, true);
    5737            0 :                           return _r;
    5738              :                         }
    5739            0 : next_after_fail1194:;
    5740              :                       }
    5741              :                   }
    5742              :                 }
    5743              :               break;
    5744              :             }
    5745              :           default:;
    5746              :           }
    5747              :         break;
    5748              :       }
    5749     23450875 :     default:;
    5750              :     }
    5751     23450875 :   switch (TREE_CODE (_p1))
    5752              :     {
    5753      7640117 :     CASE_CONVERT:
    5754      7640117 :       {
    5755      7640117 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5756      7640117 :         switch (TREE_CODE (_q30))
    5757              :           {
    5758         1467 :           case NEGATE_EXPR:
    5759         1467 :             {
    5760         1467 :               tree _q40 = TREE_OPERAND (_q30, 0);
    5761         1467 :               {
    5762         1467 :                 tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
    5763         1467 :                 tree res = generic_simplify_49 (loc, type, _p0, _p1, captures);
    5764         1467 :                 if (res) return res;
    5765              :               }
    5766         1467 :               break;
    5767              :             }
    5768              :           default:;
    5769              :           }
    5770              :         break;
    5771              :       }
    5772           45 :     case NEGATE_EXPR:
    5773           45 :       {
    5774           45 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5775           45 :         {
    5776           45 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
    5777           45 :           tree res = generic_simplify_49 (loc, type, _p0, _p1, captures);
    5778           45 :           if (res) return res;
    5779              :         }
    5780           40 :         break;
    5781              :       }
    5782     23450870 :     default:;
    5783              :     }
    5784     23450870 :   switch (TREE_CODE (_p0))
    5785              :     {
    5786      1406972 :     case PLUS_EXPR:
    5787      1406972 :       {
    5788      1406972 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5789      1406972 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5790      1406972 :         {
    5791      1406972 :           tree _q20_pops[1];
    5792      1406972 :           if (tree_nop_convert (_q20, _q20_pops))
    5793              :             {
    5794       335507 :               tree _q30 = _q20_pops[0];
    5795       335507 :               if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    5796              :                 {
    5797          338 :                   {
    5798          338 :                     tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
    5799          338 :                     tree res = generic_simplify_50 (loc, type, _p0, _p1, captures);
    5800          338 :                     if (res) return res;
    5801              :                   }
    5802              :                 }
    5803              :             }
    5804              :         }
    5805      1406634 :         {
    5806      1406634 :           tree _q21_pops[1];
    5807      1406634 :           if (tree_nop_convert (_q21, _q21_pops))
    5808              :             {
    5809       491220 :               tree _q40 = _q21_pops[0];
    5810       491220 :               if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    5811              :                 {
    5812           89 :                   {
    5813           89 :                     tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
    5814           89 :                     tree res = generic_simplify_50 (loc, type, _p0, _p1, captures);
    5815           89 :                     if (res) return res;
    5816              :                   }
    5817              :                 }
    5818              :             }
    5819              :         }
    5820      1406545 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    5821              :           {
    5822        53627 :             {
    5823        53627 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    5824        53627 :               tree res = generic_simplify_50 (loc, type, _p0, _p1, captures);
    5825        53627 :               if (res) return res;
    5826              :             }
    5827              :           }
    5828      1352918 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5829              :           {
    5830         1701 :             {
    5831         1701 :               tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    5832         1701 :               tree res = generic_simplify_50 (loc, type, _p0, _p1, captures);
    5833         1701 :               if (res) return res;
    5834              :             }
    5835              :           }
    5836              :         break;
    5837              :       }
    5838       950141 :     case MINUS_EXPR:
    5839       950141 :       {
    5840       950141 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5841       950141 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5842       950141 :         {
    5843       950141 :           tree _q20_pops[1];
    5844       950141 :           if (tree_nop_convert (_q20, _q20_pops))
    5845              :             {
    5846        91826 :               tree _q30 = _q20_pops[0];
    5847        91826 :               if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    5848              :                 {
    5849            0 :                   {
    5850            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
    5851            0 :                     tree res = generic_simplify_51 (loc, type, _p0, _p1, captures);
    5852            0 :                     if (res) return res;
    5853              :                   }
    5854              :                 }
    5855              :             }
    5856              :         }
    5857       950141 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    5858              :           {
    5859          178 :             {
    5860          178 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    5861          178 :               tree res = generic_simplify_51 (loc, type, _p0, _p1, captures);
    5862          178 :               if (res) return res;
    5863              :             }
    5864              :           }
    5865              :         break;
    5866              :       }
    5867     23394948 :     default:;
    5868              :     }
    5869     23394948 : {
    5870     23394948 :   tree _p0_pops[1];
    5871     23394948 :   if (tree_nop_convert (_p0, _p0_pops))
    5872              :     {
    5873      4580842 :       tree _q20 = _p0_pops[0];
    5874      4580842 :       switch (TREE_CODE (_q20))
    5875              :         {
    5876       350636 :         case PLUS_EXPR:
    5877       350636 :           {
    5878       350636 :             tree _q30 = TREE_OPERAND (_q20, 0);
    5879       350636 :             tree _q31 = TREE_OPERAND (_q20, 1);
    5880       350636 :             {
    5881       350636 :               tree _q30_pops[1];
    5882       350636 :               if (tree_nop_convert (_q30, _q30_pops))
    5883              :                 {
    5884        31608 :                   tree _q40 = _q30_pops[0];
    5885        31608 :                   if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    5886              :                     {
    5887          625 :                       {
    5888          625 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q31 };
    5889          625 :                         tree res = generic_simplify_50 (loc, type, _p0, _p1, captures);
    5890          625 :                         if (res) return res;
    5891              :                       }
    5892              :                     }
    5893              :                 }
    5894              :             }
    5895       350011 :             {
    5896       350011 :               tree _q31_pops[1];
    5897       350011 :               if (tree_nop_convert (_q31, _q31_pops))
    5898              :                 {
    5899         2141 :                   tree _q50 = _q31_pops[0];
    5900         2141 :                   if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50)))
    5901              :                     {
    5902           52 :                       {
    5903           52 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q30 };
    5904           52 :                         tree res = generic_simplify_50 (loc, type, _p0, _p1, captures);
    5905           52 :                         if (res) return res;
    5906              :                       }
    5907              :                     }
    5908              :                 }
    5909              :             }
    5910       349959 :             if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    5911              :               {
    5912           10 :                 {
    5913           10 :                   tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
    5914           10 :                   tree res = generic_simplify_50 (loc, type, _p0, _p1, captures);
    5915           10 :                   if (res) return res;
    5916              :                 }
    5917              :               }
    5918       349949 :             if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
    5919              :               {
    5920            0 :                 {
    5921            0 :                   tree captures[2] ATTRIBUTE_UNUSED = { _q31, _q30 };
    5922            0 :                   tree res = generic_simplify_50 (loc, type, _p0, _p1, captures);
    5923            0 :                   if (res) return res;
    5924              :                 }
    5925              :               }
    5926              :             break;
    5927              :           }
    5928          883 :         case MINUS_EXPR:
    5929          883 :           {
    5930          883 :             tree _q30 = TREE_OPERAND (_q20, 0);
    5931          883 :             tree _q31 = TREE_OPERAND (_q20, 1);
    5932          883 :             {
    5933          883 :               tree _q30_pops[1];
    5934          883 :               if (tree_nop_convert (_q30, _q30_pops))
    5935              :                 {
    5936          408 :                   tree _q40 = _q30_pops[0];
    5937          408 :                   if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    5938              :                     {
    5939            0 :                       {
    5940            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q31 };
    5941            0 :                         tree res = generic_simplify_51 (loc, type, _p0, _p1, captures);
    5942            0 :                         if (res) return res;
    5943              :                       }
    5944              :                     }
    5945              :                 }
    5946              :             }
    5947          883 :             if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    5948              :               {
    5949            0 :                 {
    5950            0 :                   tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
    5951            0 :                   tree res = generic_simplify_51 (loc, type, _p0, _p1, captures);
    5952            0 :                   if (res) return res;
    5953              :                 }
    5954              :               }
    5955              :             break;
    5956              :           }
    5957              :         default:;
    5958              :         }
    5959              :     }
    5960              : }
    5961     23394261 :   switch (TREE_CODE (_p1))
    5962              :     {
    5963      1296596 :     case PLUS_EXPR:
    5964      1296596 :       {
    5965      1296596 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5966      1296596 :         tree _q31 = TREE_OPERAND (_p1, 1);
    5967      1296596 :         {
    5968      1296596 :           tree _q30_pops[1];
    5969      1296596 :           if (tree_nop_convert (_q30, _q30_pops))
    5970              :             {
    5971       327102 :               tree _q40 = _q30_pops[0];
    5972       327102 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    5973              :                 {
    5974           71 :                   {
    5975           71 :                     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    5976           71 :                     tree res = generic_simplify_52 (loc, type, _p0, _p1, captures);
    5977           71 :                     if (res) return res;
    5978              :                   }
    5979              :                 }
    5980              :             }
    5981              :         }
    5982      1296525 :         {
    5983      1296525 :           tree _q31_pops[1];
    5984      1296525 :           if (tree_nop_convert (_q31, _q31_pops))
    5985              :             {
    5986        62186 :               tree _q50 = _q31_pops[0];
    5987        62186 :               if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    5988              :                 {
    5989            0 :                   {
    5990            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
    5991            0 :                     tree res = generic_simplify_52 (loc, type, _p0, _p1, captures);
    5992            0 :                     if (res) return res;
    5993              :                   }
    5994              :                 }
    5995              :             }
    5996              :         }
    5997      1296525 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    5998              :           {
    5999        38481 :             {
    6000        38481 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    6001        38481 :               tree res = generic_simplify_52 (loc, type, _p0, _p1, captures);
    6002        38481 :               if (res) return res;
    6003              :             }
    6004              :           }
    6005      1258044 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    6006              :           {
    6007         2593 :             {
    6008         2593 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
    6009         2593 :               tree res = generic_simplify_52 (loc, type, _p0, _p1, captures);
    6010         2593 :               if (res) return res;
    6011              :             }
    6012              :           }
    6013              :         break;
    6014              :       }
    6015        79957 :     case MINUS_EXPR:
    6016        79957 :       {
    6017        79957 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6018        79957 :         tree _q31 = TREE_OPERAND (_p1, 1);
    6019        79957 :         {
    6020        79957 :           tree _q30_pops[1];
    6021        79957 :           if (tree_nop_convert (_q30, _q30_pops))
    6022              :             {
    6023           61 :               tree _q40 = _q30_pops[0];
    6024           61 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    6025              :                 {
    6026            0 :                   {
    6027            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    6028            0 :                     tree res = generic_simplify_53 (loc, type, _p0, _p1, captures);
    6029            0 :                     if (res) return res;
    6030              :                   }
    6031              :                 }
    6032              :             }
    6033              :         }
    6034        79957 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    6035              :           {
    6036          134 :             {
    6037          134 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    6038          134 :               tree res = generic_simplify_53 (loc, type, _p0, _p1, captures);
    6039          134 :               if (res) return res;
    6040              :             }
    6041              :           }
    6042              :         break;
    6043              :       }
    6044     23352982 :     default:;
    6045              :     }
    6046     23352982 : {
    6047     23352982 :   tree _p1_pops[1];
    6048     23352982 :   if (tree_nop_convert (_p1, _p1_pops))
    6049              :     {
    6050      6728734 :       tree _q30 = _p1_pops[0];
    6051      6728734 :       switch (TREE_CODE (_q30))
    6052              :         {
    6053       664140 :         case PLUS_EXPR:
    6054       664140 :           {
    6055       664140 :             tree _q40 = TREE_OPERAND (_q30, 0);
    6056       664140 :             tree _q41 = TREE_OPERAND (_q30, 1);
    6057       664140 :             {
    6058       664140 :               tree _q40_pops[1];
    6059       664140 :               if (tree_nop_convert (_q40, _q40_pops))
    6060              :                 {
    6061        68113 :                   tree _q50 = _q40_pops[0];
    6062        68113 :                   if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    6063              :                     {
    6064          152 :                       {
    6065          152 :                         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
    6066          152 :                         tree res = generic_simplify_52 (loc, type, _p0, _p1, captures);
    6067          152 :                         if (res) return res;
    6068              :                       }
    6069              :                     }
    6070              :                 }
    6071              :             }
    6072       663988 :             {
    6073       663988 :               tree _q41_pops[1];
    6074       663988 :               if (tree_nop_convert (_q41, _q41_pops))
    6075              :                 {
    6076        17670 :                   tree _q60 = _q41_pops[0];
    6077        17670 :                   if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
    6078              :                     {
    6079            0 :                       {
    6080            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
    6081            0 :                         tree res = generic_simplify_52 (loc, type, _p0, _p1, captures);
    6082            0 :                         if (res) return res;
    6083              :                       }
    6084              :                     }
    6085              :                 }
    6086              :             }
    6087       663988 :             if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    6088              :               {
    6089            7 :                 {
    6090            7 :                   tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
    6091            7 :                   tree res = generic_simplify_52 (loc, type, _p0, _p1, captures);
    6092            7 :                   if (res) return res;
    6093              :                 }
    6094              :               }
    6095       663981 :             if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
    6096              :               {
    6097            0 :                 {
    6098            0 :                   tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q40 };
    6099            0 :                   tree res = generic_simplify_52 (loc, type, _p0, _p1, captures);
    6100            0 :                   if (res) return res;
    6101              :                 }
    6102              :               }
    6103              :             break;
    6104              :           }
    6105         7421 :         case MINUS_EXPR:
    6106         7421 :           {
    6107         7421 :             tree _q40 = TREE_OPERAND (_q30, 0);
    6108         7421 :             tree _q41 = TREE_OPERAND (_q30, 1);
    6109         7421 :             {
    6110         7421 :               tree _q40_pops[1];
    6111         7421 :               if (tree_nop_convert (_q40, _q40_pops))
    6112              :                 {
    6113         6712 :                   tree _q50 = _q40_pops[0];
    6114         6712 :                   if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    6115              :                     {
    6116            0 :                       {
    6117            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
    6118            0 :                         tree res = generic_simplify_53 (loc, type, _p0, _p1, captures);
    6119            0 :                         if (res) return res;
    6120              :                       }
    6121              :                     }
    6122              :                 }
    6123              :             }
    6124         7421 :             if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    6125              :               {
    6126            2 :                 {
    6127            2 :                   tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
    6128            2 :                   tree res = generic_simplify_53 (loc, type, _p0, _p1, captures);
    6129            2 :                   if (res) return res;
    6130              :                 }
    6131              :               }
    6132              :             break;
    6133              :           }
    6134              :         default:;
    6135              :         }
    6136              :     }
    6137              : }
    6138     23352821 :   switch (TREE_CODE (_p0))
    6139              :     {
    6140      1351228 :     case PLUS_EXPR:
    6141      1351228 :       {
    6142      1351228 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6143      1351228 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6144      1351228 :         switch (TREE_CODE (_p1))
    6145              :           {
    6146            0 :           case MINUS_EXPR:
    6147            0 :             {
    6148            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6149            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6150            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6151              :                 {
    6152            0 :                   {
    6153            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
    6154            0 :                     tree res = generic_simplify_54 (loc, type, _p0, _p1, captures);
    6155            0 :                     if (res) return res;
    6156              :                   }
    6157              :                 }
    6158            0 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6159              :                 {
    6160            0 :                   {
    6161            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
    6162            0 :                     tree res = generic_simplify_54 (loc, type, _p0, _p1, captures);
    6163            0 :                     if (res) return res;
    6164              :                   }
    6165              :                 }
    6166              :               break;
    6167              :             }
    6168      1351228 :           default:;
    6169              :           }
    6170      1351228 :         if (CONSTANT_CLASS_P (_q21))
    6171              :           {
    6172       563261 :             if (CONSTANT_CLASS_P (_p1))
    6173              :               {
    6174           13 :                 {
    6175           13 :                   tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    6176           13 :                   tree res = generic_simplify_17 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, MINUS_EXPR);
    6177           13 :                   if (res) return res;
    6178              :                 }
    6179              :               }
    6180              :           }
    6181              :         break;
    6182              :       }
    6183       949960 :     case MINUS_EXPR:
    6184       949960 :       {
    6185       949960 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6186       949960 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6187       949960 :         if (CONSTANT_CLASS_P (_q21))
    6188              :           {
    6189        93226 :             if (CONSTANT_CLASS_P (_p1))
    6190              :               {
    6191           12 :                 {
    6192           12 :                   tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    6193           12 :                   tree res = generic_simplify_17 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, MINUS_EXPR);
    6194           12 :                   if (res) return res;
    6195              :                 }
    6196              :               }
    6197              :           }
    6198       949960 :         if (CONSTANT_CLASS_P (_q20))
    6199              :           {
    6200         2880 :             if (CONSTANT_CLASS_P (_p1))
    6201              :               {
    6202            1 :                 {
    6203            1 :                   tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    6204            1 :                   tree res = generic_simplify_18 (loc, type, _p0, _p1, captures, MINUS_EXPR);
    6205            1 :                   if (res) return res;
    6206              :                 }
    6207              :               }
    6208              :           }
    6209              :         break;
    6210              :       }
    6211      5130961 :     CASE_CONVERT:
    6212      5130961 :       {
    6213      5130961 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6214      5130961 :         switch (TREE_CODE (_p1))
    6215              :           {
    6216      4130125 :           CASE_CONVERT:
    6217      4130125 :             {
    6218      4130125 :               tree _q40 = TREE_OPERAND (_p1, 0);
    6219      4130125 :               {
    6220      4130125 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    6221      4130125 :                 tree res = generic_simplify_22 (loc, type, _p0, _p1, captures, MINUS_EXPR);
    6222      4130125 :                 if (res) return res;
    6223              :               }
    6224      4115788 :               break;
    6225              :             }
    6226      5116624 :           default:;
    6227              :           }
    6228      5116624 :         switch (TREE_CODE (_q20))
    6229              :           {
    6230          222 :           case NEGATE_EXPR:
    6231          222 :             {
    6232          222 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6233          222 :               if (integer_each_onep (_p1))
    6234              :                 {
    6235            0 :                   {
    6236            0 :                     tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
    6237            0 :                     tree res = generic_simplify_56 (loc, type, _p0, _p1, captures);
    6238            0 :                     if (res) return res;
    6239              :                   }
    6240              :                 }
    6241              :               break;
    6242              :             }
    6243       399996 :           case PLUS_EXPR:
    6244       399996 :             {
    6245       399996 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6246       399996 :               tree _q31 = TREE_OPERAND (_q20, 1);
    6247       399996 :               switch (TREE_CODE (_p1))
    6248              :                 {
    6249       383432 :                 CASE_CONVERT:
    6250       383432 :                   {
    6251       383432 :                     tree _q60 = TREE_OPERAND (_p1, 0);
    6252       383432 :                     if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q30, 0))
    6253              :                       {
    6254         6258 :                         {
    6255         6258 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q30 };
    6256         6258 :                           tree res = generic_simplify_57 (loc, type, _p0, _p1, captures);
    6257         6258 :                           if (res) return res;
    6258              :                         }
    6259              :                       }
    6260       377288 :                     if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q31, 0))
    6261              :                       {
    6262           32 :                         {
    6263           32 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q31 };
    6264           32 :                           tree res = generic_simplify_57 (loc, type, _p0, _p1, captures);
    6265           32 :                           if (res) return res;
    6266              :                         }
    6267              :                       }
    6268              :                     break;
    6269              :                   }
    6270       393820 :                 default:;
    6271              :                 }
    6272       393820 :               if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q30, 0))
    6273              :                 {
    6274         3863 :                   {
    6275         3863 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q30 };
    6276         3863 :                     tree res = generic_simplify_57 (loc, type, _p0, _p1, captures);
    6277         3863 :                     if (res) return res;
    6278              :                   }
    6279              :                 }
    6280       389957 :               if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q31, 0))
    6281              :                 {
    6282          960 :                   {
    6283          960 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q31, _q30, _q31 };
    6284          960 :                     tree res = generic_simplify_57 (loc, type, _p0, _p1, captures);
    6285          960 :                     if (res) return res;
    6286              :                   }
    6287              :                 }
    6288              :               break;
    6289              :             }
    6290       100111 :           case POINTER_PLUS_EXPR:
    6291       100111 :             {
    6292       100111 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6293       100111 :               tree _q31 = TREE_OPERAND (_q20, 1);
    6294       100111 :               switch (TREE_CODE (_p1))
    6295              :                 {
    6296        99021 :                 CASE_CONVERT:
    6297        99021 :                   {
    6298        99021 :                     tree _q60 = TREE_OPERAND (_p1, 0);
    6299        99021 :                     if ((_q60 == _q30 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q30, 0))
    6300              :                       {
    6301        11325 :                         {
    6302        11325 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q30 };
    6303        11325 :                           if (!TYPE_SATURATING (type)
    6304              : )
    6305              :                             {
    6306        11325 :                               if ((!FLOAT_TYPE_P (type) || flag_associative_math)
    6307        22650 :  && !FIXED_POINT_TYPE_P (type)
    6308              : )
    6309              :                                 {
    6310        11325 :                                   if (element_precision (type) <= element_precision (TREE_TYPE (captures[1]))
    6311        11325 :  || (POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6312            0 :  && TREE_CODE (captures[1]) == INTEGER_CST
    6313            0 :  && tree_int_cst_sign_bit (captures[1]) == 0)
    6314              : )
    6315              :                                     {
    6316        11325 :                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1195;
    6317        11325 :                                       {
    6318        11325 :                                         tree res_op0;
    6319        11325 :                                         res_op0 = captures[1];
    6320        11325 :                                         tree _r;
    6321        11325 :                                         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    6322        11325 :                                         if (TREE_SIDE_EFFECTS (captures[2]))
    6323           11 :                                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    6324        11325 :                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 908, __FILE__, __LINE__, true);
    6325        11325 :                                         return _r;
    6326              :                                       }
    6327            0 : next_after_fail1195:;
    6328              :                                     }
    6329              :                                 }
    6330              :                             }
    6331              :                         }
    6332              :                       }
    6333              :                     break;
    6334              :                   }
    6335              :                 default:;
    6336              :                 }
    6337              :               break;
    6338              :             }
    6339      5094300 :           default:;
    6340              :           }
    6341      5094300 :         switch (TREE_CODE (_p1))
    6342              :           {
    6343      4093592 :           CASE_CONVERT:
    6344      4093592 :             {
    6345      4093592 :               tree _q40 = TREE_OPERAND (_p1, 0);
    6346      4093592 :               switch (TREE_CODE (_q40))
    6347              :                 {
    6348       487568 :                 case PLUS_EXPR:
    6349       487568 :                   {
    6350       487568 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    6351       487568 :                     tree _q51 = TREE_OPERAND (_q40, 1);
    6352       487568 :                     if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
    6353              :                       {
    6354         2145 :                         {
    6355         2145 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q51, _q20 };
    6356         2145 :                           tree res = generic_simplify_58 (loc, type, _p0, _p1, captures);
    6357         2145 :                           if (res) return res;
    6358              :                         }
    6359              :                       }
    6360       485495 :                     if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || operand_equal_p (_q51, _q20, 0))
    6361              :                       {
    6362           18 :                         {
    6363           18 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q51, _q50, _q20 };
    6364           18 :                           tree res = generic_simplify_58 (loc, type, _p0, _p1, captures);
    6365           18 :                           if (res) return res;
    6366              :                         }
    6367              :                       }
    6368              :                     break;
    6369              :                   }
    6370              :                 default:;
    6371              :                 }
    6372              :               break;
    6373              :             }
    6374              :           default:;
    6375              :           }
    6376              :         break;
    6377              :       }
    6378       140931 :     case NEGATE_EXPR:
    6379       140931 :       {
    6380       140931 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6381       140931 :         if (integer_each_onep (_p1))
    6382              :           {
    6383           41 :             {
    6384           41 :               tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    6385           41 :               tree res = generic_simplify_56 (loc, type, _p0, _p1, captures);
    6386           41 :               if (res) return res;
    6387              :             }
    6388              :           }
    6389              :         break;
    6390              :       }
    6391     23314028 :     default:;
    6392              :     }
    6393     23314028 : {
    6394     23314028 :   tree _p0_pops[1];
    6395     23314028 :   if (tree_nop_convert (_p0, _p0_pops))
    6396              :     {
    6397      4533178 :       tree _q20 = _p0_pops[0];
    6398      4533178 :       switch (TREE_CODE (_q20))
    6399              :         {
    6400       331561 :         case PLUS_EXPR:
    6401       331561 :           {
    6402       331561 :             tree _q30 = TREE_OPERAND (_q20, 0);
    6403       331561 :             tree _q31 = TREE_OPERAND (_q20, 1);
    6404       331561 :             if (CONSTANT_CLASS_P (_q31))
    6405              :               {
    6406       325036 :                 if (CONSTANT_CLASS_P (_p1))
    6407              :                   {
    6408            0 :                     {
    6409            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
    6410            0 :                       tree res = generic_simplify_17 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, MINUS_EXPR);
    6411            0 :                       if (res) return res;
    6412              :                     }
    6413              :                   }
    6414              :               }
    6415              :             break;
    6416              :           }
    6417          883 :         case MINUS_EXPR:
    6418          883 :           {
    6419          883 :             tree _q30 = TREE_OPERAND (_q20, 0);
    6420          883 :             tree _q31 = TREE_OPERAND (_q20, 1);
    6421          883 :             if (CONSTANT_CLASS_P (_q31))
    6422              :               {
    6423            0 :                 if (CONSTANT_CLASS_P (_p1))
    6424              :                   {
    6425            0 :                     {
    6426            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
    6427            0 :                       tree res = generic_simplify_17 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, MINUS_EXPR);
    6428            0 :                       if (res) return res;
    6429              :                     }
    6430              :                   }
    6431              :               }
    6432          883 :             if (CONSTANT_CLASS_P (_q30))
    6433              :               {
    6434           18 :                 if (CONSTANT_CLASS_P (_p1))
    6435              :                   {
    6436            0 :                     {
    6437            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
    6438            0 :                       tree res = generic_simplify_18 (loc, type, _p0, _p1, captures, MINUS_EXPR);
    6439            0 :                       if (res) return res;
    6440              :                     }
    6441              :                   }
    6442              :               }
    6443              :             break;
    6444              :           }
    6445              :         default:;
    6446              :         }
    6447              :     }
    6448              : }
    6449     23314028 : if (CONSTANT_CLASS_P (_p0))
    6450              :   {
    6451      5634980 :     switch (TREE_CODE (_p1))
    6452              :       {
    6453          823 :       case MINUS_EXPR:
    6454          823 :         {
    6455          823 :           tree _q30 = TREE_OPERAND (_p1, 0);
    6456          823 :           tree _q31 = TREE_OPERAND (_p1, 1);
    6457          823 :           if (CONSTANT_CLASS_P (_q30))
    6458              :             {
    6459          639 :               {
    6460          639 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
    6461          639 :                 tree res = generic_simplify_55 (loc, type, _p0, _p1, captures);
    6462          639 :                 if (res) return res;
    6463              :               }
    6464              :             }
    6465              :           break;
    6466              :         }
    6467      5634350 :       default:;
    6468              :       }
    6469      5634350 :   {
    6470      5634350 :     tree _p1_pops[1];
    6471      5634350 :     if (tree_nop_convert (_p1, _p1_pops))
    6472              :       {
    6473      1835445 :         tree _q30 = _p1_pops[0];
    6474      1835445 :         switch (TREE_CODE (_q30))
    6475              :           {
    6476         7207 :           case MINUS_EXPR:
    6477         7207 :             {
    6478         7207 :               tree _q40 = TREE_OPERAND (_q30, 0);
    6479         7207 :               tree _q41 = TREE_OPERAND (_q30, 1);
    6480         7207 :               if (CONSTANT_CLASS_P (_q40))
    6481              :                 {
    6482           29 :                   {
    6483           29 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q41 };
    6484           29 :                     tree res = generic_simplify_55 (loc, type, _p0, _p1, captures);
    6485           29 :                     if (res) return res;
    6486              :                   }
    6487              :                 }
    6488              :               break;
    6489              :             }
    6490              :           default:;
    6491              :           }
    6492              :       }
    6493              :   }
    6494              :   }
    6495     23313369 : if (integer_all_onesp (_p0))
    6496              :   {
    6497      1331759 :     {
    6498      1331759 :       tree captures[1] ATTRIBUTE_UNUSED = { _p1 };
    6499      1331759 :       if (!TYPE_SATURATING (type)
    6500              : )
    6501              :         {
    6502      1331759 :           if ((!FLOAT_TYPE_P (type) || flag_associative_math)
    6503      2663518 :  && !FIXED_POINT_TYPE_P (type)
    6504              : )
    6505              :             {
    6506      1331759 :               if (TREE_CODE (type) != COMPLEX_TYPE
    6507              : )
    6508              :                 {
    6509      1331757 :                   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1196;
    6510      1331757 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1196;
    6511      1331757 :                   {
    6512      1331757 :                     tree res_op0;
    6513      1331757 :                     res_op0 = captures[0];
    6514      1331757 :                     tree _r;
    6515      1331757 :                     _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
    6516      1331757 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 909, __FILE__, __LINE__, true);
    6517      1331757 :                     return _r;
    6518              :                   }
    6519              : next_after_fail1196:;
    6520              :                 }
    6521              :             }
    6522              :         }
    6523              :     }
    6524              :   }
    6525     21981612 :   switch (TREE_CODE (_p1))
    6526              :     {
    6527      7259455 :     CASE_CONVERT:
    6528      7259455 :       {
    6529      7259455 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6530      7259455 :         switch (TREE_CODE (_q30))
    6531              :           {
    6532       672037 :           case PLUS_EXPR:
    6533       672037 :             {
    6534       672037 :               tree _q40 = TREE_OPERAND (_q30, 0);
    6535       672037 :               tree _q41 = TREE_OPERAND (_q30, 1);
    6536       672037 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || operand_equal_p (_q40, _p0, 0))
    6537              :                 {
    6538            0 :                   {
    6539            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q40, _q41, _p0 };
    6540            0 :                     tree res = generic_simplify_58 (loc, type, _p0, _p1, captures);
    6541            0 :                     if (res) return res;
    6542              :                   }
    6543              :                 }
    6544       672037 :               if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || operand_equal_p (_q41, _p0, 0))
    6545              :                 {
    6546         8062 :                   {
    6547         8062 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q41, _q40, _p0 };
    6548         8062 :                     tree res = generic_simplify_58 (loc, type, _p0, _p1, captures);
    6549         8062 :                     if (res) return res;
    6550              :                   }
    6551              :                 }
    6552              :               break;
    6553              :             }
    6554              :           default:;
    6555              :           }
    6556              :         break;
    6557              :       }
    6558     21973747 :     default:;
    6559              :     }
    6560     21973747 :   switch (TREE_CODE (_p0))
    6561              :     {
    6562      5092209 :     CASE_CONVERT:
    6563      5092209 :       {
    6564      5092209 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6565      5092209 :         switch (TREE_CODE (_p1))
    6566              :           {
    6567      4091501 :           CASE_CONVERT:
    6568      4091501 :             {
    6569      4091501 :               tree _q40 = TREE_OPERAND (_p1, 0);
    6570      4091501 :               switch (TREE_CODE (_q40))
    6571              :                 {
    6572       393269 :                 case POINTER_PLUS_EXPR:
    6573       393269 :                   {
    6574       393269 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    6575       393269 :                     tree _q51 = TREE_OPERAND (_q40, 1);
    6576       393269 :                     if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q20, 0))
    6577              :                       {
    6578         2162 :                         {
    6579         2162 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q50, _q51, _q20 };
    6580         2162 :                           if (!TYPE_SATURATING (type)
    6581              : )
    6582              :                             {
    6583         2162 :                               if ((!FLOAT_TYPE_P (type) || flag_associative_math)
    6584         4324 :  && !FIXED_POINT_TYPE_P (type)
    6585              : )
    6586              :                                 {
    6587         2162 :                                   if (INTEGRAL_TYPE_P (type)
    6588         2162 :  && TYPE_OVERFLOW_UNDEFINED (type)
    6589            0 :  && TREE_CODE (captures[1]) != INTEGER_CST
    6590         2162 :  && element_precision (type) <= element_precision (TREE_TYPE (captures[1]))
    6591              : )
    6592              :                                     {
    6593            0 :                                       {
    6594            0 :  tree utype = unsigned_type_for (type);
    6595            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1197;
    6596            0 :                                           {
    6597            0 :                                             tree res_op0;
    6598            0 :                                             {
    6599            0 :                                               tree _o1[1], _r1;
    6600            0 :                                               {
    6601            0 :                                                 tree _o2[1], _r2;
    6602            0 :                                                 _o2[0] = captures[1];
    6603            0 :                                                 if (TREE_TYPE (_o2[0]) != utype)
    6604              :                                                   {
    6605            0 :                                                     _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
    6606              :                                                   }
    6607              :                                                 else
    6608              :                                                   _r2 = _o2[0];
    6609            0 :                                                 _o1[0] = _r2;
    6610              :                                               }
    6611            0 :                                               _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    6612            0 :                                               res_op0 = _r1;
    6613              :                                             }
    6614            0 :                                             tree _r;
    6615            0 :                                             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    6616            0 :                                             if (TREE_SIDE_EFFECTS (captures[2]))
    6617            0 :                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    6618            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 910, __FILE__, __LINE__, true);
    6619            0 :                                             return _r;
    6620              :                                           }
    6621            0 : next_after_fail1197:;
    6622              :                                       }
    6623              :                                     }
    6624              :                                   else
    6625              :                                     {
    6626         2162 :                                       if (element_precision (type) <= element_precision (TREE_TYPE (captures[1]))
    6627         2162 :  || (POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6628            0 :  && TREE_CODE (captures[1]) == INTEGER_CST
    6629            0 :  && tree_int_cst_sign_bit (captures[1]) == 0)
    6630              : )
    6631              :                                         {
    6632         2162 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1198;
    6633         2162 :                                           {
    6634         2162 :                                             tree res_op0;
    6635         2162 :                                             {
    6636         2162 :                                               tree _o1[1], _r1;
    6637         2162 :                                               _o1[0] = captures[1];
    6638         2162 :                                               if (TREE_TYPE (_o1[0]) != type)
    6639              :                                                 {
    6640         2158 :                                                   _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    6641              :                                                 }
    6642              :                                               else
    6643              :                                                 _r1 = _o1[0];
    6644         2162 :                                               res_op0 = _r1;
    6645              :                                             }
    6646         2162 :                                             tree _r;
    6647         2162 :                                             _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    6648         2162 :                                             if (TREE_SIDE_EFFECTS (captures[2]))
    6649            0 :                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    6650         2162 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 911, __FILE__, __LINE__, true);
    6651         2162 :                                             return _r;
    6652              :                                           }
    6653            0 : next_after_fail1198:;
    6654              :                                         }
    6655              :                                     }
    6656              :                                 }
    6657              :                             }
    6658              :                         }
    6659              :                       }
    6660              :                     break;
    6661              :                   }
    6662              :                 default:;
    6663              :                 }
    6664              :               break;
    6665              :             }
    6666      5090047 :           default:;
    6667              :           }
    6668      5090047 :         switch (TREE_CODE (_q20))
    6669              :           {
    6670       388997 :           case PLUS_EXPR:
    6671       388997 :             {
    6672       388997 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6673       388997 :               tree _q31 = TREE_OPERAND (_q20, 1);
    6674       388997 :               switch (TREE_CODE (_p1))
    6675              :                 {
    6676       372561 :                 CASE_CONVERT:
    6677       372561 :                   {
    6678       372561 :                     tree _q60 = TREE_OPERAND (_p1, 0);
    6679       372561 :                     switch (TREE_CODE (_q60))
    6680              :                       {
    6681       201783 :                       case PLUS_EXPR:
    6682       201783 :                         {
    6683       201783 :                           tree _q70 = TREE_OPERAND (_q60, 0);
    6684       201783 :                           tree _q71 = TREE_OPERAND (_q60, 1);
    6685       201783 :                           if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || operand_equal_p (_q70, _q30, 0))
    6686              :                             {
    6687         5415 :                               {
    6688         5415 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q71, _q30 };
    6689         5415 :                                 tree res = generic_simplify_59 (loc, type, _p0, _p1, captures);
    6690         5415 :                                 if (res) return res;
    6691              :                               }
    6692              :                             }
    6693       196368 :                           if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || operand_equal_p (_q71, _q30, 0))
    6694              :                             {
    6695           70 :                               {
    6696           70 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q70, _q30 };
    6697           70 :                                 tree res = generic_simplify_59 (loc, type, _p0, _p1, captures);
    6698           70 :                                 if (res) return res;
    6699              :                               }
    6700              :                             }
    6701       196298 :                           if ((_q70 == _q31 && ! TREE_SIDE_EFFECTS (_q70)) || operand_equal_p (_q70, _q31, 0))
    6702              :                             {
    6703           90 :                               {
    6704           90 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q31, _q30, _q71, _q31 };
    6705           90 :                                 tree res = generic_simplify_59 (loc, type, _p0, _p1, captures);
    6706           90 :                                 if (res) return res;
    6707              :                               }
    6708              :                             }
    6709       196208 :                           if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || operand_equal_p (_q71, _q31, 0))
    6710              :                             {
    6711       146302 :                               {
    6712       146302 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q31, _q30, _q70, _q31 };
    6713       146302 :                                 tree res = generic_simplify_59 (loc, type, _p0, _p1, captures);
    6714       146302 :                                 if (res) return res;
    6715              :                               }
    6716              :                             }
    6717              :                           break;
    6718              :                         }
    6719              :                       default:;
    6720              :                       }
    6721              :                     break;
    6722              :                   }
    6723              :                 default:;
    6724              :                 }
    6725              :               break;
    6726              :             }
    6727        88786 :           case POINTER_PLUS_EXPR:
    6728        88786 :             {
    6729        88786 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6730        88786 :               tree _q31 = TREE_OPERAND (_q20, 1);
    6731        88786 :               switch (TREE_CODE (_p1))
    6732              :                 {
    6733        87696 :                 CASE_CONVERT:
    6734        87696 :                   {
    6735        87696 :                     tree _q60 = TREE_OPERAND (_p1, 0);
    6736        87696 :                     switch (TREE_CODE (_q60))
    6737              :                       {
    6738        51265 :                       case POINTER_PLUS_EXPR:
    6739        51265 :                         {
    6740        51265 :                           tree _q70 = TREE_OPERAND (_q60, 0);
    6741        51265 :                           tree _q71 = TREE_OPERAND (_q60, 1);
    6742        51265 :                           if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || operand_equal_p (_q70, _q30, 0))
    6743              :                             {
    6744        10267 :                               {
    6745        10267 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q71, _q30 };
    6746        10267 :                                 if (!TYPE_SATURATING (type)
    6747              : )
    6748              :                                   {
    6749        10267 :                                     if ((!FLOAT_TYPE_P (type) || flag_associative_math)
    6750        20534 :  && !FIXED_POINT_TYPE_P (type)
    6751              : )
    6752              :                                       {
    6753        10267 :                                         if (INTEGRAL_TYPE_P (type)
    6754        10267 :  && TYPE_OVERFLOW_UNDEFINED (type)
    6755        10267 :  && element_precision (type) <= element_precision (TREE_TYPE (captures[1]))
    6756              : )
    6757              :                                           {
    6758            0 :                                             {
    6759            0 :  tree utype = unsigned_type_for (type);
    6760            0 :                                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1199;
    6761            0 :                                                 {
    6762            0 :                                                   tree res_op0;
    6763            0 :                                                   {
    6764            0 :                                                     tree _o1[2], _r1;
    6765            0 :                                                     {
    6766            0 :                                                       tree _o2[1], _r2;
    6767            0 :                                                       _o2[0] = captures[1];
    6768            0 :                                                       if (TREE_TYPE (_o2[0]) != utype)
    6769              :                                                         {
    6770            0 :                                                           _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
    6771              :                                                         }
    6772              :                                                       else
    6773              :                                                         _r2 = _o2[0];
    6774            0 :                                                       _o1[0] = _r2;
    6775              :                                                     }
    6776            0 :                                                     {
    6777            0 :                                                       tree _o2[1], _r2;
    6778            0 :                                                       _o2[0] = captures[2];
    6779            0 :                                                       if (TREE_TYPE (_o2[0]) != utype)
    6780              :                                                         {
    6781            0 :                                                           _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
    6782              :                                                         }
    6783              :                                                       else
    6784              :                                                         _r2 = _o2[0];
    6785            0 :                                                       _o1[1] = _r2;
    6786              :                                                     }
    6787            0 :                                                     _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    6788            0 :                                                     res_op0 = _r1;
    6789              :                                                   }
    6790            0 :                                                   tree _r;
    6791            0 :                                                   _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    6792            0 :                                                   if (TREE_SIDE_EFFECTS (captures[3]))
    6793            0 :                                                     _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
    6794            0 :                                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 912, __FILE__, __LINE__, true);
    6795            0 :                                                   return _r;
    6796              :                                                 }
    6797            0 : next_after_fail1199:;
    6798              :                                             }
    6799              :                                           }
    6800              :                                         else
    6801              :                                           {
    6802        10267 :                                             if (element_precision (type) <= element_precision (TREE_TYPE (captures[1]))
    6803        10267 :  || (POINTER_TYPE_P (TREE_TYPE (captures[0]))
    6804            0 :  && TREE_CODE (captures[1]) == INTEGER_CST
    6805            0 :  && tree_int_cst_sign_bit (captures[1]) == 0
    6806            0 :  && TREE_CODE (captures[2]) == INTEGER_CST
    6807            0 :  && tree_int_cst_sign_bit (captures[2]) == 0)
    6808              : )
    6809              :                                               {
    6810        10267 :                                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1200;
    6811        10267 :                                                 {
    6812        10267 :                                                   tree res_op0;
    6813        10267 :                                                   {
    6814        10267 :                                                     tree _o1[1], _r1;
    6815        10267 :                                                     _o1[0] = captures[1];
    6816        10267 :                                                     if (TREE_TYPE (_o1[0]) != type)
    6817              :                                                       {
    6818        10093 :                                                         _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    6819              :                                                       }
    6820              :                                                     else
    6821              :                                                       _r1 = _o1[0];
    6822        10267 :                                                     res_op0 = _r1;
    6823              :                                                   }
    6824        10267 :                                                   tree res_op1;
    6825        10267 :                                                   {
    6826        10267 :                                                     tree _o1[1], _r1;
    6827        10267 :                                                     _o1[0] = captures[2];
    6828        10267 :                                                     if (TREE_TYPE (_o1[0]) != type)
    6829              :                                                       {
    6830        10110 :                                                         _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    6831              :                                                       }
    6832              :                                                     else
    6833              :                                                       _r1 = _o1[0];
    6834        10267 :                                                     res_op1 = _r1;
    6835              :                                                   }
    6836        10267 :                                                   tree _r;
    6837        10267 :                                                   _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
    6838        10267 :                                                   if (TREE_SIDE_EFFECTS (captures[3]))
    6839            0 :                                                     _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
    6840        10267 :                                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 913, __FILE__, __LINE__, true);
    6841        10267 :                                                   return _r;
    6842              :                                                 }
    6843            0 : next_after_fail1200:;
    6844              :                                               }
    6845              :                                           }
    6846              :                                       }
    6847              :                                   }
    6848              :                               }
    6849              :                             }
    6850              :                           break;
    6851              :                         }
    6852              :                       default:;
    6853              :                       }
    6854              :                     break;
    6855              :                   }
    6856              :                 default:;
    6857              :                 }
    6858              :               break;
    6859              :             }
    6860              :           default:;
    6861              :           }
    6862              :         break;
    6863              :       }
    6864      1460986 :     case MULT_EXPR:
    6865      1460986 :       {
    6866      1460986 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6867      1460986 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6868      1460986 :         switch (TREE_CODE (_p1))
    6869              :           {
    6870       691749 :           case MULT_EXPR:
    6871       691749 :             {
    6872       691749 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6873       691749 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6874       691749 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6875              :                 {
    6876         3952 :                   {
    6877         3952 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
    6878         3952 :                     tree res = generic_simplify_25 (loc, type, _p0, _p1, captures, MINUS_EXPR);
    6879         3952 :                     if (res) return res;
    6880              :                   }
    6881              :                 }
    6882       690542 :               if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    6883              :                 {
    6884        14001 :                   {
    6885        14001 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
    6886        14001 :                     tree res = generic_simplify_25 (loc, type, _p0, _p1, captures, MINUS_EXPR);
    6887        14001 :                     if (res) return res;
    6888              :                   }
    6889              :                 }
    6890       676541 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    6891              :                 {
    6892        34282 :                   {
    6893        34282 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q51 };
    6894        34282 :                     tree res = generic_simplify_25 (loc, type, _p0, _p1, captures, MINUS_EXPR);
    6895        34282 :                     if (res) return res;
    6896              :                   }
    6897              :                 }
    6898       642357 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6899              :                 {
    6900       208499 :                   {
    6901       208499 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
    6902       208499 :                     tree res = generic_simplify_25 (loc, type, _p0, _p1, captures, MINUS_EXPR);
    6903       208499 :                     if (res) return res;
    6904              :                   }
    6905              :                 }
    6906              :               break;
    6907              :             }
    6908              :           default:;
    6909              :           }
    6910              :         break;
    6911              :       }
    6912     21573590 :     default:;
    6913              :     }
    6914     21573590 :   switch (TREE_CODE (_p1))
    6915              :     {
    6916      1739892 :     case MULT_EXPR:
    6917      1739892 :       {
    6918      1739892 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6919      1739892 :         tree _q31 = TREE_OPERAND (_p1, 1);
    6920      1739892 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    6921              :           {
    6922         3911 :             {
    6923         3911 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
    6924         3911 :               tree res = generic_simplify_26 (loc, type, _p0, _p1, captures, MINUS_EXPR);
    6925         3911 :               if (res) return res;
    6926              :             }
    6927              :           }
    6928      1736055 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    6929              :           {
    6930         1313 :             {
    6931         1313 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
    6932         1313 :               tree res = generic_simplify_26 (loc, type, _p0, _p1, captures, MINUS_EXPR);
    6933         1313 :               if (res) return res;
    6934              :             }
    6935              :           }
    6936              :         break;
    6937              :       }
    6938     21568539 :     default:;
    6939              :     }
    6940     21568539 :   switch (TREE_CODE (_p0))
    6941              :     {
    6942      1208470 :     case MULT_EXPR:
    6943      1208470 :       {
    6944      1208470 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6945      1208470 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6946      1208470 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    6947              :           {
    6948        60110 :             {
    6949        60110 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    6950        60110 :               tree res = generic_simplify_27 (loc, type, _p0, _p1, captures, MINUS_EXPR);
    6951        60110 :               if (res) return res;
    6952              :             }
    6953              :           }
    6954      1148446 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    6955              :           {
    6956          644 :             {
    6957          644 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
    6958          644 :               tree res = generic_simplify_27 (loc, type, _p0, _p1, captures, MINUS_EXPR);
    6959          644 :               if (res) return res;
    6960              :             }
    6961              :           }
    6962              :         break;
    6963              :       }
    6964     21508416 :     default:;
    6965              :     }
    6966     21508416 :   switch (TREE_CODE (_p1))
    6967              :     {
    6968      1734841 :     case MULT_EXPR:
    6969      1734841 :       {
    6970      1734841 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6971      1734841 :         tree _q31 = TREE_OPERAND (_p1, 1);
    6972      1734841 :         switch (TREE_CODE (_q30))
    6973              :           {
    6974        75467 :           case MINUS_EXPR:
    6975        75467 :             {
    6976        75467 :               tree _q40 = TREE_OPERAND (_q30, 0);
    6977        75467 :               tree _q41 = TREE_OPERAND (_q30, 1);
    6978        75467 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    6979              :                 {
    6980           19 :                   if (tree_zero_one_valued_p (_q31))
    6981              :                     {
    6982            0 :                       {
    6983            0 :                         tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q41, _q31 };
    6984            0 :                         tree res = generic_simplify_60 (loc, type, _p0, _p1, captures);
    6985            0 :                         if (res) return res;
    6986              :                       }
    6987              :                     }
    6988              :                 }
    6989              :               break;
    6990              :             }
    6991      1734841 :           default:;
    6992              :           }
    6993      1734841 :       if (tree_zero_one_valued_p (_q30))
    6994              :         {
    6995         1156 :           switch (TREE_CODE (_q31))
    6996              :             {
    6997            9 :             case MINUS_EXPR:
    6998            9 :               {
    6999            9 :                 tree _q50 = TREE_OPERAND (_q31, 0);
    7000            9 :                 tree _q51 = TREE_OPERAND (_q31, 1);
    7001            9 :                 if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    7002              :                   {
    7003            9 :                     {
    7004            9 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q51, _q30 };
    7005            9 :                       tree res = generic_simplify_60 (loc, type, _p0, _p1, captures);
    7006            9 :                       if (res) return res;
    7007              :                     }
    7008              :                   }
    7009              :                 break;
    7010              :               }
    7011              :             default:;
    7012              :             }
    7013              :         }
    7014              :         break;
    7015              :       }
    7016     21508414 :     default:;
    7017              :     }
    7018     21508414 :   switch (TREE_CODE (_p0))
    7019              :     {
    7020            0 :     case VEC_COND_EXPR:
    7021            0 :       {
    7022            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7023            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7024            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
    7025            0 :         switch (TREE_CODE (_p1))
    7026              :           {
    7027            0 :           case VEC_COND_EXPR:
    7028            0 :             {
    7029            0 :               tree _q60 = TREE_OPERAND (_p1, 0);
    7030            0 :               tree _q61 = TREE_OPERAND (_p1, 1);
    7031            0 :               tree _q62 = TREE_OPERAND (_p1, 2);
    7032            0 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    7033              :                 {
    7034            0 :                   {
    7035            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
    7036            0 :                     if (VECTOR_TYPE_P (type)
    7037            0 :  && (TREE_CODE_CLASS (MINUS_EXPR) != tcc_comparison
    7038              :  || types_match (type, TREE_TYPE (captures[2]))
    7039              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    7040              :  || (optimize_vectors_before_lowering_p ()
    7041              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    7042              : )
    7043              :                       {
    7044            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1201;
    7045            0 :                         {
    7046            0 :                           tree res_op0;
    7047            0 :                           res_op0 = captures[1];
    7048            0 :                           tree res_op1;
    7049            0 :                           {
    7050            0 :                             tree _o1[2], _r1;
    7051            0 :                             _o1[0] = captures[2];
    7052            0 :                             _o1[1] = captures[5];
    7053            0 :                             _r1 = fold_build2_loc (loc, MINUS_EXPR, type, _o1[0], _o1[1]);
    7054            0 :                             if (EXPR_P (_r1))
    7055            0 :                               goto next_after_fail1201;
    7056            0 :                             res_op1 = _r1;
    7057              :                           }
    7058            0 :                           tree res_op2;
    7059            0 :                           {
    7060            0 :                             tree _o1[2], _r1;
    7061            0 :                             _o1[0] = captures[3];
    7062            0 :                             _o1[1] = captures[6];
    7063            0 :                             _r1 = fold_build2_loc (loc, MINUS_EXPR, type, _o1[0], _o1[1]);
    7064            0 :                             if (EXPR_P (_r1))
    7065            0 :                               goto next_after_fail1201;
    7066            0 :                             res_op2 = _r1;
    7067              :                           }
    7068            0 :                           tree _r;
    7069            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    7070            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 876, __FILE__, __LINE__, true);
    7071            0 :                           return _r;
    7072              :                         }
    7073            0 : next_after_fail1201:;
    7074              :                       }
    7075              :                   }
    7076              :                 }
    7077              :               break;
    7078              :             }
    7079            0 :           default:;
    7080              :           }
    7081            0 :         {
    7082            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
    7083            0 :           if (VECTOR_TYPE_P (type)
    7084            0 :  && (TREE_CODE_CLASS (MINUS_EXPR) != tcc_comparison
    7085              :  || types_match (type, TREE_TYPE (captures[2]))
    7086              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    7087              :  || (optimize_vectors_before_lowering_p ()
    7088              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    7089              : )
    7090              :             {
    7091            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1202;
    7092            0 :               {
    7093            0 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1202;
    7094            0 :                 tree res_op0;
    7095            0 :                 res_op0 = captures[1];
    7096            0 :                 tree res_op1;
    7097            0 :                 {
    7098            0 :                   tree _o1[2], _r1;
    7099            0 :                   _o1[0] = captures[2];
    7100            0 :                   _o1[1] = unshare_expr (captures[4]);
    7101            0 :                   _r1 = fold_build2_loc (loc, MINUS_EXPR, type, _o1[0], _o1[1]);
    7102            0 :                   if (EXPR_P (_r1))
    7103            0 :                     goto next_after_fail1202;
    7104            0 :                   res_op1 = _r1;
    7105              :                 }
    7106            0 :                 tree res_op2;
    7107            0 :                 {
    7108            0 :                   tree _o1[2], _r1;
    7109            0 :                   _o1[0] = captures[3];
    7110            0 :                   _o1[1] = captures[4];
    7111            0 :                   _r1 = fold_build2_loc (loc, MINUS_EXPR, type, _o1[0], _o1[1]);
    7112            0 :                   if (EXPR_P (_r1))
    7113            0 :                     goto next_after_fail1202;
    7114            0 :                   res_op2 = _r1;
    7115              :                 }
    7116            0 :                 tree _r;
    7117            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    7118            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 877, __FILE__, __LINE__, true);
    7119            0 :                 return _r;
    7120              :               }
    7121            0 : next_after_fail1202:;
    7122              :             }
    7123              :         }
    7124            0 :         break;
    7125              :       }
    7126     21508414 :     default:;
    7127              :     }
    7128     21508414 : if (integer_zerop (_p0))
    7129              :   {
    7130       294881 :     {
    7131       294881 :       tree captures[1] ATTRIBUTE_UNUSED = { _p1 };
    7132       294881 :       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1203;
    7133       294881 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1203;
    7134       294881 :       {
    7135       294881 :         tree res_op0;
    7136       294881 :         res_op0 = captures[0];
    7137       294881 :         tree _r;
    7138       294881 :         _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    7139       294881 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 914, __FILE__, __LINE__, true);
    7140       294881 :         return _r;
    7141              :       }
    7142              : next_after_fail1203:;
    7143              :     }
    7144              :   }
    7145     21213533 : if (real_zerop (_p0))
    7146              :   {
    7147          136 :     {
    7148          136 :       tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    7149          136 :       if (fold_real_zero_addition_p (type, captures[1], captures[0], 0)
    7150              : )
    7151              :         {
    7152           55 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1204;
    7153           55 :           {
    7154           55 :             tree res_op0;
    7155           55 :             res_op0 = captures[1];
    7156           55 :             tree _r;
    7157           55 :             _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    7158           55 :             if (TREE_SIDE_EFFECTS (captures[0]))
    7159            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    7160           55 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 915, __FILE__, __LINE__, true);
    7161           55 :             return _r;
    7162              :           }
    7163            0 : next_after_fail1204:;
    7164              :         }
    7165              :     }
    7166              :   }
    7167     21213478 :   switch (TREE_CODE (_p1))
    7168              :     {
    7169            4 :     case VEC_COND_EXPR:
    7170            4 :       {
    7171            4 :         tree _q30 = TREE_OPERAND (_p1, 0);
    7172            4 :         tree _q31 = TREE_OPERAND (_p1, 1);
    7173            4 :         tree _q32 = TREE_OPERAND (_p1, 2);
    7174            4 :         {
    7175            4 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
    7176            4 :           if (VECTOR_TYPE_P (type)
    7177            4 :  && (TREE_CODE_CLASS (MINUS_EXPR) != tcc_comparison
    7178              :  || types_match (type, TREE_TYPE (captures[3]))
    7179              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
    7180              :  || (optimize_vectors_before_lowering_p ()
    7181              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
    7182              : )
    7183              :             {
    7184            4 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1205;
    7185            4 :               {
    7186            4 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1205;
    7187            0 :                 tree res_op0;
    7188            0 :                 res_op0 = captures[2];
    7189            0 :                 tree res_op1;
    7190            0 :                 {
    7191            0 :                   tree _o1[2], _r1;
    7192            0 :                   _o1[0] = unshare_expr (captures[0]);
    7193            0 :                   _o1[1] = captures[3];
    7194            0 :                   _r1 = fold_build2_loc (loc, MINUS_EXPR, type, _o1[0], _o1[1]);
    7195            0 :                   if (EXPR_P (_r1))
    7196            0 :                     goto next_after_fail1205;
    7197            0 :                   res_op1 = _r1;
    7198              :                 }
    7199            0 :                 tree res_op2;
    7200            0 :                 {
    7201            0 :                   tree _o1[2], _r1;
    7202            0 :                   _o1[0] = captures[0];
    7203            0 :                   _o1[1] = captures[4];
    7204            0 :                   _r1 = fold_build2_loc (loc, MINUS_EXPR, type, _o1[0], _o1[1]);
    7205            0 :                   if (EXPR_P (_r1))
    7206            0 :                     goto next_after_fail1205;
    7207            0 :                   res_op2 = _r1;
    7208              :                 }
    7209            0 :                 tree _r;
    7210            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    7211            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 878, __FILE__, __LINE__, true);
    7212            0 :                 return _r;
    7213              :               }
    7214            4 : next_after_fail1205:;
    7215              :             }
    7216              :         }
    7217            4 :         if (integer_each_onep (_q31))
    7218              :           {
    7219            0 :             if (integer_zerop (_q32))
    7220              :               {
    7221            0 :                 {
    7222            0 :                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
    7223            0 :                   tree res = generic_simplify_61 (loc, type, _p0, _p1, captures);
    7224            0 :                   if (res) return res;
    7225              :                 }
    7226              :               }
    7227              :           }
    7228              :         break;
    7229              :       }
    7230       111666 :     case VIEW_CONVERT_EXPR:
    7231       111666 :       {
    7232       111666 :         tree _q30 = TREE_OPERAND (_p1, 0);
    7233       111666 :         switch (TREE_CODE (_q30))
    7234              :           {
    7235            0 :           case VEC_COND_EXPR:
    7236            0 :             {
    7237            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    7238            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    7239            0 :               tree _q42 = TREE_OPERAND (_q30, 2);
    7240            0 :               if (integer_each_onep (_q41))
    7241              :                 {
    7242            0 :                   if (integer_zerop (_q42))
    7243              :                     {
    7244            0 :                       {
    7245            0 :                         tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q30, _q40, _q41, _q42 };
    7246            0 :                         tree res = generic_simplify_61 (loc, type, _p0, _p1, captures);
    7247            0 :                         if (res) return res;
    7248              :                       }
    7249              :                     }
    7250              :                 }
    7251              :               break;
    7252              :             }
    7253              :           default:;
    7254              :           }
    7255              :         break;
    7256              :       }
    7257     21213478 :     default:;
    7258              :     }
    7259     21213478 :   switch (TREE_CODE (_p0))
    7260              :     {
    7261       111973 :     case RDIV_EXPR:
    7262       111973 :       {
    7263       111973 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7264       111973 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7265       111973 :         switch (TREE_CODE (_p1))
    7266              :           {
    7267        18739 :           case RDIV_EXPR:
    7268        18739 :             {
    7269        18739 :               tree _q50 = TREE_OPERAND (_p1, 0);
    7270        18739 :               tree _q51 = TREE_OPERAND (_p1, 1);
    7271        18739 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    7272              :                 {
    7273        18719 :                   {
    7274        18719 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    7275        18719 :                     tree res = generic_simplify_33 (loc, type, _p0, _p1, captures, MINUS_EXPR);
    7276        18719 :                     if (res) return res;
    7277              :                   }
    7278              :                 }
    7279              :               break;
    7280              :             }
    7281              :           default:;
    7282              :           }
    7283              :         break;
    7284              :       }
    7285      1351228 :     case PLUS_EXPR:
    7286      1351228 :       {
    7287      1351228 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7288      1351228 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7289      1351228 :         switch (TREE_CODE (_q20))
    7290              :           {
    7291        57069 :           case CALL_EXPR:
    7292        57069 :             switch (get_call_combined_fn (_q20))
    7293              :               {
    7294            4 :               case CFN_BUILT_IN_POPCOUNT:
    7295            4 :                 if (call_expr_nargs (_q20) == 1)
    7296              :     {
    7297            4 :                     tree _q30 = CALL_EXPR_ARG (_q20, 0);
    7298            4 :                     switch (TREE_CODE (_q21))
    7299              :                       {
    7300            4 :                       case CALL_EXPR:
    7301            4 :                         switch (get_call_combined_fn (_q21))
    7302              :                           {
    7303            4 :                           case CFN_BUILT_IN_POPCOUNT:
    7304            4 :                             if (call_expr_nargs (_q21) == 1)
    7305              :     {
    7306            4 :                                 tree _q50 = CALL_EXPR_ARG (_q21, 0);
    7307            4 :                                 switch (TREE_CODE (_p1))
    7308              :                                   {
    7309            4 :                                   case CALL_EXPR:
    7310            4 :                                     switch (get_call_combined_fn (_p1))
    7311              :                                       {
    7312            4 :                                       case CFN_BUILT_IN_POPCOUNT:
    7313            4 :                                         if (call_expr_nargs (_p1) == 1)
    7314              :     {
    7315            4 :                                             tree _q70 = CALL_EXPR_ARG (_p1, 0);
    7316            4 :                                             switch (TREE_CODE (_q70))
    7317              :                                               {
    7318            2 :                                               case BIT_AND_EXPR:
    7319            2 :                                                 {
    7320            2 :                                                   tree _q80 = TREE_OPERAND (_q70, 0);
    7321            2 :                                                   tree _q81 = TREE_OPERAND (_q70, 1);
    7322            2 :                                                   if ((_q80 == _q30 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q30, 0) && types_match (_q80, _q30)))
    7323              :                                                     {
    7324            1 :                                                       if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
    7325              :                                                         {
    7326            1 :                                                           {
    7327            1 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1, _q70 };
    7328            1 :                                                             tree res = generic_simplify_63 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNT);
    7329            1 :                                                             if (res) return res;
    7330              :                                                           }
    7331              :                                                         }
    7332              :                                                     }
    7333            1 :                                                   if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
    7334              :                                                     {
    7335            1 :                                                       if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
    7336              :                                                         {
    7337            1 :                                                           {
    7338            1 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1, _q70 };
    7339            1 :                                                             tree res = generic_simplify_63 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNT);
    7340            1 :                                                             if (res) return res;
    7341              :                                                           }
    7342              :                                                         }
    7343              :                                                     }
    7344              :                                                   break;
    7345              :                                                 }
    7346            2 :                                               case BIT_IOR_EXPR:
    7347            2 :                                                 {
    7348            2 :                                                   tree _q80 = TREE_OPERAND (_q70, 0);
    7349            2 :                                                   tree _q81 = TREE_OPERAND (_q70, 1);
    7350            2 :                                                   if ((_q80 == _q30 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q30, 0) && types_match (_q80, _q30)))
    7351              :                                                     {
    7352            1 :                                                       if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
    7353              :                                                         {
    7354            1 :                                                           {
    7355            1 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1, _q70 };
    7356            1 :                                                             tree res = generic_simplify_63 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNT);
    7357            1 :                                                             if (res) return res;
    7358              :                                                           }
    7359              :                                                         }
    7360              :                                                     }
    7361            1 :                                                   if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
    7362              :                                                     {
    7363            1 :                                                       if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
    7364              :                                                         {
    7365            1 :                                                           {
    7366            1 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1, _q70 };
    7367            1 :                                                             tree res = generic_simplify_63 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNT);
    7368            1 :                                                             if (res) return res;
    7369              :                                                           }
    7370              :                                                         }
    7371              :                                                     }
    7372              :                                                   break;
    7373              :                                                 }
    7374              :                                               default:;
    7375              :                                               }
    7376              :                                           }
    7377              :                                         break;
    7378              :                                       default:;
    7379              :                                       }
    7380              :                                     break;
    7381              :                                   default:;
    7382              :                                   }
    7383              :                               }
    7384              :                             break;
    7385              :                           default:;
    7386              :                           }
    7387              :                         break;
    7388              :                       default:;
    7389              :                       }
    7390              :                   }
    7391              :                 break;
    7392            0 :               case CFN_BUILT_IN_POPCOUNTLL:
    7393            0 :                 if (call_expr_nargs (_q20) == 1)
    7394              :     {
    7395            0 :                     tree _q30 = CALL_EXPR_ARG (_q20, 0);
    7396            0 :                     switch (TREE_CODE (_q21))
    7397              :                       {
    7398            0 :                       case CALL_EXPR:
    7399            0 :                         switch (get_call_combined_fn (_q21))
    7400              :                           {
    7401            0 :                           case CFN_BUILT_IN_POPCOUNTLL:
    7402            0 :                             if (call_expr_nargs (_q21) == 1)
    7403              :     {
    7404            0 :                                 tree _q50 = CALL_EXPR_ARG (_q21, 0);
    7405            0 :                                 switch (TREE_CODE (_p1))
    7406              :                                   {
    7407            0 :                                   case CALL_EXPR:
    7408            0 :                                     switch (get_call_combined_fn (_p1))
    7409              :                                       {
    7410            0 :                                       case CFN_BUILT_IN_POPCOUNTLL:
    7411            0 :                                         if (call_expr_nargs (_p1) == 1)
    7412              :     {
    7413            0 :                                             tree _q70 = CALL_EXPR_ARG (_p1, 0);
    7414            0 :                                             switch (TREE_CODE (_q70))
    7415              :                                               {
    7416            0 :                                               case BIT_AND_EXPR:
    7417            0 :                                                 {
    7418            0 :                                                   tree _q80 = TREE_OPERAND (_q70, 0);
    7419            0 :                                                   tree _q81 = TREE_OPERAND (_q70, 1);
    7420            0 :                                                   if ((_q80 == _q30 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q30, 0) && types_match (_q80, _q30)))
    7421              :                                                     {
    7422            0 :                                                       if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
    7423              :                                                         {
    7424            0 :                                                           {
    7425            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1, _q70 };
    7426            0 :                                                             tree res = generic_simplify_63 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTLL);
    7427            0 :                                                             if (res) return res;
    7428              :                                                           }
    7429              :                                                         }
    7430              :                                                     }
    7431            0 :                                                   if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
    7432              :                                                     {
    7433            0 :                                                       if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
    7434              :                                                         {
    7435            0 :                                                           {
    7436            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1, _q70 };
    7437            0 :                                                             tree res = generic_simplify_63 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTLL);
    7438            0 :                                                             if (res) return res;
    7439              :                                                           }
    7440              :                                                         }
    7441              :                                                     }
    7442              :                                                   break;
    7443              :                                                 }
    7444            0 :                                               case BIT_IOR_EXPR:
    7445            0 :                                                 {
    7446            0 :                                                   tree _q80 = TREE_OPERAND (_q70, 0);
    7447            0 :                                                   tree _q81 = TREE_OPERAND (_q70, 1);
    7448            0 :                                                   if ((_q80 == _q30 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q30, 0) && types_match (_q80, _q30)))
    7449              :                                                     {
    7450            0 :                                                       if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
    7451              :                                                         {
    7452            0 :                                                           {
    7453            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1, _q70 };
    7454            0 :                                                             tree res = generic_simplify_63 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTLL);
    7455            0 :                                                             if (res) return res;
    7456              :                                                           }
    7457              :                                                         }
    7458              :                                                     }
    7459            0 :                                                   if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
    7460              :                                                     {
    7461            0 :                                                       if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
    7462              :                                                         {
    7463            0 :                                                           {
    7464            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1, _q70 };
    7465            0 :                                                             tree res = generic_simplify_63 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTLL);
    7466            0 :                                                             if (res) return res;
    7467              :                                                           }
    7468              :                                                         }
    7469              :                                                     }
    7470              :                                                   break;
    7471              :                                                 }
    7472              :                                               default:;
    7473              :                                               }
    7474              :                                           }
    7475              :                                         break;
    7476              :                                       default:;
    7477              :                                       }
    7478              :                                     break;
    7479              :                                   default:;
    7480              :                                   }
    7481              :                               }
    7482              :                             break;
    7483              :                           default:;
    7484              :                           }
    7485              :                         break;
    7486              :                       default:;
    7487              :                       }
    7488              :                   }
    7489              :                 break;
    7490            0 :               case CFN_POPCOUNT:
    7491            0 :                 if (call_expr_nargs (_q20) == 1)
    7492              :     {
    7493            0 :                     tree _q30 = CALL_EXPR_ARG (_q20, 0);
    7494            0 :                     switch (TREE_CODE (_q21))
    7495              :                       {
    7496            0 :                       case CALL_EXPR:
    7497            0 :                         switch (get_call_combined_fn (_q21))
    7498              :                           {
    7499            0 :                           case CFN_POPCOUNT:
    7500            0 :                             if (call_expr_nargs (_q21) == 1)
    7501              :     {
    7502            0 :                                 tree _q50 = CALL_EXPR_ARG (_q21, 0);
    7503            0 :                                 switch (TREE_CODE (_p1))
    7504              :                                   {
    7505            0 :                                   case CALL_EXPR:
    7506            0 :                                     switch (get_call_combined_fn (_p1))
    7507              :                                       {
    7508            0 :                                       case CFN_POPCOUNT:
    7509            0 :                                         if (call_expr_nargs (_p1) == 1)
    7510              :     {
    7511            0 :                                             tree _q70 = CALL_EXPR_ARG (_p1, 0);
    7512            0 :                                             switch (TREE_CODE (_q70))
    7513              :                                               {
    7514            0 :                                               case BIT_AND_EXPR:
    7515            0 :                                                 {
    7516            0 :                                                   tree _q80 = TREE_OPERAND (_q70, 0);
    7517            0 :                                                   tree _q81 = TREE_OPERAND (_q70, 1);
    7518            0 :                                                   if ((_q80 == _q30 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q30, 0) && types_match (_q80, _q30)))
    7519              :                                                     {
    7520            0 :                                                       if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
    7521              :                                                         {
    7522            0 :                                                           {
    7523            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1, _q70 };
    7524            0 :                                                             tree res = generic_simplify_63 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_POPCOUNT);
    7525            0 :                                                             if (res) return res;
    7526              :                                                           }
    7527              :                                                         }
    7528              :                                                     }
    7529            0 :                                                   if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
    7530              :                                                     {
    7531            0 :                                                       if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
    7532              :                                                         {
    7533            0 :                                                           {
    7534            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1, _q70 };
    7535            0 :                                                             tree res = generic_simplify_63 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_POPCOUNT);
    7536            0 :                                                             if (res) return res;
    7537              :                                                           }
    7538              :                                                         }
    7539              :                                                     }
    7540              :                                                   break;
    7541              :                                                 }
    7542            0 :                                               case BIT_IOR_EXPR:
    7543            0 :                                                 {
    7544            0 :                                                   tree _q80 = TREE_OPERAND (_q70, 0);
    7545            0 :                                                   tree _q81 = TREE_OPERAND (_q70, 1);
    7546            0 :                                                   if ((_q80 == _q30 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q30, 0) && types_match (_q80, _q30)))
    7547              :                                                     {
    7548            0 :                                                       if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
    7549              :                                                         {
    7550            0 :                                                           {
    7551            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1, _q70 };
    7552            0 :                                                             tree res = generic_simplify_63 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_POPCOUNT);
    7553            0 :                                                             if (res) return res;
    7554              :                                                           }
    7555              :                                                         }
    7556              :                                                     }
    7557            0 :                                                   if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
    7558              :                                                     {
    7559            0 :                                                       if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
    7560              :                                                         {
    7561            0 :                                                           {
    7562            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1, _q70 };
    7563            0 :                                                             tree res = generic_simplify_63 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_POPCOUNT);
    7564            0 :                                                             if (res) return res;
    7565              :                                                           }
    7566              :                                                         }
    7567              :                                                     }
    7568              :                                                   break;
    7569              :                                                 }
    7570              :                                               default:;
    7571              :                                               }
    7572              :                                           }
    7573              :                                         break;
    7574              :                                       default:;
    7575              :                                       }
    7576              :                                     break;
    7577              :                                   default:;
    7578              :                                   }
    7579              :                               }
    7580              :                             break;
    7581              :                           default:;
    7582              :                           }
    7583              :                         break;
    7584              :                       default:;
    7585              :                       }
    7586              :                   }
    7587              :                 break;
    7588            0 :               case CFN_BUILT_IN_POPCOUNTIMAX:
    7589            0 :                 if (call_expr_nargs (_q20) == 1)
    7590              :     {
    7591            0 :                     tree _q30 = CALL_EXPR_ARG (_q20, 0);
    7592            0 :                     switch (TREE_CODE (_q21))
    7593              :                       {
    7594            0 :                       case CALL_EXPR:
    7595            0 :                         switch (get_call_combined_fn (_q21))
    7596              :                           {
    7597            0 :                           case CFN_BUILT_IN_POPCOUNTIMAX:
    7598            0 :                             if (call_expr_nargs (_q21) == 1)
    7599              :     {
    7600            0 :                                 tree _q50 = CALL_EXPR_ARG (_q21, 0);
    7601            0 :                                 switch (TREE_CODE (_p1))
    7602              :                                   {
    7603            0 :                                   case CALL_EXPR:
    7604            0 :                                     switch (get_call_combined_fn (_p1))
    7605              :                                       {
    7606            0 :                                       case CFN_BUILT_IN_POPCOUNTIMAX:
    7607            0 :                                         if (call_expr_nargs (_p1) == 1)
    7608              :     {
    7609            0 :                                             tree _q70 = CALL_EXPR_ARG (_p1, 0);
    7610            0 :                                             switch (TREE_CODE (_q70))
    7611              :                                               {
    7612            0 :                                               case BIT_AND_EXPR:
    7613            0 :                                                 {
    7614            0 :                                                   tree _q80 = TREE_OPERAND (_q70, 0);
    7615            0 :                                                   tree _q81 = TREE_OPERAND (_q70, 1);
    7616            0 :                                                   if ((_q80 == _q30 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q30, 0) && types_match (_q80, _q30)))
    7617              :                                                     {
    7618            0 :                                                       if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
    7619              :                                                         {
    7620            0 :                                                           {
    7621            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1, _q70 };
    7622            0 :                                                             tree res = generic_simplify_63 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
    7623            0 :                                                             if (res) return res;
    7624              :                                                           }
    7625              :                                                         }
    7626              :                                                     }
    7627            0 :                                                   if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
    7628              :                                                     {
    7629            0 :                                                       if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
    7630              :                                                         {
    7631            0 :                                                           {
    7632            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1, _q70 };
    7633            0 :                                                             tree res = generic_simplify_63 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
    7634            0 :                                                             if (res) return res;
    7635              :                                                           }
    7636              :                                                         }
    7637              :                                                     }
    7638              :                                                   break;
    7639              :                                                 }
    7640            0 :                                               case BIT_IOR_EXPR:
    7641            0 :                                                 {
    7642            0 :                                                   tree _q80 = TREE_OPERAND (_q70, 0);
    7643            0 :                                                   tree _q81 = TREE_OPERAND (_q70, 1);
    7644            0 :                                                   if ((_q80 == _q30 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q30, 0) && types_match (_q80, _q30)))
    7645              :                                                     {
    7646            0 :                                                       if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
    7647              :                                                         {
    7648            0 :                                                           {
    7649            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1, _q70 };
    7650            0 :                                                             tree res = generic_simplify_63 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
    7651            0 :                                                             if (res) return res;
    7652              :                                                           }
    7653              :                                                         }
    7654              :                                                     }
    7655            0 :                                                   if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
    7656              :                                                     {
    7657            0 :                                                       if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
    7658              :                                                         {
    7659            0 :                                                           {
    7660            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1, _q70 };
    7661            0 :                                                             tree res = generic_simplify_63 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
    7662            0 :                                                             if (res) return res;
    7663              :                                                           }
    7664              :                                                         }
    7665              :                                                     }
    7666              :                                                   break;
    7667              :                                                 }
    7668              :                                               default:;
    7669              :                                               }
    7670              :                                           }
    7671              :                                         break;
    7672              :                                       default:;
    7673              :                                       }
    7674              :                                     break;
    7675              :                                   default:;
    7676              :                                   }
    7677              :                               }
    7678              :                             break;
    7679              :                           default:;
    7680              :                           }
    7681              :                         break;
    7682              :                       default:;
    7683              :                       }
    7684              :                   }
    7685              :                 break;
    7686            0 :               case CFN_BUILT_IN_POPCOUNTL:
    7687            0 :                 if (call_expr_nargs (_q20) == 1)
    7688              :     {
    7689            0 :                     tree _q30 = CALL_EXPR_ARG (_q20, 0);
    7690            0 :                     switch (TREE_CODE (_q21))
    7691              :                       {
    7692            0 :                       case CALL_EXPR:
    7693            0 :                         switch (get_call_combined_fn (_q21))
    7694              :                           {
    7695            0 :                           case CFN_BUILT_IN_POPCOUNTL:
    7696            0 :                             if (call_expr_nargs (_q21) == 1)
    7697              :     {
    7698            0 :                                 tree _q50 = CALL_EXPR_ARG (_q21, 0);
    7699            0 :                                 switch (TREE_CODE (_p1))
    7700              :                                   {
    7701            0 :                                   case CALL_EXPR:
    7702            0 :                                     switch (get_call_combined_fn (_p1))
    7703              :                                       {
    7704            0 :                                       case CFN_BUILT_IN_POPCOUNTL:
    7705            0 :                                         if (call_expr_nargs (_p1) == 1)
    7706              :     {
    7707            0 :                                             tree _q70 = CALL_EXPR_ARG (_p1, 0);
    7708            0 :                                             switch (TREE_CODE (_q70))
    7709              :                                               {
    7710            0 :                                               case BIT_AND_EXPR:
    7711            0 :                                                 {
    7712            0 :                                                   tree _q80 = TREE_OPERAND (_q70, 0);
    7713            0 :                                                   tree _q81 = TREE_OPERAND (_q70, 1);
    7714            0 :                                                   if ((_q80 == _q30 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q30, 0) && types_match (_q80, _q30)))
    7715              :                                                     {
    7716            0 :                                                       if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
    7717              :                                                         {
    7718            0 :                                                           {
    7719            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1, _q70 };
    7720            0 :                                                             tree res = generic_simplify_63 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTL);
    7721            0 :                                                             if (res) return res;
    7722              :                                                           }
    7723              :                                                         }
    7724              :                                                     }
    7725            0 :                                                   if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
    7726              :                                                     {
    7727            0 :                                                       if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
    7728              :                                                         {
    7729            0 :                                                           {
    7730            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1, _q70 };
    7731            0 :                                                             tree res = generic_simplify_63 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_POPCOUNTL);
    7732            0 :                                                             if (res) return res;
    7733              :                                                           }
    7734              :                                                         }
    7735              :                                                     }
    7736              :                                                   break;
    7737              :                                                 }
    7738            0 :                                               case BIT_IOR_EXPR:
    7739            0 :                                                 {
    7740            0 :                                                   tree _q80 = TREE_OPERAND (_q70, 0);
    7741            0 :                                                   tree _q81 = TREE_OPERAND (_q70, 1);
    7742            0 :                                                   if ((_q80 == _q30 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q30, 0) && types_match (_q80, _q30)))
    7743              :                                                     {
    7744            0 :                                                       if ((_q81 == _q50 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q50, 0) && types_match (_q81, _q50)))
    7745              :                                                         {
    7746            0 :                                                           {
    7747            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1, _q70 };
    7748            0 :                                                             tree res = generic_simplify_63 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTL);
    7749            0 :                                                             if (res) return res;
    7750              :                                                           }
    7751              :                                                         }
    7752              :                                                     }
    7753            0 :                                                   if ((_q80 == _q50 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q50, 0) && types_match (_q80, _q50)))
    7754              :                                                     {
    7755            0 :                                                       if ((_q81 == _q30 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q30, 0) && types_match (_q81, _q30)))
    7756              :                                                         {
    7757            0 :                                                           {
    7758            0 :                                                             tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50, _p1, _q70 };
    7759            0 :                                                             tree res = generic_simplify_63 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, BIT_AND_EXPR, CFN_BUILT_IN_POPCOUNTL);
    7760            0 :                                                             if (res) return res;
    7761              :                                                           }
    7762              :                                                         }
    7763              :                                                     }
    7764              :                                                   break;
    7765              :                                                 }
    7766              :                                               default:;
    7767              :                                               }
    7768              :                                           }
    7769              :                                         break;
    7770              :                                       default:;
    7771              :                                       }
    7772              :                                     break;
    7773              :                                   default:;
    7774              :                                   }
    7775              :                               }
    7776              :                             break;
    7777              :                           default:;
    7778              :                           }
    7779              :                         break;
    7780              :                       default:;
    7781              :                       }
    7782              :                   }
    7783              :                 break;
    7784              :               default:;
    7785              :               }
    7786              :             break;
    7787              :           default:;
    7788              :           }
    7789              :         break;
    7790              :       }
    7791            0 :     case VEC_PERM_EXPR:
    7792            0 :       {
    7793            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7794            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7795            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
    7796            0 :         switch (TREE_CODE (_q20))
    7797              :           {
    7798            0 :           case MULT_EXPR:
    7799            0 :             {
    7800            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7801            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7802            0 :               if (tree_vec_same_elem_p (_q31))
    7803              :                 {
    7804            0 :                   if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
    7805              :                     {
    7806            0 :                       {
    7807            0 :                         tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q22, _p1 };
    7808            0 :                         tree res = generic_simplify_64 (loc, type, _p0, _p1, captures);
    7809            0 :                         if (res) return res;
    7810              :                       }
    7811              :                     }
    7812              :                 }
    7813            0 :               if (tree_vec_same_elem_p (_q30))
    7814              :                 {
    7815            0 :                   if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
    7816              :                     {
    7817            0 :                       {
    7818            0 :                         tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q31, _q30, _q22, _p1 };
    7819            0 :                         tree res = generic_simplify_64 (loc, type, _p0, _p1, captures);
    7820            0 :                         if (res) return res;
    7821              :                       }
    7822              :                     }
    7823              :                 }
    7824              :               break;
    7825              :             }
    7826              :           default:;
    7827              :           }
    7828              :         break;
    7829              :       }
    7830       817484 :     case CALL_EXPR:
    7831       817484 :       switch (get_call_combined_fn (_p0))
    7832              :         {
    7833           18 :         case CFN_BUILT_IN_LOG:
    7834           18 :           if (call_expr_nargs (_p0) == 1)
    7835              :     {
    7836           18 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7837           18 :               switch (TREE_CODE (_p1))
    7838              :                 {
    7839            0 :                 case CALL_EXPR:
    7840            0 :                   switch (get_call_combined_fn (_p1))
    7841              :                     {
    7842            0 :                     case CFN_BUILT_IN_LOG:
    7843            0 :                       if (call_expr_nargs (_p1) == 1)
    7844              :     {
    7845            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    7846            0 :                           {
    7847            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    7848            0 :                             tree res = generic_simplify_62 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG);
    7849            0 :                             if (res) return res;
    7850              :                           }
    7851              :                         }
    7852              :                       break;
    7853              :                     default:;
    7854              :                     }
    7855              :                   break;
    7856              :                 default:;
    7857              :                 }
    7858              :             }
    7859              :           break;
    7860            2 :         case CFN_BUILT_IN_LOG2:
    7861            2 :           if (call_expr_nargs (_p0) == 1)
    7862              :     {
    7863            2 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7864            2 :               switch (TREE_CODE (_p1))
    7865              :                 {
    7866            0 :                 case CALL_EXPR:
    7867            0 :                   switch (get_call_combined_fn (_p1))
    7868              :                     {
    7869            0 :                     case CFN_BUILT_IN_LOG2:
    7870            0 :                       if (call_expr_nargs (_p1) == 1)
    7871              :     {
    7872            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    7873            0 :                           {
    7874            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    7875            0 :                             tree res = generic_simplify_62 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2);
    7876            0 :                             if (res) return res;
    7877              :                           }
    7878              :                         }
    7879              :                       break;
    7880              :                     default:;
    7881              :                     }
    7882              :                   break;
    7883              :                 default:;
    7884              :                 }
    7885              :             }
    7886              :           break;
    7887            0 :         case CFN_BUILT_IN_LOGF:
    7888            0 :           if (call_expr_nargs (_p0) == 1)
    7889              :     {
    7890            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7891            0 :               switch (TREE_CODE (_p1))
    7892              :                 {
    7893            0 :                 case CALL_EXPR:
    7894            0 :                   switch (get_call_combined_fn (_p1))
    7895              :                     {
    7896            0 :                     case CFN_BUILT_IN_LOGF:
    7897            0 :                       if (call_expr_nargs (_p1) == 1)
    7898              :     {
    7899            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    7900            0 :                           {
    7901            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    7902            0 :                             tree res = generic_simplify_62 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGF);
    7903            0 :                             if (res) return res;
    7904              :                           }
    7905              :                         }
    7906              :                       break;
    7907              :                     default:;
    7908              :                     }
    7909              :                   break;
    7910              :                 default:;
    7911              :                 }
    7912              :             }
    7913              :           break;
    7914            0 :         case CFN_BUILT_IN_LOGL:
    7915            0 :           if (call_expr_nargs (_p0) == 1)
    7916              :     {
    7917            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7918            0 :               switch (TREE_CODE (_p1))
    7919              :                 {
    7920            0 :                 case CALL_EXPR:
    7921            0 :                   switch (get_call_combined_fn (_p1))
    7922              :                     {
    7923            0 :                     case CFN_BUILT_IN_LOGL:
    7924            0 :                       if (call_expr_nargs (_p1) == 1)
    7925              :     {
    7926            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    7927            0 :                           {
    7928            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    7929            0 :                             tree res = generic_simplify_62 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGL);
    7930            0 :                             if (res) return res;
    7931              :                           }
    7932              :                         }
    7933              :                       break;
    7934              :                     default:;
    7935              :                     }
    7936              :                   break;
    7937              :                 default:;
    7938              :                 }
    7939              :             }
    7940              :           break;
    7941            0 :         case CFN_BUILT_IN_LOG10F:
    7942            0 :           if (call_expr_nargs (_p0) == 1)
    7943              :     {
    7944            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7945            0 :               switch (TREE_CODE (_p1))
    7946              :                 {
    7947            0 :                 case CALL_EXPR:
    7948            0 :                   switch (get_call_combined_fn (_p1))
    7949              :                     {
    7950            0 :                     case CFN_BUILT_IN_LOG10F:
    7951            0 :                       if (call_expr_nargs (_p1) == 1)
    7952              :     {
    7953            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    7954            0 :                           {
    7955            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    7956            0 :                             tree res = generic_simplify_62 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10F);
    7957            0 :                             if (res) return res;
    7958              :                           }
    7959              :                         }
    7960              :                       break;
    7961              :                     default:;
    7962              :                     }
    7963              :                   break;
    7964              :                 default:;
    7965              :                 }
    7966              :             }
    7967              :           break;
    7968            0 :         case CFN_BUILT_IN_LOG10L:
    7969            0 :           if (call_expr_nargs (_p0) == 1)
    7970              :     {
    7971            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7972            0 :               switch (TREE_CODE (_p1))
    7973              :                 {
    7974            0 :                 case CALL_EXPR:
    7975            0 :                   switch (get_call_combined_fn (_p1))
    7976              :                     {
    7977            0 :                     case CFN_BUILT_IN_LOG10L:
    7978            0 :                       if (call_expr_nargs (_p1) == 1)
    7979              :     {
    7980            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    7981            0 :                           {
    7982            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    7983            0 :                             tree res = generic_simplify_62 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10L);
    7984            0 :                             if (res) return res;
    7985              :                           }
    7986              :                         }
    7987              :                       break;
    7988              :                     default:;
    7989              :                     }
    7990              :                   break;
    7991              :                 default:;
    7992              :                 }
    7993              :             }
    7994              :           break;
    7995            0 :         case CFN_LOG:
    7996            0 :           if (call_expr_nargs (_p0) == 1)
    7997              :     {
    7998            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7999            0 :               switch (TREE_CODE (_p1))
    8000              :                 {
    8001            0 :                 case CALL_EXPR:
    8002            0 :                   switch (get_call_combined_fn (_p1))
    8003              :                     {
    8004            0 :                     case CFN_LOG:
    8005            0 :                       if (call_expr_nargs (_p1) == 1)
    8006              :     {
    8007            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    8008            0 :                           {
    8009            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    8010            0 :                             tree res = generic_simplify_62 (loc, type, _p0, _p1, captures, CFN_LOG);
    8011            0 :                             if (res) return res;
    8012              :                           }
    8013              :                         }
    8014              :                       break;
    8015              :                     default:;
    8016              :                     }
    8017              :                   break;
    8018              :                 default:;
    8019              :                 }
    8020              :             }
    8021              :           break;
    8022            0 :         case CFN_LOG2:
    8023            0 :           if (call_expr_nargs (_p0) == 1)
    8024              :     {
    8025            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8026            0 :               switch (TREE_CODE (_p1))
    8027              :                 {
    8028            0 :                 case CALL_EXPR:
    8029            0 :                   switch (get_call_combined_fn (_p1))
    8030              :                     {
    8031            0 :                     case CFN_LOG2:
    8032            0 :                       if (call_expr_nargs (_p1) == 1)
    8033              :     {
    8034            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    8035            0 :                           {
    8036            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    8037            0 :                             tree res = generic_simplify_62 (loc, type, _p0, _p1, captures, CFN_LOG2);
    8038            0 :                             if (res) return res;
    8039              :                           }
    8040              :                         }
    8041              :                       break;
    8042              :                     default:;
    8043              :                     }
    8044              :                   break;
    8045              :                 default:;
    8046              :                 }
    8047              :             }
    8048              :           break;
    8049            0 :         case CFN_LOG10:
    8050            0 :           if (call_expr_nargs (_p0) == 1)
    8051              :     {
    8052            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8053            0 :               switch (TREE_CODE (_p1))
    8054              :                 {
    8055            0 :                 case CALL_EXPR:
    8056            0 :                   switch (get_call_combined_fn (_p1))
    8057              :                     {
    8058            0 :                     case CFN_LOG10:
    8059            0 :                       if (call_expr_nargs (_p1) == 1)
    8060              :     {
    8061            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    8062            0 :                           {
    8063            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    8064            0 :                             tree res = generic_simplify_62 (loc, type, _p0, _p1, captures, CFN_LOG10);
    8065            0 :                             if (res) return res;
    8066              :                           }
    8067              :                         }
    8068              :                       break;
    8069              :                     default:;
    8070              :                     }
    8071              :                   break;
    8072              :                 default:;
    8073              :                 }
    8074              :             }
    8075              :           break;
    8076            6 :         case CFN_BUILT_IN_LOG10:
    8077            6 :           if (call_expr_nargs (_p0) == 1)
    8078              :     {
    8079            6 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8080            6 :               switch (TREE_CODE (_p1))
    8081              :                 {
    8082            2 :                 case CALL_EXPR:
    8083            2 :                   switch (get_call_combined_fn (_p1))
    8084              :                     {
    8085            2 :                     case CFN_BUILT_IN_LOG10:
    8086            2 :                       if (call_expr_nargs (_p1) == 1)
    8087              :     {
    8088            2 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    8089            2 :                           {
    8090            2 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    8091            2 :                             tree res = generic_simplify_62 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10);
    8092            2 :                             if (res) return res;
    8093              :                           }
    8094              :                         }
    8095              :                       break;
    8096              :                     default:;
    8097              :                     }
    8098              :                   break;
    8099              :                 default:;
    8100              :                 }
    8101              :             }
    8102              :           break;
    8103            0 :         case CFN_BUILT_IN_LOG2F:
    8104            0 :           if (call_expr_nargs (_p0) == 1)
    8105              :     {
    8106            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8107            0 :               switch (TREE_CODE (_p1))
    8108              :                 {
    8109            0 :                 case CALL_EXPR:
    8110            0 :                   switch (get_call_combined_fn (_p1))
    8111              :                     {
    8112            0 :                     case CFN_BUILT_IN_LOG2F:
    8113            0 :                       if (call_expr_nargs (_p1) == 1)
    8114              :     {
    8115            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    8116            0 :                           {
    8117            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    8118            0 :                             tree res = generic_simplify_62 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2F);
    8119            0 :                             if (res) return res;
    8120              :                           }
    8121              :                         }
    8122              :                       break;
    8123              :                     default:;
    8124              :                     }
    8125              :                   break;
    8126              :                 default:;
    8127              :                 }
    8128              :             }
    8129              :           break;
    8130            0 :         case CFN_BUILT_IN_LOG2L:
    8131            0 :           if (call_expr_nargs (_p0) == 1)
    8132              :     {
    8133            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8134            0 :               switch (TREE_CODE (_p1))
    8135              :                 {
    8136            0 :                 case CALL_EXPR:
    8137            0 :                   switch (get_call_combined_fn (_p1))
    8138              :                     {
    8139            0 :                     case CFN_BUILT_IN_LOG2L:
    8140            0 :                       if (call_expr_nargs (_p1) == 1)
    8141              :     {
    8142            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    8143            0 :                           {
    8144            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    8145            0 :                             tree res = generic_simplify_62 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2L);
    8146            0 :                             if (res) return res;
    8147              :                           }
    8148              :                         }
    8149              :                       break;
    8150              :                     default:;
    8151              :                     }
    8152              :                   break;
    8153              :                 default:;
    8154              :                 }
    8155              :             }
    8156              :           break;
    8157              :         default:;
    8158              :         }
    8159              :       break;
    8160     21213461 :     default:;
    8161              :     }
    8162     21213461 :   switch (TREE_CODE (_p1))
    8163              :     {
    8164         6731 :     case BIT_AND_EXPR:
    8165         6731 :       {
    8166         6731 :         tree _q30 = TREE_OPERAND (_p1, 0);
    8167         6731 :         tree _q31 = TREE_OPERAND (_p1, 1);
    8168         6731 :         switch (TREE_CODE (_q30))
    8169              :           {
    8170           80 :           case MAX_EXPR:
    8171           80 :             {
    8172           80 :               tree _q40 = TREE_OPERAND (_q30, 0);
    8173           80 :               tree _q41 = TREE_OPERAND (_q30, 1);
    8174           80 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    8175              :                 {
    8176           80 :                   switch (TREE_CODE (_q41))
    8177              :                     {
    8178           80 :                     case INTEGER_CST:
    8179           80 :                       {
    8180           80 :                         switch (TREE_CODE (_q31))
    8181              :                           {
    8182           72 :                           case INTEGER_CST:
    8183           72 :                             {
    8184           72 :                               {
    8185           72 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q41, _q31 };
    8186           72 :                                 {
    8187           72 :  auto i = wi::neg (wi::to_wide (captures[2]));
    8188           72 :                                     if (wi::popcount (i) == 1
    8189          200 :  && (wi::to_wide (captures[1])) == (i - 1)
    8190              : )
    8191              :                                       {
    8192           40 :                                         if (TYPE_UNSIGNED (TREE_TYPE (captures[0]))
    8193              : )
    8194              :                                           {
    8195            8 :                                             if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1206;
    8196            8 :                                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1206;
    8197            8 :                                             {
    8198            8 :                                               tree res_op0;
    8199            8 :                                               res_op0 = captures[0];
    8200            8 :                                               tree res_op1;
    8201            8 :                                               res_op1 = captures[1];
    8202            8 :                                               tree _r;
    8203            8 :                                               _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    8204            8 :                                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 916, __FILE__, __LINE__, true);
    8205            8 :                                               return _r;
    8206              :                                             }
    8207           64 : next_after_fail1206:;
    8208              :                                           }
    8209              :                                         else
    8210              :                                           {
    8211           32 :                                             if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1207;
    8212           32 :                                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1207;
    8213           32 :                                             {
    8214           32 :                                               if (! tree_invariant_p (captures[0])) goto next_after_fail1207;
    8215            0 :                                               if (! tree_invariant_p (captures[1])) goto next_after_fail1207;
    8216            0 :                                               tree res_op0;
    8217            0 :                                               {
    8218            0 :                                                 tree _o1[2], _r1;
    8219            0 :                                                 _o1[0] = unshare_expr (captures[0]);
    8220            0 :                                                 _o1[1] = unshare_expr (captures[1]);
    8221            0 :                                                 _r1 = fold_build2_loc (loc, LE_EXPR, boolean_type_node, _o1[0], _o1[1]);
    8222            0 :                                                 res_op0 = _r1;
    8223              :                                               }
    8224            0 :                                               tree res_op1;
    8225            0 :                                               res_op1 = unshare_expr (captures[0]);
    8226            0 :                                               tree res_op2;
    8227            0 :                                               {
    8228            0 :                                                 tree _o1[2], _r1;
    8229            0 :                                                 _o1[0] = captures[0];
    8230            0 :                                                 _o1[1] = captures[1];
    8231            0 :                                                 _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    8232            0 :                                                 res_op2 = _r1;
    8233              :                                               }
    8234            0 :                                               tree _r;
    8235            0 :                                               _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
    8236            0 :                                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 917, __FILE__, __LINE__, true);
    8237            0 :                                               return _r;
    8238              :                                             }
    8239           64 : next_after_fail1207:;
    8240              :                                           }
    8241              :                                       }
    8242            8 :                                 }
    8243              :                               }
    8244           64 :                               break;
    8245              :                             }
    8246              :                           default:;
    8247              :                           }
    8248              :                         break;
    8249              :                       }
    8250              :                     default:;
    8251              :                     }
    8252              :                 }
    8253              :               break;
    8254              :             }
    8255              :           default:;
    8256              :           }
    8257              :         break;
    8258              :       }
    8259     21213453 :     default:;
    8260              :     }
    8261     21213453 :   switch (TREE_CODE (_p0))
    8262              :     {
    8263            0 :     case VEC_PERM_EXPR:
    8264            0 :       {
    8265            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8266            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8267            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
    8268            0 :         if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
    8269              :           {
    8270            0 :             switch (TREE_CODE (_p1))
    8271              :               {
    8272            0 :               case VEC_PERM_EXPR:
    8273            0 :                 {
    8274            0 :                   tree _q60 = TREE_OPERAND (_p1, 0);
    8275            0 :                   tree _q61 = TREE_OPERAND (_p1, 1);
    8276            0 :                   tree _q62 = TREE_OPERAND (_p1, 2);
    8277            0 :                   if ((_q61 == _q60 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q60, 0) && types_match (_q61, _q60)))
    8278              :                     {
    8279            0 :                       if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
    8280              :                         {
    8281            0 :                           {
    8282            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q22, _q60 };
    8283            0 :                             if (VECTOR_INTEGER_TYPE_P (type)
    8284              : )
    8285              :                               {
    8286            0 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1208;
    8287            0 :                                 {
    8288            0 :                                   tree res_op0;
    8289            0 :                                   {
    8290            0 :                                     tree _o1[2], _r1;
    8291            0 :                                     _o1[0] = captures[0];
    8292            0 :                                     _o1[1] = captures[2];
    8293            0 :                                     _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    8294            0 :                                     captures[3] = _r1;
    8295              :                                   }
    8296            0 :                                   res_op0 = unshare_expr (captures[3]);
    8297            0 :                                   tree res_op1;
    8298            0 :                                   res_op1 = captures[3];
    8299            0 :                                   tree res_op2;
    8300            0 :                                   res_op2 = captures[1];
    8301            0 :                                   tree _r;
    8302            0 :                                   _r = fold_build3_loc (loc, VEC_PERM_EXPR, type, res_op0, res_op1, res_op2);
    8303            0 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 879, __FILE__, __LINE__, true);
    8304            0 :                                   return _r;
    8305              :                                 }
    8306            0 : next_after_fail1208:;
    8307              :                               }
    8308              :                           }
    8309              :                         }
    8310              :                     }
    8311              :                   break;
    8312              :                 }
    8313            0 :               default:;
    8314              :               }
    8315            0 :             switch (TREE_CODE (_q22))
    8316              :               {
    8317            0 :               case VECTOR_CST:
    8318            0 :                 {
    8319            0 :                   switch (TREE_CODE (_p1))
    8320              :                     {
    8321            0 :                     case VEC_PERM_EXPR:
    8322            0 :                       {
    8323            0 :                         tree _q60 = TREE_OPERAND (_p1, 0);
    8324            0 :                         tree _q61 = TREE_OPERAND (_p1, 1);
    8325            0 :                         tree _q62 = TREE_OPERAND (_p1, 2);
    8326            0 :                         if ((_q61 == _q60 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q60, 0) && types_match (_q61, _q60)))
    8327              :                           {
    8328            0 :                             if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
    8329              :                               {
    8330            0 :                                 switch (TREE_CODE (_q62))
    8331              :                                   {
    8332            0 :                                   case VECTOR_CST:
    8333            0 :                                     {
    8334            0 :                                       {
    8335            0 :                                         tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q22, _q60 };
    8336            0 :                                         tree res = generic_simplify_39 (loc, type, _p0, _p1, captures, MINUS_EXPR);
    8337            0 :                                         if (res) return res;
    8338              :                                       }
    8339            0 :                                       break;
    8340              :                                     }
    8341              :                                   default:;
    8342              :                                   }
    8343              :                               }
    8344              :                           }
    8345              :                         break;
    8346              :                       }
    8347              :                     default:;
    8348              :                     }
    8349              :                   break;
    8350              :                 }
    8351              :               default:;
    8352              :               }
    8353              :           }
    8354              :         break;
    8355              :       }
    8356              :     default:;
    8357              :     }
    8358              :   return NULL_TREE;
    8359              : }
    8360              : 
    8361              : tree
    8362      1386532 : generic_simplify_LSHIFT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
    8363              : {
    8364      1386532 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    8365      1386532 :   switch (TREE_CODE (_p1))
    8366              :     {
    8367          249 :     case TRUNC_MOD_EXPR:
    8368          249 :       {
    8369          249 :         tree _q30 = TREE_OPERAND (_p1, 0);
    8370          249 :         tree _q31 = TREE_OPERAND (_p1, 1);
    8371          249 :         {
    8372          249 :           tree _q31_pops[1];
    8373          249 :           if (tree_power_of_two_cand (_q31, _q31_pops))
    8374              :             {
    8375          243 :               tree _q50 = _q31_pops[0];
    8376          243 :               {
    8377          243 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q50 };
    8378          243 :                 tree res = generic_simplify_408 (loc, type, _p0, _p1, captures, LSHIFT_EXPR, TRUNC_MOD_EXPR);
    8379          243 :                 if (res) return res;
    8380              :               }
    8381              :             }
    8382              :         }
    8383           75 :         break;
    8384              :       }
    8385            0 :     case FLOOR_MOD_EXPR:
    8386            0 :       {
    8387            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    8388            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
    8389            0 :         {
    8390            0 :           tree _q31_pops[1];
    8391            0 :           if (tree_power_of_two_cand (_q31, _q31_pops))
    8392              :             {
    8393            0 :               tree _q50 = _q31_pops[0];
    8394            0 :               {
    8395            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q50 };
    8396            0 :                 tree res = generic_simplify_408 (loc, type, _p0, _p1, captures, LSHIFT_EXPR, FLOOR_MOD_EXPR);
    8397            0 :                 if (res) return res;
    8398              :               }
    8399              :             }
    8400              :         }
    8401            0 :         break;
    8402              :       }
    8403      1386358 :     default:;
    8404              :     }
    8405      1386358 : if (uniform_integer_cst_p (_p1))
    8406              :   {
    8407       997202 :     {
    8408       997202 :       tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    8409       997202 :       tree res = generic_simplify_409 (loc, type, _p0, _p1, captures, LSHIFT_EXPR);
    8410       997202 :       if (res) return res;
    8411              :     }
    8412              :   }
    8413      1385893 :   switch (TREE_CODE (_p0))
    8414              :     {
    8415       848591 :     CASE_CONVERT:
    8416       848591 :       {
    8417       848591 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8418       848591 :         switch (TREE_CODE (_q20))
    8419              :           {
    8420            4 :           case LT_EXPR:
    8421            4 :             {
    8422            4 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8423            4 :               tree _q31 = TREE_OPERAND (_q20, 1);
    8424            4 :               if (integer_zerop (_q31))
    8425              :                 {
    8426            4 :                   switch (TREE_CODE (_p1))
    8427              :                     {
    8428            4 :                     case INTEGER_CST:
    8429            4 :                       {
    8430            4 :                         {
    8431            4 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
    8432            4 :                           if (TYPE_SIGN (TREE_TYPE (captures[0])) == SIGNED
    8433            4 :  && wi::eq_p (wi::to_wide (captures[2]), TYPE_PRECISION (TREE_TYPE (captures[0])) - 1)
    8434              : )
    8435              :                             {
    8436            0 :                               {
    8437            0 :  wide_int wone = wi::one (TYPE_PRECISION (type));
    8438            0 :                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1636;
    8439            0 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1636;
    8440            0 :                                   {
    8441            0 :                                     tree res_op0;
    8442            0 :                                     {
    8443            0 :                                       tree _o1[1], _r1;
    8444            0 :                                       _o1[0] = captures[0];
    8445            0 :                                       if (TREE_TYPE (_o1[0]) != type)
    8446              :                                         {
    8447            0 :                                           _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    8448              :                                         }
    8449              :                                       else
    8450              :                                         _r1 = _o1[0];
    8451            0 :                                       res_op0 = _r1;
    8452              :                                     }
    8453            0 :                                     tree res_op1;
    8454            0 :                                     res_op1 =  wide_int_to_tree (type,
    8455            0 :  wi::lshift (wone, wi::to_wide (captures[2])));
    8456            0 :                                     tree _r;
    8457            0 :                                     _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    8458            0 :                                     if (TREE_SIDE_EFFECTS (captures[1]))
    8459            0 :                                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    8460            0 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 987, __FILE__, __LINE__, true);
    8461            0 :                                     return _r;
    8462              :                                   }
    8463            0 : next_after_fail1636:;
    8464            0 :                               }
    8465              :                             }
    8466              :                         }
    8467            4 :                         break;
    8468              :                       }
    8469              :                     default:;
    8470              :                     }
    8471              :                 }
    8472              :               break;
    8473              :             }
    8474          123 :           CASE_CONVERT:
    8475          123 :             {
    8476          123 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8477          123 :               switch (TREE_CODE (_q30))
    8478              :                 {
    8479            0 :                 case RSHIFT_EXPR:
    8480            0 :                   {
    8481            0 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    8482            0 :                     tree _q41 = TREE_OPERAND (_q30, 1);
    8483            0 :                     switch (TREE_CODE (_q41))
    8484              :                       {
    8485            0 :                       case INTEGER_CST:
    8486            0 :                         {
    8487            0 :                           if ((_p1 == _q41 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q41, 0) && types_match (_p1, _q41)))
    8488              :                             {
    8489            0 :                               {
    8490            0 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q40, _q41 };
    8491            0 :                                 if (wi::ltu_p (wi::to_wide (captures[2]), element_precision (type))
    8492            0 :  && INTEGRAL_TYPE_P (type)
    8493            0 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    8494            0 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    8495            0 :  && TYPE_PRECISION (type) == TYPE_PRECISION (TREE_TYPE (captures[1]))
    8496            0 :  && (TYPE_PRECISION (TREE_TYPE (captures[0])) >= TYPE_PRECISION (type)
    8497            0 :  || wi::geu_p (wi::to_wide (captures[2]),
    8498            0 :  TYPE_PRECISION (type)
    8499            0 :  - TYPE_PRECISION (TREE_TYPE (captures[0]))))
    8500              : )
    8501              :                                   {
    8502            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1637;
    8503            0 :                                     {
    8504            0 :                                       tree res_op0;
    8505            0 :                                       {
    8506            0 :                                         tree _o1[1], _r1;
    8507            0 :                                         _o1[0] = captures[1];
    8508            0 :                                         if (TREE_TYPE (_o1[0]) != type)
    8509              :                                           {
    8510            0 :                                             _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    8511              :                                           }
    8512              :                                         else
    8513              :                                           _r1 = _o1[0];
    8514            0 :                                         res_op0 = _r1;
    8515              :                                       }
    8516            0 :                                       tree res_op1;
    8517            0 :                                       {
    8518            0 :                                         tree _o1[2], _r1;
    8519            0 :                                         _o1[0] =  build_minus_one_cst (type);
    8520            0 :                                         _o1[1] = captures[2];
    8521            0 :                                         _r1 = fold_build2_loc (loc, LSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    8522            0 :                                         res_op1 = _r1;
    8523              :                                       }
    8524            0 :                                       tree _r;
    8525            0 :                                       _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    8526            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 988, __FILE__, __LINE__, true);
    8527            0 :                                       return _r;
    8528              :                                     }
    8529            0 : next_after_fail1637:;
    8530              :                                   }
    8531              :                               }
    8532              :                             }
    8533              :                           break;
    8534              :                         }
    8535              :                       default:;
    8536              :                       }
    8537              :                     break;
    8538              :                   }
    8539              :                 default:;
    8540              :                 }
    8541              :               break;
    8542              :             }
    8543              :           default:;
    8544              :           }
    8545              :         break;
    8546              :       }
    8547        19066 :     case RSHIFT_EXPR:
    8548        19066 :       {
    8549        19066 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8550        19066 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8551        19066 :         switch (TREE_CODE (_q21))
    8552              :           {
    8553           48 :           case INTEGER_CST:
    8554           48 :             {
    8555           48 :               if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    8556              :                 {
    8557            3 :                   {
    8558            3 :                     tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    8559            3 :                     tree res = generic_simplify_410 (loc, type, _p0, _p1, captures);
    8560            3 :                     if (res) return res;
    8561              :                   }
    8562              :                 }
    8563              :               break;
    8564              :             }
    8565              :           default:;
    8566              :           }
    8567              :         break;
    8568              :       }
    8569      1385890 :     default:;
    8570              :     }
    8571      1385890 : {
    8572      1385890 :   tree _p0_pops[1];
    8573      1385890 :   if (tree_nop_convert (_p0, _p0_pops))
    8574              :     {
    8575       817818 :       tree _q20 = _p0_pops[0];
    8576       817818 :       switch (TREE_CODE (_q20))
    8577              :         {
    8578           73 :         case RSHIFT_EXPR:
    8579           73 :           {
    8580           73 :             tree _q30 = TREE_OPERAND (_q20, 0);
    8581           73 :             tree _q31 = TREE_OPERAND (_q20, 1);
    8582           73 :             switch (TREE_CODE (_q31))
    8583              :               {
    8584           67 :               case INTEGER_CST:
    8585           67 :                 {
    8586           67 :                   if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q31, 0) && types_match (_p1, _q31)))
    8587              :                     {
    8588            8 :                       {
    8589            8 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
    8590            8 :                         tree res = generic_simplify_410 (loc, type, _p0, _p1, captures);
    8591            8 :                         if (res) return res;
    8592              :                       }
    8593              :                     }
    8594              :                   break;
    8595              :                 }
    8596              :               default:;
    8597              :               }
    8598              :             break;
    8599              :           }
    8600              :         default:;
    8601              :         }
    8602              :     }
    8603              : }
    8604      1385882 : if (integer_onep (_p0))
    8605              :   {
    8606       316206 :     switch (TREE_CODE (_p1))
    8607              :       {
    8608        46001 :       case MINUS_EXPR:
    8609        46001 :         {
    8610        46001 :           tree _q30 = TREE_OPERAND (_p1, 0);
    8611        46001 :           tree _q31 = TREE_OPERAND (_p1, 1);
    8612        46001 :           switch (TREE_CODE (_q30))
    8613              :             {
    8614        45998 :             case INTEGER_CST:
    8615        45998 :               {
    8616        45998 :                 {
    8617        45998 :                   tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31 };
    8618        45998 :                   if (INTEGRAL_TYPE_P (type)
    8619        45998 :  && wi::eq_p (wi::to_wide (captures[2]), TYPE_PRECISION (type) - 1)
    8620        45998 :  && single_use (captures[1])
    8621              : )
    8622              :                     {
    8623        28236 :                       if (TYPE_UNSIGNED (type)
    8624              : )
    8625              :                         {
    8626        28230 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1638;
    8627        28230 :                           {
    8628        28230 :                             tree res_op0;
    8629        28230 :                             {
    8630        28230 :                               tree _o1[2], _r1;
    8631        28230 :                               _o1[0] = captures[0];
    8632        28230 :                               _o1[1] = captures[2];
    8633        28230 :                               _r1 = fold_build2_loc (loc, LSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    8634        28230 :                               res_op0 = _r1;
    8635              :                             }
    8636        28230 :                             tree res_op1;
    8637        28230 :                             res_op1 = captures[3];
    8638        28230 :                             tree _r;
    8639        28230 :                             _r = fold_build2_loc (loc, RSHIFT_EXPR, type, res_op0, res_op1);
    8640        28230 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 989, __FILE__, __LINE__, true);
    8641        28230 :                             return _r;
    8642              :                           }
    8643            0 : next_after_fail1638:;
    8644              :                         }
    8645              :                       else
    8646              :                         {
    8647            6 :                           {
    8648            6 :  tree utype = unsigned_type_for (type);
    8649            6 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1639;
    8650            6 :                               {
    8651            6 :                                 tree res_op0;
    8652            6 :                                 {
    8653            6 :                                   tree _o1[2], _r1;
    8654            6 :                                   {
    8655            6 :                                     tree _o2[2], _r2;
    8656            6 :                                     {
    8657            6 :                                       tree _o3[1], _r3;
    8658            6 :                                       _o3[0] = captures[0];
    8659            6 :                                       if (TREE_TYPE (_o3[0]) != utype)
    8660              :                                         {
    8661            6 :                                           _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
    8662              :                                         }
    8663              :                                       else
    8664              :                                         _r3 = _o3[0];
    8665            6 :                                       _o2[0] = _r3;
    8666              :                                     }
    8667            6 :                                     _o2[1] = captures[2];
    8668            6 :                                     _r2 = fold_build2_loc (loc, LSHIFT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    8669            6 :                                     _o1[0] = _r2;
    8670              :                                   }
    8671            6 :                                   _o1[1] = captures[3];
    8672            6 :                                   _r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    8673            6 :                                   res_op0 = _r1;
    8674              :                                 }
    8675            6 :                                 tree _r;
    8676            6 :                                 _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    8677            6 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 990, __FILE__, __LINE__, true);
    8678            6 :                                 return _r;
    8679              :                               }
    8680            0 : next_after_fail1639:;
    8681              :                           }
    8682              :                         }
    8683              :                     }
    8684              :                 }
    8685        17762 :                 break;
    8686              :               }
    8687              :             default:;
    8688              :             }
    8689              :           break;
    8690              :         }
    8691              :       default:;
    8692              :       }
    8693              :   }
    8694      1357646 :   if (integer_zerop (_p1))
    8695              :     {
    8696         1046 :       {
    8697         1046 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    8698         1046 :         tree res = generic_simplify_411 (loc, type, _p0, _p1, captures, LSHIFT_EXPR);
    8699         1046 :         if (res) return res;
    8700              :       }
    8701              :     }
    8702      1356600 :   if (integer_zerop (_p0))
    8703              :     {
    8704          178 :       {
    8705          178 :         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    8706          178 :         tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, LSHIFT_EXPR);
    8707          178 :         if (res) return res;
    8708              :       }
    8709              :     }
    8710      1356422 :   switch (TREE_CODE (_p1))
    8711              :     {
    8712            0 :     case VECTOR_CST:
    8713            0 :       {
    8714            0 :         {
    8715            0 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    8716            0 :           tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, LSHIFT_EXPR);
    8717            0 :           if (res) return res;
    8718              :         }
    8719            0 :         break;
    8720              :       }
    8721            0 :     case CONSTRUCTOR:
    8722            0 :       {
    8723            0 :         {
    8724            0 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    8725            0 :           tree res = generic_simplify_414 (loc, type, _p0, _p1, captures, LSHIFT_EXPR);
    8726            0 :           if (res) return res;
    8727              :         }
    8728            0 :         break;
    8729              :       }
    8730      1356422 :     default:;
    8731              :     }
    8732      1356422 :   switch (TREE_CODE (_p0))
    8733              :     {
    8734          280 :     case LSHIFT_EXPR:
    8735          280 :       {
    8736          280 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8737          280 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8738          280 :         switch (TREE_CODE (_q21))
    8739              :           {
    8740           39 :           case INTEGER_CST:
    8741           39 :             {
    8742           39 :               switch (TREE_CODE (_p1))
    8743              :                 {
    8744           39 :                 case INTEGER_CST:
    8745           39 :                   {
    8746           39 :                     {
    8747           39 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    8748           39 :                       tree res = generic_simplify_415 (loc, type, _p0, _p1, captures, LSHIFT_EXPR);
    8749           39 :                       if (res) return res;
    8750              :                     }
    8751            0 :                     break;
    8752              :                   }
    8753              :                 default:;
    8754              :                 }
    8755              :               break;
    8756              :             }
    8757              :           default:;
    8758              :           }
    8759              :         break;
    8760              :       }
    8761       848436 :     CASE_CONVERT:
    8762       848436 :       {
    8763       848436 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8764       848436 :         switch (TREE_CODE (_q20))
    8765              :           {
    8766            0 :           case BIT_AND_EXPR:
    8767            0 :             {
    8768            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8769            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    8770            0 :               switch (TREE_CODE (_q31))
    8771              :                 {
    8772            0 :                 case INTEGER_CST:
    8773            0 :                   {
    8774            0 :                     switch (TREE_CODE (_p1))
    8775              :                       {
    8776            0 :                       case INTEGER_CST:
    8777            0 :                         {
    8778            0 :                           {
    8779            0 :                             tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1 };
    8780            0 :                             tree res = generic_simplify_416 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, LSHIFT_EXPR);
    8781            0 :                             if (res) return res;
    8782              :                           }
    8783            0 :                           break;
    8784              :                         }
    8785              :                       default:;
    8786              :                       }
    8787              :                     break;
    8788              :                   }
    8789              :                 default:;
    8790              :                 }
    8791              :               break;
    8792              :             }
    8793           11 :           case BIT_XOR_EXPR:
    8794           11 :             {
    8795           11 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8796           11 :               tree _q31 = TREE_OPERAND (_q20, 1);
    8797           11 :               switch (TREE_CODE (_q31))
    8798              :                 {
    8799            0 :                 case INTEGER_CST:
    8800            0 :                   {
    8801            0 :                     switch (TREE_CODE (_p1))
    8802              :                       {
    8803            0 :                       case INTEGER_CST:
    8804            0 :                         {
    8805            0 :                           {
    8806            0 :                             tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1 };
    8807            0 :                             tree res = generic_simplify_416 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, LSHIFT_EXPR);
    8808            0 :                             if (res) return res;
    8809              :                           }
    8810            0 :                           break;
    8811              :                         }
    8812              :                       default:;
    8813              :                       }
    8814              :                     break;
    8815              :                   }
    8816              :                 default:;
    8817              :                 }
    8818              :               break;
    8819              :             }
    8820           18 :           case BIT_IOR_EXPR:
    8821           18 :             {
    8822           18 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8823           18 :               tree _q31 = TREE_OPERAND (_q20, 1);
    8824           18 :               switch (TREE_CODE (_q31))
    8825              :                 {
    8826           11 :                 case INTEGER_CST:
    8827           11 :                   {
    8828           11 :                     switch (TREE_CODE (_p1))
    8829              :                       {
    8830           11 :                       case INTEGER_CST:
    8831           11 :                         {
    8832           11 :                           {
    8833           11 :                             tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1 };
    8834           11 :                             tree res = generic_simplify_416 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, LSHIFT_EXPR);
    8835           11 :                             if (res) return res;
    8836              :                           }
    8837            2 :                           break;
    8838              :                         }
    8839              :                       default:;
    8840              :                       }
    8841              :                     break;
    8842              :                   }
    8843              :                 default:;
    8844              :                 }
    8845              :               break;
    8846              :             }
    8847              :           default:;
    8848              :           }
    8849              :         break;
    8850              :       }
    8851        13632 :     case BIT_AND_EXPR:
    8852        13632 :       {
    8853        13632 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8854        13632 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8855        13632 :         switch (TREE_CODE (_q21))
    8856              :           {
    8857        13537 :           case INTEGER_CST:
    8858        13537 :             {
    8859        13537 :               switch (TREE_CODE (_p1))
    8860              :                 {
    8861        13398 :                 case INTEGER_CST:
    8862        13398 :                   {
    8863        13398 :                     {
    8864        13398 :                       tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1 };
    8865        13398 :                       tree res = generic_simplify_417 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, LSHIFT_EXPR);
    8866        13398 :                       if (res) return res;
    8867              :                     }
    8868            7 :                     break;
    8869              :                   }
    8870              :                 default:;
    8871              :                 }
    8872              :               break;
    8873              :             }
    8874              :           default:;
    8875              :           }
    8876              :         break;
    8877              :       }
    8878           76 :     case BIT_XOR_EXPR:
    8879           76 :       {
    8880           76 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8881           76 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8882           76 :         switch (TREE_CODE (_q21))
    8883              :           {
    8884            7 :           case INTEGER_CST:
    8885            7 :             {
    8886            7 :               switch (TREE_CODE (_p1))
    8887              :                 {
    8888            7 :                 case INTEGER_CST:
    8889            7 :                   {
    8890            7 :                     {
    8891            7 :                       tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1 };
    8892            7 :                       tree res = generic_simplify_417 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, LSHIFT_EXPR);
    8893            7 :                       if (res) return res;
    8894              :                     }
    8895            0 :                     break;
    8896              :                   }
    8897              :                 default:;
    8898              :                 }
    8899              :               break;
    8900              :             }
    8901              :           default:;
    8902              :           }
    8903              :         break;
    8904              :       }
    8905           78 :     case BIT_IOR_EXPR:
    8906           78 :       {
    8907           78 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8908           78 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8909           78 :         switch (TREE_CODE (_q21))
    8910              :           {
    8911            2 :           case INTEGER_CST:
    8912            2 :             {
    8913            2 :               switch (TREE_CODE (_p1))
    8914              :                 {
    8915            2 :                 case INTEGER_CST:
    8916            2 :                   {
    8917            2 :                     {
    8918            2 :                       tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1 };
    8919            2 :                       tree res = generic_simplify_417 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, LSHIFT_EXPR);
    8920            2 :                       if (res) return res;
    8921              :                     }
    8922            0 :                     break;
    8923              :                   }
    8924              :                 default:;
    8925              :                 }
    8926              :               break;
    8927              :             }
    8928              :           default:;
    8929              :           }
    8930              :         break;
    8931              :       }
    8932            1 :     case VEC_COND_EXPR:
    8933            1 :       {
    8934            1 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8935            1 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8936            1 :         tree _q22 = TREE_OPERAND (_p0, 2);
    8937            1 :         switch (TREE_CODE (_p1))
    8938              :           {
    8939            0 :           case VEC_COND_EXPR:
    8940            0 :             {
    8941            0 :               tree _q60 = TREE_OPERAND (_p1, 0);
    8942            0 :               tree _q61 = TREE_OPERAND (_p1, 1);
    8943            0 :               tree _q62 = TREE_OPERAND (_p1, 2);
    8944            0 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    8945              :                 {
    8946            0 :                   {
    8947            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
    8948            0 :                     if (VECTOR_TYPE_P (type)
    8949            0 :  && (TREE_CODE_CLASS (LSHIFT_EXPR) != tcc_comparison
    8950              :  || types_match (type, TREE_TYPE (captures[2]))
    8951              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    8952              :  || (optimize_vectors_before_lowering_p ()
    8953              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    8954              : )
    8955              :                       {
    8956            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1640;
    8957            0 :                         {
    8958            0 :                           tree res_op0;
    8959            0 :                           res_op0 = captures[1];
    8960            0 :                           tree res_op1;
    8961            0 :                           {
    8962            0 :                             tree _o1[2], _r1;
    8963            0 :                             _o1[0] = captures[2];
    8964            0 :                             _o1[1] = captures[5];
    8965            0 :                             _r1 = fold_build2_loc (loc, LSHIFT_EXPR, type, _o1[0], _o1[1]);
    8966            0 :                             if (EXPR_P (_r1))
    8967            0 :                               goto next_after_fail1640;
    8968            0 :                             res_op1 = _r1;
    8969              :                           }
    8970            0 :                           tree res_op2;
    8971            0 :                           {
    8972            0 :                             tree _o1[2], _r1;
    8973            0 :                             _o1[0] = captures[3];
    8974            0 :                             _o1[1] = captures[6];
    8975            0 :                             _r1 = fold_build2_loc (loc, LSHIFT_EXPR, type, _o1[0], _o1[1]);
    8976            0 :                             if (EXPR_P (_r1))
    8977            0 :                               goto next_after_fail1640;
    8978            0 :                             res_op2 = _r1;
    8979              :                           }
    8980            0 :                           tree _r;
    8981            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    8982            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 876, __FILE__, __LINE__, true);
    8983            0 :                           return _r;
    8984              :                         }
    8985            0 : next_after_fail1640:;
    8986              :                       }
    8987              :                   }
    8988              :                 }
    8989              :               break;
    8990              :             }
    8991            1 :           default:;
    8992              :           }
    8993            1 :         {
    8994            1 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
    8995            1 :           if (VECTOR_TYPE_P (type)
    8996            1 :  && (TREE_CODE_CLASS (LSHIFT_EXPR) != tcc_comparison
    8997              :  || types_match (type, TREE_TYPE (captures[2]))
    8998              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    8999              :  || (optimize_vectors_before_lowering_p ()
    9000              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    9001              : )
    9002              :             {
    9003            1 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1641;
    9004            1 :               {
    9005            1 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1641;
    9006            0 :                 tree res_op0;
    9007            0 :                 res_op0 = captures[1];
    9008            0 :                 tree res_op1;
    9009            0 :                 {
    9010            0 :                   tree _o1[2], _r1;
    9011            0 :                   _o1[0] = captures[2];
    9012            0 :                   _o1[1] = unshare_expr (captures[4]);
    9013            0 :                   _r1 = fold_build2_loc (loc, LSHIFT_EXPR, type, _o1[0], _o1[1]);
    9014            0 :                   if (EXPR_P (_r1))
    9015            0 :                     goto next_after_fail1641;
    9016            0 :                   res_op1 = _r1;
    9017              :                 }
    9018            0 :                 tree res_op2;
    9019            0 :                 {
    9020            0 :                   tree _o1[2], _r1;
    9021            0 :                   _o1[0] = captures[3];
    9022            0 :                   _o1[1] = captures[4];
    9023            0 :                   _r1 = fold_build2_loc (loc, LSHIFT_EXPR, type, _o1[0], _o1[1]);
    9024            0 :                   if (EXPR_P (_r1))
    9025            0 :                     goto next_after_fail1641;
    9026            0 :                   res_op2 = _r1;
    9027              :                 }
    9028            0 :                 tree _r;
    9029            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    9030            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 877, __FILE__, __LINE__, true);
    9031            0 :                 return _r;
    9032              :               }
    9033            1 : next_after_fail1641:;
    9034              :             }
    9035              :         }
    9036            1 :         break;
    9037              :       }
    9038      1342974 :     default:;
    9039              :     }
    9040      1342974 :   switch (TREE_CODE (_p1))
    9041              :     {
    9042            3 :     case VEC_COND_EXPR:
    9043            3 :       {
    9044            3 :         tree _q30 = TREE_OPERAND (_p1, 0);
    9045            3 :         tree _q31 = TREE_OPERAND (_p1, 1);
    9046            3 :         tree _q32 = TREE_OPERAND (_p1, 2);
    9047            3 :         {
    9048            3 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
    9049            3 :           if (VECTOR_TYPE_P (type)
    9050            3 :  && (TREE_CODE_CLASS (LSHIFT_EXPR) != tcc_comparison
    9051              :  || types_match (type, TREE_TYPE (captures[3]))
    9052              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
    9053              :  || (optimize_vectors_before_lowering_p ()
    9054              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
    9055              : )
    9056              :             {
    9057            3 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1642;
    9058            3 :               {
    9059            3 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1642;
    9060            1 :                 tree res_op0;
    9061            1 :                 res_op0 = captures[2];
    9062            1 :                 tree res_op1;
    9063            1 :                 {
    9064            1 :                   tree _o1[2], _r1;
    9065            1 :                   _o1[0] = unshare_expr (captures[0]);
    9066            1 :                   _o1[1] = captures[3];
    9067            1 :                   _r1 = fold_build2_loc (loc, LSHIFT_EXPR, type, _o1[0], _o1[1]);
    9068            1 :                   if (EXPR_P (_r1))
    9069            0 :                     goto next_after_fail1642;
    9070            1 :                   res_op1 = _r1;
    9071              :                 }
    9072            1 :                 tree res_op2;
    9073            1 :                 {
    9074            1 :                   tree _o1[2], _r1;
    9075            1 :                   _o1[0] = captures[0];
    9076            1 :                   _o1[1] = captures[4];
    9077            1 :                   _r1 = fold_build2_loc (loc, LSHIFT_EXPR, type, _o1[0], _o1[1]);
    9078            1 :                   if (EXPR_P (_r1))
    9079            0 :                     goto next_after_fail1642;
    9080            1 :                   res_op2 = _r1;
    9081              :                 }
    9082            1 :                 tree _r;
    9083            1 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    9084            1 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 878, __FILE__, __LINE__, true);
    9085            1 :                 return _r;
    9086              :               }
    9087            2 : next_after_fail1642:;
    9088              :             }
    9089              :         }
    9090            2 :         break;
    9091              :       }
    9092      1342973 :     default:;
    9093              :     }
    9094      1342973 :   switch (TREE_CODE (_p0))
    9095              :     {
    9096            0 :     case VEC_PERM_EXPR:
    9097            0 :       {
    9098            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9099            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9100            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
    9101            0 :         if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
    9102              :           {
    9103            0 :             switch (TREE_CODE (_p1))
    9104              :               {
    9105            0 :               case VEC_PERM_EXPR:
    9106            0 :                 {
    9107            0 :                   tree _q60 = TREE_OPERAND (_p1, 0);
    9108            0 :                   tree _q61 = TREE_OPERAND (_p1, 1);
    9109            0 :                   tree _q62 = TREE_OPERAND (_p1, 2);
    9110            0 :                   if ((_q61 == _q60 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q60, 0) && types_match (_q61, _q60)))
    9111              :                     {
    9112            0 :                       if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
    9113              :                         {
    9114            0 :                           {
    9115            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q22, _q60 };
    9116            0 :                             if (VECTOR_INTEGER_TYPE_P (type)
    9117              : )
    9118              :                               {
    9119            0 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1643;
    9120            0 :                                 {
    9121            0 :                                   tree res_op0;
    9122            0 :                                   {
    9123            0 :                                     tree _o1[2], _r1;
    9124            0 :                                     _o1[0] = captures[0];
    9125            0 :                                     _o1[1] = captures[2];
    9126            0 :                                     _r1 = fold_build2_loc (loc, LSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9127            0 :                                     captures[3] = _r1;
    9128              :                                   }
    9129            0 :                                   res_op0 = unshare_expr (captures[3]);
    9130            0 :                                   tree res_op1;
    9131            0 :                                   res_op1 = captures[3];
    9132            0 :                                   tree res_op2;
    9133            0 :                                   res_op2 = captures[1];
    9134            0 :                                   tree _r;
    9135            0 :                                   _r = fold_build3_loc (loc, VEC_PERM_EXPR, type, res_op0, res_op1, res_op2);
    9136            0 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 879, __FILE__, __LINE__, true);
    9137            0 :                                   return _r;
    9138              :                                 }
    9139            0 : next_after_fail1643:;
    9140              :                               }
    9141              :                           }
    9142              :                         }
    9143              :                     }
    9144              :                   break;
    9145              :                 }
    9146              :               default:;
    9147              :               }
    9148              :           }
    9149              :         break;
    9150              :       }
    9151              :     default:;
    9152              :     }
    9153              :   return NULL_TREE;
    9154              : }
    9155              : 
    9156              : tree
    9157        82721 : generic_simplify_MIN_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
    9158              : {
    9159        82721 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    9160        82721 :   if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    9161              :     {
    9162            0 :       {
    9163            0 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    9164            0 :         tree res = generic_simplify_510 (loc, type, _p0, _p1, captures, MIN_EXPR);
    9165            0 :         if (res) return res;
    9166              :       }
    9167              :     }
    9168        82721 :   switch (TREE_CODE (_p0))
    9169              :     {
    9170           46 :     case MIN_EXPR:
    9171           46 :       {
    9172           46 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9173           46 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9174           46 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    9175              :           {
    9176            0 :             {
    9177            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    9178            0 :               tree res = generic_simplify_511 (loc, type, _p0, _p1, captures, MIN_EXPR);
    9179            0 :               if (res) return res;
    9180              :             }
    9181              :           }
    9182           46 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    9183              :           {
    9184            0 :             {
    9185            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
    9186            0 :               tree res = generic_simplify_511 (loc, type, _p0, _p1, captures, MIN_EXPR);
    9187            0 :               if (res) return res;
    9188              :             }
    9189              :           }
    9190              :         break;
    9191              :       }
    9192        82721 :     default:;
    9193              :     }
    9194        82721 :   switch (TREE_CODE (_p1))
    9195              :     {
    9196            0 :     case MIN_EXPR:
    9197            0 :       {
    9198            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    9199            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
    9200            0 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    9201              :           {
    9202            0 :             {
    9203            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p1, _p0, _q31 };
    9204            0 :               tree res = generic_simplify_512 (loc, type, _p0, _p1, captures, MIN_EXPR);
    9205            0 :               if (res) return res;
    9206              :             }
    9207              :           }
    9208            0 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    9209              :           {
    9210            0 :             {
    9211            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p1, _p0, _q30 };
    9212            0 :               tree res = generic_simplify_512 (loc, type, _p0, _p1, captures, MIN_EXPR);
    9213            0 :               if (res) return res;
    9214              :             }
    9215              :           }
    9216              :         break;
    9217              :       }
    9218        82721 :     default:;
    9219              :     }
    9220        82721 :   switch (TREE_CODE (_p0))
    9221              :     {
    9222            4 :     case MAX_EXPR:
    9223            4 :       {
    9224            4 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9225            4 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9226            4 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    9227              :           {
    9228            3 :             {
    9229            3 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    9230            3 :               tree res = generic_simplify_513 (loc, type, _p0, _p1, captures);
    9231            3 :               if (res) return res;
    9232              :             }
    9233              :           }
    9234            1 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    9235              :           {
    9236            1 :             {
    9237            1 :               tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    9238            1 :               tree res = generic_simplify_513 (loc, type, _p0, _p1, captures);
    9239            1 :               if (res) return res;
    9240              :             }
    9241              :           }
    9242              :         break;
    9243              :       }
    9244        82717 :     default:;
    9245              :     }
    9246        82717 :   switch (TREE_CODE (_p1))
    9247              :     {
    9248            0 :     case MAX_EXPR:
    9249            0 :       {
    9250            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    9251            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
    9252            0 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    9253              :           {
    9254            0 :             {
    9255            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
    9256            0 :               tree res = generic_simplify_513 (loc, type, _p0, _p1, captures);
    9257            0 :               if (res) return res;
    9258              :             }
    9259              :           }
    9260            0 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    9261              :           {
    9262            0 :             {
    9263            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q31, _p0 };
    9264            0 :               tree res = generic_simplify_513 (loc, type, _p0, _p1, captures);
    9265            0 :               if (res) return res;
    9266              :             }
    9267              :           }
    9268              :         break;
    9269              :       }
    9270            0 :     case NEGATE_EXPR:
    9271            0 :       {
    9272            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    9273            0 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    9274              :           {
    9275            0 :             {
    9276            0 :               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    9277            0 :               tree res = generic_simplify_514 (loc, type, _p0, _p1, captures);
    9278            0 :               if (res) return res;
    9279              :             }
    9280              :           }
    9281              :         break;
    9282              :       }
    9283        82717 :     default:;
    9284              :     }
    9285        82717 :   switch (TREE_CODE (_p0))
    9286              :     {
    9287            2 :     case NEGATE_EXPR:
    9288            2 :       {
    9289            2 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9290            2 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    9291              :           {
    9292            2 :             {
    9293            2 :               tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    9294            2 :               tree res = generic_simplify_514 (loc, type, _p0, _p1, captures);
    9295            2 :               if (res) return res;
    9296              :             }
    9297              :           }
    9298              :         break;
    9299              :       }
    9300        82715 :     default:;
    9301              :     }
    9302        82715 :   {
    9303        82715 :     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    9304        82715 :     if (INTEGRAL_TYPE_P (type)
    9305        80919 :  && TYPE_MIN_VALUE (type)
    9306       163634 :  && operand_equal_p (captures[1], TYPE_MIN_VALUE (type), OEP_ONLY_CONST)
    9307              : )
    9308              :       {
    9309          544 :         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1707;
    9310          544 :         {
    9311          544 :           tree _r;
    9312          544 :           _r = captures[1];
    9313          544 :           if (TREE_SIDE_EFFECTS (captures[0]))
    9314            0 :             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    9315          544 :           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1005, __FILE__, __LINE__, true);
    9316          544 :           return _r;
    9317              :         }
    9318            0 : next_after_fail1707:;
    9319              :       }
    9320              :     else
    9321              :       {
    9322        82171 :         if (INTEGRAL_TYPE_P (type)
    9323        80375 :  && TYPE_MAX_VALUE (type)
    9324       162546 :  && operand_equal_p (captures[1], TYPE_MAX_VALUE (type), OEP_ONLY_CONST)
    9325              : )
    9326              :           {
    9327            1 :             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1708;
    9328            1 :             {
    9329            1 :               tree _r;
    9330            1 :               _r = captures[0];
    9331            1 :               if (TREE_SIDE_EFFECTS (captures[1]))
    9332            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    9333            1 :               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1006, __FILE__, __LINE__, true);
    9334            1 :               return _r;
    9335              :             }
    9336            0 : next_after_fail1708:;
    9337              :           }
    9338              :       }
    9339              :   }
    9340        82170 :   switch (TREE_CODE (_p1))
    9341              :     {
    9342           22 :     case PLUS_EXPR:
    9343           22 :       {
    9344           22 :         tree _q30 = TREE_OPERAND (_p1, 0);
    9345           22 :         tree _q31 = TREE_OPERAND (_p1, 1);
    9346           22 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    9347              :           {
    9348            0 :             switch (TREE_CODE (_q31))
    9349              :               {
    9350            0 :               case INTEGER_CST:
    9351            0 :                 {
    9352            0 :                   {
    9353            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
    9354            0 :                     if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
    9355              : )
    9356              :                       {
    9357            0 :                         if (tree_int_cst_sgn (captures[2]) > 0
    9358              : )
    9359              :                           {
    9360            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1709;
    9361            0 :                             {
    9362            0 :                               tree _r;
    9363            0 :                               _r = captures[0];
    9364            0 :                               if (TREE_SIDE_EFFECTS (captures[2]))
    9365            0 :                                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    9366            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1007, __FILE__, __LINE__, true);
    9367            0 :                               return _r;
    9368              :                             }
    9369            0 : next_after_fail1709:;
    9370              :                           }
    9371              :                         else
    9372              :                           {
    9373            0 :                             if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1710;
    9374            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1710;
    9375            0 :                             {
    9376            0 :                               tree _r;
    9377            0 :                               _r = captures[1];
    9378            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1008, __FILE__, __LINE__, true);
    9379            0 :                               return _r;
    9380              :                             }
    9381            0 : next_after_fail1710:;
    9382              :                           }
    9383              :                       }
    9384              :                   }
    9385            0 :                   break;
    9386              :                 }
    9387              :               default:;
    9388              :               }
    9389              :           }
    9390              :         break;
    9391              :       }
    9392        82170 :     default:;
    9393              :     }
    9394        82170 :   switch (TREE_CODE (_p0))
    9395              :     {
    9396         5603 :     case PLUS_EXPR:
    9397         5603 :       {
    9398         5603 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9399         5603 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9400         5603 :         switch (TREE_CODE (_q21))
    9401              :           {
    9402         5474 :           case INTEGER_CST:
    9403         5474 :             {
    9404         5474 :               if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    9405              :                 {
    9406            0 :                   {
    9407            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
    9408            0 :                     if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
    9409              : )
    9410              :                       {
    9411            0 :                         if (tree_int_cst_sgn (captures[2]) > 0
    9412              : )
    9413              :                           {
    9414            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1711;
    9415            0 :                             {
    9416            0 :                               tree _r;
    9417            0 :                               _r = captures[0];
    9418            0 :                               if (TREE_SIDE_EFFECTS (captures[2]))
    9419            0 :                                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    9420            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1007, __FILE__, __LINE__, true);
    9421            0 :                               return _r;
    9422              :                             }
    9423            0 : next_after_fail1711:;
    9424              :                           }
    9425              :                         else
    9426              :                           {
    9427            0 :                             if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1712;
    9428            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1712;
    9429            0 :                             {
    9430            0 :                               tree _r;
    9431            0 :                               _r = captures[1];
    9432            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1008, __FILE__, __LINE__, true);
    9433            0 :                               return _r;
    9434              :                             }
    9435            0 : next_after_fail1712:;
    9436              :                           }
    9437              :                       }
    9438              :                   }
    9439              :                 }
    9440              :               break;
    9441              :             }
    9442              :           default:;
    9443              :           }
    9444              :         break;
    9445              :       }
    9446           46 :     case MIN_EXPR:
    9447           46 :       {
    9448           46 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9449           46 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9450           46 :         switch (TREE_CODE (_p1))
    9451              :           {
    9452            0 :           case MAX_EXPR:
    9453            0 :             {
    9454            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    9455            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    9456            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    9457              :                 {
    9458            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    9459              :                     {
    9460            0 :                       {
    9461            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    9462            0 :                         if (!HONOR_NANS (captures[0])
    9463              : )
    9464              :                           {
    9465            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1713;
    9466            0 :                             {
    9467            0 :                               tree res_op0;
    9468            0 :                               res_op0 = captures[0];
    9469            0 :                               tree res_op1;
    9470            0 :                               res_op1 = captures[1];
    9471            0 :                               tree _r;
    9472            0 :                               _r = fold_build2_loc (loc, MIN_EXPR, type, res_op0, res_op1);
    9473            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 872, __FILE__, __LINE__, true);
    9474            0 :                               return _r;
    9475              :                             }
    9476            0 : next_after_fail1713:;
    9477              :                           }
    9478              :                       }
    9479              :                     }
    9480              :                 }
    9481            0 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    9482              :                 {
    9483            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    9484              :                     {
    9485            0 :                       {
    9486            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    9487            0 :                         if (!HONOR_NANS (captures[0])
    9488              : )
    9489              :                           {
    9490            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1714;
    9491            0 :                             {
    9492            0 :                               tree res_op0;
    9493            0 :                               res_op0 = captures[0];
    9494            0 :                               tree res_op1;
    9495            0 :                               res_op1 = captures[1];
    9496            0 :                               tree _r;
    9497            0 :                               _r = fold_build2_loc (loc, MIN_EXPR, type, res_op0, res_op1);
    9498            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 872, __FILE__, __LINE__, true);
    9499            0 :                               return _r;
    9500              :                             }
    9501            0 : next_after_fail1714:;
    9502              :                           }
    9503              :                       }
    9504              :                     }
    9505              :                 }
    9506              :               break;
    9507              :             }
    9508              :           default:;
    9509              :           }
    9510              :         break;
    9511              :       }
    9512            0 :     case MAX_EXPR:
    9513            0 :       {
    9514            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9515            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9516            0 :         switch (TREE_CODE (_p1))
    9517              :           {
    9518            0 :           case MIN_EXPR:
    9519            0 :             {
    9520            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    9521            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    9522            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    9523              :                 {
    9524            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    9525              :                     {
    9526            0 :                       {
    9527            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    9528            0 :                         if (!HONOR_NANS (captures[0])
    9529              : )
    9530              :                           {
    9531            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1715;
    9532            0 :                             {
    9533            0 :                               tree res_op0;
    9534            0 :                               res_op0 = captures[0];
    9535            0 :                               tree res_op1;
    9536            0 :                               res_op1 = captures[1];
    9537            0 :                               tree _r;
    9538            0 :                               _r = fold_build2_loc (loc, MIN_EXPR, type, res_op0, res_op1);
    9539            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 872, __FILE__, __LINE__, true);
    9540            0 :                               return _r;
    9541              :                             }
    9542            0 : next_after_fail1715:;
    9543              :                           }
    9544              :                       }
    9545              :                     }
    9546              :                 }
    9547            0 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    9548              :                 {
    9549            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    9550              :                     {
    9551            0 :                       {
    9552            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    9553            0 :                         if (!HONOR_NANS (captures[0])
    9554              : )
    9555              :                           {
    9556            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1716;
    9557            0 :                             {
    9558            0 :                               tree res_op0;
    9559            0 :                               res_op0 = captures[0];
    9560            0 :                               tree res_op1;
    9561            0 :                               res_op1 = captures[1];
    9562            0 :                               tree _r;
    9563            0 :                               _r = fold_build2_loc (loc, MIN_EXPR, type, res_op0, res_op1);
    9564            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 872, __FILE__, __LINE__, true);
    9565            0 :                               return _r;
    9566              :                             }
    9567            0 : next_after_fail1716:;
    9568              :                           }
    9569              :                       }
    9570              :                     }
    9571              :                 }
    9572              :               break;
    9573              :             }
    9574              :           default:;
    9575              :           }
    9576              :         break;
    9577              :       }
    9578          563 :     CASE_CONVERT:
    9579          563 :       {
    9580          563 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9581          563 :         switch (TREE_CODE (_q20))
    9582              :           {
    9583           47 :           case ADDR_EXPR:
    9584           47 :             {
    9585           47 :               switch (TREE_CODE (_p1))
    9586              :                 {
    9587           47 :                 CASE_CONVERT:
    9588           47 :                   {
    9589           47 :                     tree _q40 = TREE_OPERAND (_p1, 0);
    9590           47 :                     switch (TREE_CODE (_q40))
    9591              :                       {
    9592           47 :                       case ADDR_EXPR:
    9593           47 :                         {
    9594           47 :                           {
    9595           47 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    9596           47 :                             tree res = generic_simplify_515 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR);
    9597           47 :                             if (res) return res;
    9598              :                           }
    9599           47 :                           break;
    9600              :                         }
    9601              :                       default:;
    9602              :                       }
    9603              :                     break;
    9604              :                   }
    9605            0 :                 case ADDR_EXPR:
    9606            0 :                   {
    9607            0 :                     {
    9608            0 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
    9609            0 :                       tree res = generic_simplify_516 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR);
    9610            0 :                       if (res) return res;
    9611              :                     }
    9612            0 :                     break;
    9613              :                   }
    9614              :                 default:;
    9615              :                 }
    9616              :               break;
    9617              :             }
    9618              :           default:;
    9619              :           }
    9620              :         break;
    9621              :       }
    9622           10 :     case ADDR_EXPR:
    9623           10 :       {
    9624           10 :         switch (TREE_CODE (_p1))
    9625              :           {
    9626            0 :           CASE_CONVERT:
    9627            0 :             {
    9628            0 :               tree _q30 = TREE_OPERAND (_p1, 0);
    9629            0 :               switch (TREE_CODE (_q30))
    9630              :                 {
    9631            0 :                 case ADDR_EXPR:
    9632            0 :                   {
    9633            0 :                     {
    9634            0 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _p1, _q30 };
    9635            0 :                       tree res = generic_simplify_517 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR);
    9636            0 :                       if (res) return res;
    9637              :                     }
    9638            0 :                     break;
    9639              :                   }
    9640              :                 default:;
    9641              :                 }
    9642              :               break;
    9643              :             }
    9644           10 :           case ADDR_EXPR:
    9645           10 :             {
    9646           10 :               {
    9647           10 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _p1, _p1 };
    9648           10 :                 tree res = generic_simplify_518 (loc, type, _p0, _p1, captures, MIN_EXPR, LT_EXPR);
    9649           10 :                 if (res) return res;
    9650              :               }
    9651           10 :               break;
    9652              :             }
    9653              :           default:;
    9654              :           }
    9655              :         break;
    9656              :       }
    9657            0 :     case NEGATE_EXPR:
    9658            0 :       {
    9659            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9660            0 :         switch (TREE_CODE (_p1))
    9661              :           {
    9662            0 :           case NEGATE_EXPR:
    9663            0 :             {
    9664            0 :               tree _q40 = TREE_OPERAND (_p1, 0);
    9665            0 :               {
    9666            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    9667            0 :                 if (FLOAT_TYPE_P (TREE_TYPE (captures[1]))
    9668            0 :  || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    9669            0 :  && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1])))
    9670              : )
    9671              :                   {
    9672            0 :                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1717;
    9673            0 :                     {
    9674            0 :                       tree res_op0;
    9675            0 :                       {
    9676            0 :                         tree _o1[2], _r1;
    9677            0 :                         _o1[0] = captures[1];
    9678            0 :                         _o1[1] = captures[3];
    9679            0 :                         _r1 = fold_build2_loc (loc, MAX_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9680            0 :                         res_op0 = _r1;
    9681              :                       }
    9682            0 :                       tree _r;
    9683            0 :                       _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    9684            0 :                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1009, __FILE__, __LINE__, true);
    9685            0 :                       return _r;
    9686              :                     }
    9687            0 : next_after_fail1717:;
    9688              :                   }
    9689              :               }
    9690            0 :               break;
    9691              :             }
    9692              :           default:;
    9693              :           }
    9694              :         break;
    9695              :       }
    9696            0 :     case BIT_NOT_EXPR:
    9697            0 :       {
    9698            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9699            0 :         switch (TREE_CODE (_p1))
    9700              :           {
    9701            0 :           case BIT_NOT_EXPR:
    9702            0 :             {
    9703            0 :               tree _q40 = TREE_OPERAND (_p1, 0);
    9704            0 :               {
    9705            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    9706            0 :                 tree res = generic_simplify_519 (loc, type, _p0, _p1, captures, MIN_EXPR, MAX_EXPR);
    9707            0 :                 if (res) return res;
    9708              :               }
    9709            0 :               break;
    9710              :             }
    9711              :           default:;
    9712              :           }
    9713              :         break;
    9714              :       }
    9715            0 :     case VEC_COND_EXPR:
    9716            0 :       {
    9717            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9718            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9719            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
    9720            0 :         switch (TREE_CODE (_p1))
    9721              :           {
    9722            0 :           case VEC_COND_EXPR:
    9723            0 :             {
    9724            0 :               tree _q60 = TREE_OPERAND (_p1, 0);
    9725            0 :               tree _q61 = TREE_OPERAND (_p1, 1);
    9726            0 :               tree _q62 = TREE_OPERAND (_p1, 2);
    9727            0 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    9728              :                 {
    9729            0 :                   {
    9730            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
    9731            0 :                     if (VECTOR_TYPE_P (type)
    9732            0 :  && (TREE_CODE_CLASS (MIN_EXPR) != tcc_comparison
    9733              :  || types_match (type, TREE_TYPE (captures[2]))
    9734              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    9735              :  || (optimize_vectors_before_lowering_p ()
    9736              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    9737              : )
    9738              :                       {
    9739            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1718;
    9740            0 :                         {
    9741            0 :                           tree res_op0;
    9742            0 :                           res_op0 = captures[1];
    9743            0 :                           tree res_op1;
    9744            0 :                           {
    9745            0 :                             tree _o1[2], _r1;
    9746            0 :                             _o1[0] = captures[2];
    9747            0 :                             _o1[1] = captures[5];
    9748            0 :                             _r1 = fold_build2_loc (loc, MIN_EXPR, type, _o1[0], _o1[1]);
    9749            0 :                             if (EXPR_P (_r1))
    9750            0 :                               goto next_after_fail1718;
    9751            0 :                             res_op1 = _r1;
    9752              :                           }
    9753            0 :                           tree res_op2;
    9754            0 :                           {
    9755            0 :                             tree _o1[2], _r1;
    9756            0 :                             _o1[0] = captures[3];
    9757            0 :                             _o1[1] = captures[6];
    9758            0 :                             _r1 = fold_build2_loc (loc, MIN_EXPR, type, _o1[0], _o1[1]);
    9759            0 :                             if (EXPR_P (_r1))
    9760            0 :                               goto next_after_fail1718;
    9761            0 :                             res_op2 = _r1;
    9762              :                           }
    9763            0 :                           tree _r;
    9764            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    9765            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 876, __FILE__, __LINE__, true);
    9766            0 :                           return _r;
    9767              :                         }
    9768            0 : next_after_fail1718:;
    9769              :                       }
    9770              :                   }
    9771              :                 }
    9772              :               break;
    9773              :             }
    9774            0 :           default:;
    9775              :           }
    9776            0 :         {
    9777            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
    9778            0 :           if (VECTOR_TYPE_P (type)
    9779            0 :  && (TREE_CODE_CLASS (MIN_EXPR) != tcc_comparison
    9780              :  || types_match (type, TREE_TYPE (captures[2]))
    9781              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    9782              :  || (optimize_vectors_before_lowering_p ()
    9783              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    9784              : )
    9785              :             {
    9786            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1719;
    9787            0 :               {
    9788            0 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1719;
    9789            0 :                 tree res_op0;
    9790            0 :                 res_op0 = captures[1];
    9791            0 :                 tree res_op1;
    9792            0 :                 {
    9793            0 :                   tree _o1[2], _r1;
    9794            0 :                   _o1[0] = captures[2];
    9795            0 :                   _o1[1] = unshare_expr (captures[4]);
    9796            0 :                   _r1 = fold_build2_loc (loc, MIN_EXPR, type, _o1[0], _o1[1]);
    9797            0 :                   if (EXPR_P (_r1))
    9798            0 :                     goto next_after_fail1719;
    9799            0 :                   res_op1 = _r1;
    9800              :                 }
    9801            0 :                 tree res_op2;
    9802            0 :                 {
    9803            0 :                   tree _o1[2], _r1;
    9804            0 :                   _o1[0] = captures[3];
    9805            0 :                   _o1[1] = captures[4];
    9806            0 :                   _r1 = fold_build2_loc (loc, MIN_EXPR, type, _o1[0], _o1[1]);
    9807            0 :                   if (EXPR_P (_r1))
    9808            0 :                     goto next_after_fail1719;
    9809            0 :                   res_op2 = _r1;
    9810              :                 }
    9811            0 :                 tree _r;
    9812            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    9813            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 877, __FILE__, __LINE__, true);
    9814            0 :                 return _r;
    9815              :               }
    9816            0 : next_after_fail1719:;
    9817              :             }
    9818              :         }
    9819            0 :         break;
    9820              :       }
    9821        82170 :     default:;
    9822              :     }
    9823        82170 :   switch (TREE_CODE (_p1))
    9824              :     {
    9825            0 :     case VEC_COND_EXPR:
    9826            0 :       {
    9827            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    9828            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
    9829            0 :         tree _q32 = TREE_OPERAND (_p1, 2);
    9830            0 :         {
    9831            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
    9832            0 :           if (VECTOR_TYPE_P (type)
    9833            0 :  && (TREE_CODE_CLASS (MIN_EXPR) != tcc_comparison
    9834              :  || types_match (type, TREE_TYPE (captures[3]))
    9835              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
    9836              :  || (optimize_vectors_before_lowering_p ()
    9837              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
    9838              : )
    9839              :             {
    9840            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1720;
    9841            0 :               {
    9842            0 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1720;
    9843            0 :                 tree res_op0;
    9844            0 :                 res_op0 = captures[2];
    9845            0 :                 tree res_op1;
    9846            0 :                 {
    9847            0 :                   tree _o1[2], _r1;
    9848            0 :                   _o1[0] = unshare_expr (captures[0]);
    9849            0 :                   _o1[1] = captures[3];
    9850            0 :                   _r1 = fold_build2_loc (loc, MIN_EXPR, type, _o1[0], _o1[1]);
    9851            0 :                   if (EXPR_P (_r1))
    9852            0 :                     goto next_after_fail1720;
    9853            0 :                   res_op1 = _r1;
    9854              :                 }
    9855            0 :                 tree res_op2;
    9856            0 :                 {
    9857            0 :                   tree _o1[2], _r1;
    9858            0 :                   _o1[0] = captures[0];
    9859            0 :                   _o1[1] = captures[4];
    9860            0 :                   _r1 = fold_build2_loc (loc, MIN_EXPR, type, _o1[0], _o1[1]);
    9861            0 :                   if (EXPR_P (_r1))
    9862            0 :                     goto next_after_fail1720;
    9863            0 :                   res_op2 = _r1;
    9864              :                 }
    9865            0 :                 tree _r;
    9866            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    9867            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 878, __FILE__, __LINE__, true);
    9868            0 :                 return _r;
    9869              :               }
    9870            0 : next_after_fail1720:;
    9871              :             }
    9872              :         }
    9873            0 :         break;
    9874              :       }
    9875        82170 :     default:;
    9876              :     }
    9877        82170 :   if (tree_zero_one_valued_p (_p0))
    9878              :     {
    9879            3 :       if (tree_zero_one_valued_p (_p1))
    9880              :         {
    9881            2 :           {
    9882            2 :             tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    9883            2 :             tree res = generic_simplify_520 (loc, type, _p0, _p1, captures, MIN_EXPR, BIT_AND_EXPR);
    9884            2 :             if (res) return res;
    9885              :           }
    9886              :         }
    9887              :     }
    9888              :   return NULL_TREE;
    9889              : }
    9890              : 
    9891              : tree
    9892       555114 : generic_simplify_COMPLEX_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
    9893              : {
    9894       555114 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    9895       555114 :   switch (TREE_CODE (_p0))
    9896              :     {
    9897           40 :     case REALPART_EXPR:
    9898           40 :       {
    9899           40 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9900           40 :         switch (TREE_CODE (_p1))
    9901              :           {
    9902           30 :           case IMAGPART_EXPR:
    9903           30 :             {
    9904           30 :               tree _q40 = TREE_OPERAND (_p1, 0);
    9905           30 :               if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
    9906              :                 {
    9907           30 :                   {
    9908           30 :                     tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    9909           30 :                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1736;
    9910           30 :                     {
    9911           30 :                       tree _r;
    9912           30 :                       _r = captures[0];
    9913           30 :                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1015, __FILE__, __LINE__, true);
    9914           30 :                       return _r;
    9915              :                     }
    9916            0 : next_after_fail1736:;
    9917              :                   }
    9918              :                 }
    9919              :               break;
    9920              :             }
    9921              :           default:;
    9922              :           }
    9923              :         break;
    9924              :       }
    9925              :     default:;
    9926              :     }
    9927              :   return NULL_TREE;
    9928              : }
    9929              : 
    9930              : tree
    9931       190995 : generic_simplify_ORDERED_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
    9932              : {
    9933       190995 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    9934       190995 :   switch (TREE_CODE (_p0))
    9935              :     {
    9936            0 :     case VEC_COND_EXPR:
    9937            0 :       {
    9938            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9939            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9940            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
    9941            0 :         switch (TREE_CODE (_p1))
    9942              :           {
    9943            0 :           case VEC_COND_EXPR:
    9944            0 :             {
    9945            0 :               tree _q60 = TREE_OPERAND (_p1, 0);
    9946            0 :               tree _q61 = TREE_OPERAND (_p1, 1);
    9947            0 :               tree _q62 = TREE_OPERAND (_p1, 2);
    9948            0 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    9949              :                 {
    9950            0 :                   {
    9951            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
    9952            0 :                     if (VECTOR_TYPE_P (type)
    9953            0 :  && (TREE_CODE_CLASS (ORDERED_EXPR) != tcc_comparison
    9954            0 :  || types_match (type, TREE_TYPE (captures[2]))
    9955            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    9956              :  || (optimize_vectors_before_lowering_p ()
    9957            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    9958              : )
    9959              :                       {
    9960            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1742;
    9961            0 :                         {
    9962            0 :                           tree res_op0;
    9963            0 :                           res_op0 = captures[1];
    9964            0 :                           tree res_op1;
    9965            0 :                           {
    9966            0 :                             tree _o1[2], _r1;
    9967            0 :                             _o1[0] = captures[2];
    9968            0 :                             _o1[1] = captures[5];
    9969            0 :                             _r1 = fold_build2_loc (loc, ORDERED_EXPR, type, _o1[0], _o1[1]);
    9970            0 :                             if (EXPR_P (_r1))
    9971            0 :                               goto next_after_fail1742;
    9972            0 :                             res_op1 = _r1;
    9973              :                           }
    9974            0 :                           tree res_op2;
    9975            0 :                           {
    9976            0 :                             tree _o1[2], _r1;
    9977            0 :                             _o1[0] = captures[3];
    9978            0 :                             _o1[1] = captures[6];
    9979            0 :                             _r1 = fold_build2_loc (loc, ORDERED_EXPR, type, _o1[0], _o1[1]);
    9980            0 :                             if (EXPR_P (_r1))
    9981            0 :                               goto next_after_fail1742;
    9982            0 :                             res_op2 = _r1;
    9983              :                           }
    9984            0 :                           tree _r;
    9985            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    9986            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 876, __FILE__, __LINE__, true);
    9987            0 :                           return _r;
    9988              :                         }
    9989            0 : next_after_fail1742:;
    9990              :                       }
    9991              :                   }
    9992              :                 }
    9993              :               break;
    9994              :             }
    9995            0 :           default:;
    9996              :           }
    9997            0 :         {
    9998            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
    9999            0 :           if (VECTOR_TYPE_P (type)
   10000            0 :  && (TREE_CODE_CLASS (ORDERED_EXPR) != tcc_comparison
   10001            0 :  || types_match (type, TREE_TYPE (captures[2]))
   10002            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
   10003              :  || (optimize_vectors_before_lowering_p ()
   10004            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
   10005              : )
   10006              :             {
   10007            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1743;
   10008            0 :               {
   10009            0 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1743;
   10010            0 :                 tree res_op0;
   10011            0 :                 res_op0 = captures[1];
   10012            0 :                 tree res_op1;
   10013            0 :                 {
   10014            0 :                   tree _o1[2], _r1;
   10015            0 :                   _o1[0] = captures[2];
   10016            0 :                   _o1[1] = unshare_expr (captures[4]);
   10017            0 :                   _r1 = fold_build2_loc (loc, ORDERED_EXPR, type, _o1[0], _o1[1]);
   10018            0 :                   if (EXPR_P (_r1))
   10019            0 :                     goto next_after_fail1743;
   10020            0 :                   res_op1 = _r1;
   10021              :                 }
   10022            0 :                 tree res_op2;
   10023            0 :                 {
   10024            0 :                   tree _o1[2], _r1;
   10025            0 :                   _o1[0] = captures[3];
   10026            0 :                   _o1[1] = captures[4];
   10027            0 :                   _r1 = fold_build2_loc (loc, ORDERED_EXPR, type, _o1[0], _o1[1]);
   10028            0 :                   if (EXPR_P (_r1))
   10029            0 :                     goto next_after_fail1743;
   10030            0 :                   res_op2 = _r1;
   10031              :                 }
   10032            0 :                 tree _r;
   10033            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10034            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 877, __FILE__, __LINE__, true);
   10035            0 :                 return _r;
   10036              :               }
   10037            0 : next_after_fail1743:;
   10038              :             }
   10039              :         }
   10040            0 :         break;
   10041              :       }
   10042       190995 :     default:;
   10043              :     }
   10044       190995 :   switch (TREE_CODE (_p1))
   10045              :     {
   10046            0 :     case VEC_COND_EXPR:
   10047            0 :       {
   10048            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
   10049            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
   10050            0 :         tree _q32 = TREE_OPERAND (_p1, 2);
   10051            0 :         {
   10052            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
   10053            0 :           if (VECTOR_TYPE_P (type)
   10054            0 :  && (TREE_CODE_CLASS (ORDERED_EXPR) != tcc_comparison
   10055            0 :  || types_match (type, TREE_TYPE (captures[3]))
   10056            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
   10057              :  || (optimize_vectors_before_lowering_p ()
   10058            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
   10059              : )
   10060              :             {
   10061            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1744;
   10062            0 :               {
   10063            0 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1744;
   10064            0 :                 tree res_op0;
   10065            0 :                 res_op0 = captures[2];
   10066            0 :                 tree res_op1;
   10067            0 :                 {
   10068            0 :                   tree _o1[2], _r1;
   10069            0 :                   _o1[0] = unshare_expr (captures[0]);
   10070            0 :                   _o1[1] = captures[3];
   10071            0 :                   _r1 = fold_build2_loc (loc, ORDERED_EXPR, type, _o1[0], _o1[1]);
   10072            0 :                   if (EXPR_P (_r1))
   10073            0 :                     goto next_after_fail1744;
   10074            0 :                   res_op1 = _r1;
   10075              :                 }
   10076            0 :                 tree res_op2;
   10077            0 :                 {
   10078            0 :                   tree _o1[2], _r1;
   10079            0 :                   _o1[0] = captures[0];
   10080            0 :                   _o1[1] = captures[4];
   10081            0 :                   _r1 = fold_build2_loc (loc, ORDERED_EXPR, type, _o1[0], _o1[1]);
   10082            0 :                   if (EXPR_P (_r1))
   10083            0 :                     goto next_after_fail1744;
   10084            0 :                   res_op2 = _r1;
   10085              :                 }
   10086            0 :                 tree _r;
   10087            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10088            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 878, __FILE__, __LINE__, true);
   10089            0 :                 return _r;
   10090              :               }
   10091            0 : next_after_fail1744:;
   10092              :             }
   10093              :         }
   10094            0 :         break;
   10095              :       }
   10096       190995 :     default:;
   10097              :     }
   10098       190995 :   switch (TREE_CODE (_p0))
   10099              :     {
   10100            0 :     case FLOAT_EXPR:
   10101            0 :       {
   10102            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10103            0 :         switch (TREE_CODE (_p1))
   10104              :           {
   10105            0 :           case FLOAT_EXPR:
   10106            0 :             {
   10107            0 :               tree _q40 = TREE_OPERAND (_p1, 0);
   10108            0 :               {
   10109            0 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
   10110            0 :                 tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, ORDERED_EXPR, ORDERED_EXPR);
   10111            0 :                 if (res) return res;
   10112              :               }
   10113            0 :               break;
   10114              :             }
   10115              :           default:;
   10116              :           }
   10117              :         break;
   10118              :       }
   10119            0 :     case NEGATE_EXPR:
   10120            0 :       {
   10121            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10122            0 :         switch (TREE_CODE (_p1))
   10123              :           {
   10124            0 :           case NEGATE_EXPR:
   10125            0 :             {
   10126            0 :               tree _q40 = TREE_OPERAND (_p1, 0);
   10127            0 :               {
   10128            0 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
   10129            0 :                 tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, ORDERED_EXPR, ORDERED_EXPR);
   10130            0 :                 if (res) return res;
   10131              :               }
   10132            0 :               break;
   10133              :             }
   10134            0 :           default:;
   10135              :           }
   10136            0 :       if (CONSTANT_CLASS_P (_p1))
   10137              :         {
   10138            0 :           {
   10139            0 :             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
   10140            0 :             tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, ORDERED_EXPR, ORDERED_EXPR);
   10141            0 :             if (res) return res;
   10142              :           }
   10143              :         }
   10144              :         break;
   10145              :       }
   10146       190995 :     default:;
   10147              :     }
   10148       190995 :   switch (TREE_CODE (_p1))
   10149              :     {
   10150          102 :     case REAL_CST:
   10151          102 :       {
   10152          102 :         {
   10153          102 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   10154          102 :           tree res = generic_simplify_549 (loc, type, _p0, _p1, captures, ORDERED_EXPR);
   10155          102 :           if (res) return res;
   10156              :         }
   10157          102 :         break;
   10158              :       }
   10159       190995 :     default:;
   10160              :     }
   10161       190995 :   {
   10162       190995 :     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   10163       190995 :     if (tree_expr_nan_p (captures[0]) || tree_expr_nan_p (captures[1])
   10164              : )
   10165              :       {
   10166            0 :         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1745;
   10167            0 :         {
   10168            0 :           tree _r;
   10169            0 :           _r =  constant_boolean_node (false, type);
   10170            0 :           if (TREE_SIDE_EFFECTS (captures[0]))
   10171            0 :             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
   10172            0 :           if (TREE_SIDE_EFFECTS (captures[1]))
   10173            0 :             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   10174            0 :           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1018, __FILE__, __LINE__, true);
   10175            0 :           return _r;
   10176              :         }
   10177            0 : next_after_fail1745:;
   10178              :       }
   10179              :     else
   10180              :       {
   10181       190995 :         if (!tree_expr_maybe_nan_p (captures[0]) && !tree_expr_maybe_nan_p (captures[1])
   10182              : )
   10183              :           {
   10184           10 :             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1746;
   10185           10 :             {
   10186           10 :               tree _r;
   10187           10 :               _r =  constant_boolean_node (true, type);
   10188           10 :               if (TREE_SIDE_EFFECTS (captures[0]))
   10189            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
   10190           10 :               if (TREE_SIDE_EFFECTS (captures[1]))
   10191            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   10192           10 :               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1019, __FILE__, __LINE__, true);
   10193           10 :               return _r;
   10194              :             }
   10195            0 : next_after_fail1746:;
   10196              :           }
   10197              :       }
   10198              :   }
   10199       190985 :   return NULL_TREE;
   10200              : }
   10201              : 
   10202              : tree
   10203       839503 : generic_simplify_UNLE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
   10204              : {
   10205       839503 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
   10206       839503 :   switch (TREE_CODE (_p0))
   10207              :     {
   10208            0 :     case VEC_COND_EXPR:
   10209            0 :       {
   10210            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10211            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10212            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
   10213            0 :         switch (TREE_CODE (_p1))
   10214              :           {
   10215            0 :           case VEC_COND_EXPR:
   10216            0 :             {
   10217            0 :               tree _q60 = TREE_OPERAND (_p1, 0);
   10218            0 :               tree _q61 = TREE_OPERAND (_p1, 1);
   10219            0 :               tree _q62 = TREE_OPERAND (_p1, 2);
   10220            0 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
   10221              :                 {
   10222            0 :                   {
   10223            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
   10224            0 :                     if (VECTOR_TYPE_P (type)
   10225            0 :  && (TREE_CODE_CLASS (UNLE_EXPR) != tcc_comparison
   10226            0 :  || types_match (type, TREE_TYPE (captures[2]))
   10227            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
   10228              :  || (optimize_vectors_before_lowering_p ()
   10229            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
   10230              : )
   10231              :                       {
   10232            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1750;
   10233            0 :                         {
   10234            0 :                           tree res_op0;
   10235            0 :                           res_op0 = captures[1];
   10236            0 :                           tree res_op1;
   10237            0 :                           {
   10238            0 :                             tree _o1[2], _r1;
   10239            0 :                             _o1[0] = captures[2];
   10240            0 :                             _o1[1] = captures[5];
   10241            0 :                             _r1 = fold_build2_loc (loc, UNLE_EXPR, type, _o1[0], _o1[1]);
   10242            0 :                             if (EXPR_P (_r1))
   10243            0 :                               goto next_after_fail1750;
   10244            0 :                             res_op1 = _r1;
   10245              :                           }
   10246            0 :                           tree res_op2;
   10247            0 :                           {
   10248            0 :                             tree _o1[2], _r1;
   10249            0 :                             _o1[0] = captures[3];
   10250            0 :                             _o1[1] = captures[6];
   10251            0 :                             _r1 = fold_build2_loc (loc, UNLE_EXPR, type, _o1[0], _o1[1]);
   10252            0 :                             if (EXPR_P (_r1))
   10253            0 :                               goto next_after_fail1750;
   10254            0 :                             res_op2 = _r1;
   10255              :                           }
   10256            0 :                           tree _r;
   10257            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10258            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 876, __FILE__, __LINE__, true);
   10259            0 :                           return _r;
   10260              :                         }
   10261            0 : next_after_fail1750:;
   10262              :                       }
   10263              :                   }
   10264              :                 }
   10265              :               break;
   10266              :             }
   10267            0 :           default:;
   10268              :           }
   10269            0 :         {
   10270            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
   10271            0 :           if (VECTOR_TYPE_P (type)
   10272            0 :  && (TREE_CODE_CLASS (UNLE_EXPR) != tcc_comparison
   10273            0 :  || types_match (type, TREE_TYPE (captures[2]))
   10274            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
   10275              :  || (optimize_vectors_before_lowering_p ()
   10276            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
   10277              : )
   10278              :             {
   10279            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1751;
   10280            0 :               {
   10281            0 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1751;
   10282            0 :                 tree res_op0;
   10283            0 :                 res_op0 = captures[1];
   10284            0 :                 tree res_op1;
   10285            0 :                 {
   10286            0 :                   tree _o1[2], _r1;
   10287            0 :                   _o1[0] = captures[2];
   10288            0 :                   _o1[1] = unshare_expr (captures[4]);
   10289            0 :                   _r1 = fold_build2_loc (loc, UNLE_EXPR, type, _o1[0], _o1[1]);
   10290            0 :                   if (EXPR_P (_r1))
   10291            0 :                     goto next_after_fail1751;
   10292            0 :                   res_op1 = _r1;
   10293              :                 }
   10294            0 :                 tree res_op2;
   10295            0 :                 {
   10296            0 :                   tree _o1[2], _r1;
   10297            0 :                   _o1[0] = captures[3];
   10298            0 :                   _o1[1] = captures[4];
   10299            0 :                   _r1 = fold_build2_loc (loc, UNLE_EXPR, type, _o1[0], _o1[1]);
   10300            0 :                   if (EXPR_P (_r1))
   10301            0 :                     goto next_after_fail1751;
   10302            0 :                   res_op2 = _r1;
   10303              :                 }
   10304            0 :                 tree _r;
   10305            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10306            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 877, __FILE__, __LINE__, true);
   10307            0 :                 return _r;
   10308              :               }
   10309            0 : next_after_fail1751:;
   10310              :             }
   10311              :         }
   10312            0 :         break;
   10313              :       }
   10314       839503 :     default:;
   10315              :     }
   10316       839503 :   switch (TREE_CODE (_p1))
   10317              :     {
   10318            0 :     case VEC_COND_EXPR:
   10319            0 :       {
   10320            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
   10321            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
   10322            0 :         tree _q32 = TREE_OPERAND (_p1, 2);
   10323            0 :         {
   10324            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
   10325            0 :           if (VECTOR_TYPE_P (type)
   10326            0 :  && (TREE_CODE_CLASS (UNLE_EXPR) != tcc_comparison
   10327            0 :  || types_match (type, TREE_TYPE (captures[3]))
   10328            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
   10329              :  || (optimize_vectors_before_lowering_p ()
   10330            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
   10331              : )
   10332              :             {
   10333            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1752;
   10334            0 :               {
   10335            0 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1752;
   10336            0 :                 tree res_op0;
   10337            0 :                 res_op0 = captures[2];
   10338            0 :                 tree res_op1;
   10339            0 :                 {
   10340            0 :                   tree _o1[2], _r1;
   10341            0 :                   _o1[0] = unshare_expr (captures[0]);
   10342            0 :                   _o1[1] = captures[3];
   10343            0 :                   _r1 = fold_build2_loc (loc, UNLE_EXPR, type, _o1[0], _o1[1]);
   10344            0 :                   if (EXPR_P (_r1))
   10345            0 :                     goto next_after_fail1752;
   10346            0 :                   res_op1 = _r1;
   10347              :                 }
   10348            0 :                 tree res_op2;
   10349            0 :                 {
   10350            0 :                   tree _o1[2], _r1;
   10351            0 :                   _o1[0] = captures[0];
   10352            0 :                   _o1[1] = captures[4];
   10353            0 :                   _r1 = fold_build2_loc (loc, UNLE_EXPR, type, _o1[0], _o1[1]);
   10354            0 :                   if (EXPR_P (_r1))
   10355            0 :                     goto next_after_fail1752;
   10356            0 :                   res_op2 = _r1;
   10357              :                 }
   10358            0 :                 tree _r;
   10359            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10360            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 878, __FILE__, __LINE__, true);
   10361            0 :                 return _r;
   10362              :               }
   10363            0 : next_after_fail1752:;
   10364              :             }
   10365              :         }
   10366            0 :         break;
   10367              :       }
   10368       839503 :     default:;
   10369              :     }
   10370       839503 :   if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
   10371              :     {
   10372           30 :       {
   10373           30 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
   10374           30 :         tree res = generic_simplify_551 (loc, type, _p0, _p1, captures, UNLE_EXPR);
   10375           30 :         if (res) return res;
   10376              :       }
   10377              :     }
   10378       839473 :   switch (TREE_CODE (_p0))
   10379              :     {
   10380           96 :     case FLOAT_EXPR:
   10381           96 :       {
   10382           96 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10383           96 :         switch (TREE_CODE (_p1))
   10384              :           {
   10385            0 :           case FLOAT_EXPR:
   10386            0 :             {
   10387            0 :               tree _q40 = TREE_OPERAND (_p1, 0);
   10388            0 :               {
   10389            0 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
   10390            0 :                 tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, UNLE_EXPR, LE_EXPR);
   10391            0 :                 if (res) return res;
   10392              :               }
   10393            0 :               break;
   10394              :             }
   10395              :           default:;
   10396              :           }
   10397              :         break;
   10398              :       }
   10399          112 :     case NEGATE_EXPR:
   10400          112 :       {
   10401          112 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10402          112 :         switch (TREE_CODE (_p1))
   10403              :           {
   10404            0 :           case NEGATE_EXPR:
   10405            0 :             {
   10406            0 :               tree _q40 = TREE_OPERAND (_p1, 0);
   10407            0 :               {
   10408            0 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
   10409            0 :                 tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, UNLE_EXPR, UNGE_EXPR);
   10410            0 :                 if (res) return res;
   10411              :               }
   10412            0 :               break;
   10413              :             }
   10414          112 :           default:;
   10415              :           }
   10416          112 :       if (CONSTANT_CLASS_P (_p1))
   10417              :         {
   10418          112 :           {
   10419          112 :             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
   10420          112 :             tree res = generic_simplify_263 (loc, type, _p0, _p1, captures, UNLE_EXPR, UNGE_EXPR);
   10421          112 :             if (res) return res;
   10422              :           }
   10423              :         }
   10424              :         break;
   10425              :       }
   10426       839361 :     default:;
   10427              :     }
   10428       839361 :   switch (TREE_CODE (_p1))
   10429              :     {
   10430       489521 :     case REAL_CST:
   10431       489521 :       {
   10432       489521 :         {
   10433       489521 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   10434       489521 :           tree res = generic_simplify_549 (loc, type, _p0, _p1, captures, UNLE_EXPR);
   10435       489521 :           if (res) return res;
   10436              :         }
   10437       489519 :         break;
   10438              :       }
   10439              :     default:;
   10440              :     }
   10441              :   return NULL_TREE;
   10442              : }
   10443              : 
   10444              : tree
   10445      3951935 : generic_simplify_TRUTH_ORIF_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
   10446              : {
   10447      3951935 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
   10448      3951935 :   switch (TREE_CODE (_p0))
   10449              :     {
   10450       377276 :     case LE_EXPR:
   10451       377276 :       {
   10452       377276 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10453       377276 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10454       377276 :         switch (TREE_CODE (_q20))
   10455              :           {
   10456           90 :           case POINTER_PLUS_EXPR:
   10457           90 :             {
   10458           90 :               tree _q30 = TREE_OPERAND (_q20, 0);
   10459           90 :               tree _q31 = TREE_OPERAND (_q20, 1);
   10460           90 :               switch (TREE_CODE (_q31))
   10461              :                 {
   10462            2 :                 case INTEGER_CST:
   10463            2 :                   {
   10464            2 :                     switch (TREE_CODE (_p1))
   10465              :                       {
   10466            2 :                       case LE_EXPR:
   10467            2 :                         {
   10468            2 :                           tree _q70 = TREE_OPERAND (_p1, 0);
   10469            2 :                           tree _q71 = TREE_OPERAND (_p1, 1);
   10470            2 :                           switch (TREE_CODE (_q70))
   10471              :                             {
   10472            2 :                             case POINTER_PLUS_EXPR:
   10473            2 :                               {
   10474            2 :                                 tree _q80 = TREE_OPERAND (_q70, 0);
   10475            2 :                                 tree _q81 = TREE_OPERAND (_q70, 1);
   10476            2 :                                 if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
   10477              :                                   {
   10478            2 :                                     if ((_q81 == _q31 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q31, 0) && types_match (_q81, _q31)))
   10479              :                                       {
   10480            2 :                                         if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
   10481              :                                           {
   10482            2 :                                             {
   10483            2 :                                               tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q70 };
   10484            2 :                                               const enum tree_code cmp = LE_EXPR;
   10485            2 :                                               if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2]))
   10486            1 :  && TYPE_OVERFLOW_WRAPS (sizetype)
   10487            3 :  && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype)
   10488              : )
   10489              :                                                 {
   10490            1 :                                                   {
   10491            1 :  offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
   10492            1 :  offset_int rhs = off * 2;
   10493            1 :                                                       if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
   10494              : )
   10495              :                                                         {
   10496            1 :                                                           {
   10497            1 :  bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
   10498            1 :  tree rhs_tree = wide_int_to_tree (sizetype, rhs);
   10499            1 :                                                               if (cmp == LT_EXPR
   10500              : )
   10501              :                                                                 {
   10502              :                                                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1766;
   10503              :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1766;
   10504              :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1766;
   10505              :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1766;
   10506              :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1766;
   10507              :                                                                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1766;
   10508              :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1766;
   10509              :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1766;
   10510              :                                                                   {
   10511              :                                                                     tree res_op0;
   10512              :                                                                     {
   10513              :                                                                       tree _o1[1], _r1;
   10514              :                                                                       {
   10515              :                                                                         tree _o2[2], _r2;
   10516              :                                                                         _o2[0] =  swap_p ? captures[6] : captures[1];
   10517              :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   10518              :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   10519              :                                                                         _o1[0] = _r2;
   10520              :                                                                       }
   10521              :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   10522              :                                                                         {
   10523              :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   10524              :                                                                         }
   10525              :                                                                       else
   10526              :                                                                         _r1 = _o1[0];
   10527              :                                                                       res_op0 = _r1;
   10528              :                                                                     }
   10529              :                                                                     tree res_op1;
   10530              :                                                                     res_op1 =  rhs_tree;
   10531              :                                                                     tree _r;
   10532              :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   10533              :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 922, __FILE__, __LINE__, true);
   10534            1 :                                                                     return _r;
   10535              :                                                                   }
   10536              : next_after_fail1766:;
   10537              :                                                                 }
   10538              :                                                               else
   10539              :                                                                 {
   10540            1 :                                                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1767;
   10541            1 :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1767;
   10542            1 :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1767;
   10543            1 :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1767;
   10544            1 :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1767;
   10545            1 :                                                                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1767;
   10546            1 :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1767;
   10547            1 :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1767;
   10548            1 :                                                                   {
   10549            1 :                                                                     tree res_op0;
   10550            1 :                                                                     {
   10551            1 :                                                                       tree _o1[1], _r1;
   10552            1 :                                                                       {
   10553            1 :                                                                         tree _o2[2], _r2;
   10554            1 :                                                                         {
   10555            1 :                                                                           tree _o3[2], _r3;
   10556            1 :                                                                           _o3[0] =  swap_p ? captures[4] : captures[2];
   10557            1 :                                                                           _o3[1] =  wide_int_to_tree (sizetype, off);
   10558            1 :                                                                           _r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
   10559            1 :                                                                           _o2[0] = _r3;
   10560              :                                                                         }
   10561            1 :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   10562            1 :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   10563            1 :                                                                         _o1[0] = _r2;
   10564              :                                                                       }
   10565            1 :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   10566              :                                                                         {
   10567            1 :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   10568              :                                                                         }
   10569              :                                                                       else
   10570              :                                                                         _r1 = _o1[0];
   10571            1 :                                                                       res_op0 = _r1;
   10572              :                                                                     }
   10573            1 :                                                                     tree res_op1;
   10574            1 :                                                                     res_op1 =  rhs_tree;
   10575            1 :                                                                     tree _r;
   10576            1 :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   10577            1 :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 923, __FILE__, __LINE__, true);
   10578            1 :                                                                     return _r;
   10579              :                                                                   }
   10580            0 : next_after_fail1767:;
   10581              :                                                                 }
   10582              :                                                           }
   10583              :                                                         }
   10584              :                                                   }
   10585              :                                                 }
   10586              :                                             }
   10587              :                                           }
   10588              :                                       }
   10589              :                                   }
   10590              :                                 break;
   10591              :                               }
   10592              :                             default:;
   10593              :                             }
   10594              :                           break;
   10595              :                         }
   10596            0 :                       case GE_EXPR:
   10597            0 :                         {
   10598            0 :                           tree _q70 = TREE_OPERAND (_p1, 0);
   10599            0 :                           tree _q71 = TREE_OPERAND (_p1, 1);
   10600            0 :                           if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
   10601              :                             {
   10602            0 :                               switch (TREE_CODE (_q71))
   10603              :                                 {
   10604            0 :                                 case POINTER_PLUS_EXPR:
   10605            0 :                                   {
   10606            0 :                                     tree _q90 = TREE_OPERAND (_q71, 0);
   10607            0 :                                     tree _q91 = TREE_OPERAND (_q71, 1);
   10608            0 :                                     if ((_q90 == _q21 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q21, 0) && types_match (_q90, _q21)))
   10609              :                                       {
   10610            0 :                                         if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
   10611              :                                           {
   10612            0 :                                             {
   10613            0 :                                               tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q71 };
   10614            0 :                                               const enum tree_code cmp = LE_EXPR;
   10615            0 :                                               if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2]))
   10616            0 :  && TYPE_OVERFLOW_WRAPS (sizetype)
   10617            0 :  && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype)
   10618              : )
   10619              :                                                 {
   10620            0 :                                                   {
   10621            0 :  offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
   10622            0 :  offset_int rhs = off * 2;
   10623            0 :                                                       if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
   10624              : )
   10625              :                                                         {
   10626            0 :                                                           {
   10627            0 :  bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
   10628            0 :  tree rhs_tree = wide_int_to_tree (sizetype, rhs);
   10629            0 :                                                               if (cmp == LT_EXPR
   10630              : )
   10631              :                                                                 {
   10632              :                                                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1768;
   10633              :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1768;
   10634              :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1768;
   10635              :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1768;
   10636              :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1768;
   10637              :                                                                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1768;
   10638              :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1768;
   10639              :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1768;
   10640              :                                                                   {
   10641              :                                                                     tree res_op0;
   10642              :                                                                     {
   10643              :                                                                       tree _o1[1], _r1;
   10644              :                                                                       {
   10645              :                                                                         tree _o2[2], _r2;
   10646              :                                                                         _o2[0] =  swap_p ? captures[6] : captures[1];
   10647              :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   10648              :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   10649              :                                                                         _o1[0] = _r2;
   10650              :                                                                       }
   10651              :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   10652              :                                                                         {
   10653              :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   10654              :                                                                         }
   10655              :                                                                       else
   10656              :                                                                         _r1 = _o1[0];
   10657              :                                                                       res_op0 = _r1;
   10658              :                                                                     }
   10659              :                                                                     tree res_op1;
   10660              :                                                                     res_op1 =  rhs_tree;
   10661              :                                                                     tree _r;
   10662              :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   10663              :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 922, __FILE__, __LINE__, true);
   10664            0 :                                                                     return _r;
   10665              :                                                                   }
   10666              : next_after_fail1768:;
   10667              :                                                                 }
   10668              :                                                               else
   10669              :                                                                 {
   10670            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1769;
   10671            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1769;
   10672            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1769;
   10673            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1769;
   10674            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1769;
   10675            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1769;
   10676            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1769;
   10677            0 :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1769;
   10678            0 :                                                                   {
   10679            0 :                                                                     tree res_op0;
   10680            0 :                                                                     {
   10681            0 :                                                                       tree _o1[1], _r1;
   10682            0 :                                                                       {
   10683            0 :                                                                         tree _o2[2], _r2;
   10684            0 :                                                                         {
   10685            0 :                                                                           tree _o3[2], _r3;
   10686            0 :                                                                           _o3[0] =  swap_p ? captures[4] : captures[2];
   10687            0 :                                                                           _o3[1] =  wide_int_to_tree (sizetype, off);
   10688            0 :                                                                           _r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
   10689            0 :                                                                           _o2[0] = _r3;
   10690              :                                                                         }
   10691            0 :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   10692            0 :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   10693            0 :                                                                         _o1[0] = _r2;
   10694              :                                                                       }
   10695            0 :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   10696              :                                                                         {
   10697            0 :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   10698              :                                                                         }
   10699              :                                                                       else
   10700              :                                                                         _r1 = _o1[0];
   10701            0 :                                                                       res_op0 = _r1;
   10702              :                                                                     }
   10703            0 :                                                                     tree res_op1;
   10704            0 :                                                                     res_op1 =  rhs_tree;
   10705            0 :                                                                     tree _r;
   10706            0 :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   10707            0 :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 923, __FILE__, __LINE__, true);
   10708            0 :                                                                     return _r;
   10709              :                                                                   }
   10710            0 : next_after_fail1769:;
   10711              :                                                                 }
   10712              :                                                           }
   10713              :                                                         }
   10714              :                                                   }
   10715              :                                                 }
   10716              :                                             }
   10717              :                                           }
   10718              :                                       }
   10719              :                                     break;
   10720              :                                   }
   10721              :                                 default:;
   10722              :                                 }
   10723              :                             }
   10724              :                           break;
   10725              :                         }
   10726              :                       default:;
   10727              :                       }
   10728              :                     break;
   10729              :                   }
   10730              :                 default:;
   10731              :                 }
   10732              :               break;
   10733              :             }
   10734              :           default:;
   10735              :           }
   10736              :         break;
   10737              :       }
   10738       759396 :     case LT_EXPR:
   10739       759396 :       {
   10740       759396 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10741       759396 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10742       759396 :         switch (TREE_CODE (_q20))
   10743              :           {
   10744           13 :           case POINTER_PLUS_EXPR:
   10745           13 :             {
   10746           13 :               tree _q30 = TREE_OPERAND (_q20, 0);
   10747           13 :               tree _q31 = TREE_OPERAND (_q20, 1);
   10748           13 :               switch (TREE_CODE (_q31))
   10749              :                 {
   10750            7 :                 case INTEGER_CST:
   10751            7 :                   {
   10752            7 :                     switch (TREE_CODE (_p1))
   10753              :                       {
   10754            2 :                       case LT_EXPR:
   10755            2 :                         {
   10756            2 :                           tree _q70 = TREE_OPERAND (_p1, 0);
   10757            2 :                           tree _q71 = TREE_OPERAND (_p1, 1);
   10758            2 :                           switch (TREE_CODE (_q70))
   10759              :                             {
   10760            2 :                             case POINTER_PLUS_EXPR:
   10761            2 :                               {
   10762            2 :                                 tree _q80 = TREE_OPERAND (_q70, 0);
   10763            2 :                                 tree _q81 = TREE_OPERAND (_q70, 1);
   10764            2 :                                 if ((_q80 == _q21 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q21, 0) && types_match (_q80, _q21)))
   10765              :                                   {
   10766            2 :                                     if ((_q81 == _q31 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q31, 0) && types_match (_q81, _q31)))
   10767              :                                       {
   10768            2 :                                         if ((_q71 == _q30 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q30, 0) && types_match (_q71, _q30)))
   10769              :                                           {
   10770            2 :                                             {
   10771            2 :                                               tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q70 };
   10772            2 :                                               const enum tree_code cmp = LT_EXPR;
   10773            2 :                                               if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2]))
   10774            1 :  && TYPE_OVERFLOW_WRAPS (sizetype)
   10775            3 :  && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype)
   10776              : )
   10777              :                                                 {
   10778            1 :                                                   {
   10779            1 :  offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
   10780            1 :  offset_int rhs = off * 2;
   10781            1 :                                                       if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
   10782              : )
   10783              :                                                         {
   10784            1 :                                                           {
   10785            1 :  bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
   10786            1 :  tree rhs_tree = wide_int_to_tree (sizetype, rhs);
   10787            1 :                                                               if (cmp == LT_EXPR
   10788              : )
   10789              :                                                                 {
   10790            1 :                                                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1770;
   10791            1 :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1770;
   10792            1 :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1770;
   10793            1 :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1770;
   10794            1 :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1770;
   10795            1 :                                                                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1770;
   10796            1 :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1770;
   10797            1 :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1770;
   10798            1 :                                                                   {
   10799            1 :                                                                     tree res_op0;
   10800            1 :                                                                     {
   10801            1 :                                                                       tree _o1[1], _r1;
   10802            1 :                                                                       {
   10803            1 :                                                                         tree _o2[2], _r2;
   10804            1 :                                                                         _o2[0] =  swap_p ? captures[6] : captures[1];
   10805            1 :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   10806            1 :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   10807            1 :                                                                         _o1[0] = _r2;
   10808              :                                                                       }
   10809            1 :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   10810              :                                                                         {
   10811            1 :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   10812              :                                                                         }
   10813              :                                                                       else
   10814              :                                                                         _r1 = _o1[0];
   10815            1 :                                                                       res_op0 = _r1;
   10816              :                                                                     }
   10817            1 :                                                                     tree res_op1;
   10818            1 :                                                                     res_op1 =  rhs_tree;
   10819            1 :                                                                     tree _r;
   10820            1 :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   10821            1 :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 922, __FILE__, __LINE__, true);
   10822            1 :                                                                     return _r;
   10823              :                                                                   }
   10824            0 : next_after_fail1770:;
   10825              :                                                                 }
   10826              :                                                               else
   10827              :                                                                 {
   10828              :                                                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1771;
   10829              :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1771;
   10830              :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1771;
   10831              :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1771;
   10832              :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1771;
   10833              :                                                                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1771;
   10834              :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1771;
   10835              :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1771;
   10836              :                                                                   {
   10837              :                                                                     tree res_op0;
   10838              :                                                                     {
   10839              :                                                                       tree _o1[1], _r1;
   10840              :                                                                       {
   10841              :                                                                         tree _o2[2], _r2;
   10842              :                                                                         {
   10843              :                                                                           tree _o3[2], _r3;
   10844              :                                                                           _o3[0] =  swap_p ? captures[4] : captures[2];
   10845              :                                                                           _o3[1] =  wide_int_to_tree (sizetype, off);
   10846              :                                                                           _r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
   10847              :                                                                           _o2[0] = _r3;
   10848              :                                                                         }
   10849              :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   10850              :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   10851              :                                                                         _o1[0] = _r2;
   10852              :                                                                       }
   10853              :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   10854              :                                                                         {
   10855              :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   10856              :                                                                         }
   10857              :                                                                       else
   10858              :                                                                         _r1 = _o1[0];
   10859              :                                                                       res_op0 = _r1;
   10860              :                                                                     }
   10861              :                                                                     tree res_op1;
   10862              :                                                                     res_op1 =  rhs_tree;
   10863              :                                                                     tree _r;
   10864              :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   10865              :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 923, __FILE__, __LINE__, true);
   10866              :                                                                     return _r;
   10867              :                                                                   }
   10868              : next_after_fail1771:;
   10869              :                                                                 }
   10870              :                                                           }
   10871              :                                                         }
   10872              :                                                   }
   10873              :                                                 }
   10874              :                                             }
   10875              :                                           }
   10876              :                                       }
   10877              :                                   }
   10878              :                                 break;
   10879              :                               }
   10880              :                             default:;
   10881              :                             }
   10882              :                           break;
   10883              :                         }
   10884            0 :                       case GT_EXPR:
   10885            0 :                         {
   10886            0 :                           tree _q70 = TREE_OPERAND (_p1, 0);
   10887            0 :                           tree _q71 = TREE_OPERAND (_p1, 1);
   10888            0 :                           if ((_q70 == _q30 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q30, 0) && types_match (_q70, _q30)))
   10889              :                             {
   10890            0 :                               switch (TREE_CODE (_q71))
   10891              :                                 {
   10892            0 :                                 case POINTER_PLUS_EXPR:
   10893            0 :                                   {
   10894            0 :                                     tree _q90 = TREE_OPERAND (_q71, 0);
   10895            0 :                                     tree _q91 = TREE_OPERAND (_q71, 1);
   10896            0 :                                     if ((_q90 == _q21 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q21, 0) && types_match (_q90, _q21)))
   10897              :                                       {
   10898            0 :                                         if ((_q91 == _q31 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q31, 0) && types_match (_q91, _q31)))
   10899              :                                           {
   10900            0 :                                             {
   10901            0 :                                               tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1, _q71 };
   10902            0 :                                               const enum tree_code cmp = LT_EXPR;
   10903            0 :                                               if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2]))
   10904            0 :  && TYPE_OVERFLOW_WRAPS (sizetype)
   10905            0 :  && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype)
   10906              : )
   10907              :                                                 {
   10908            0 :                                                   {
   10909            0 :  offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
   10910            0 :  offset_int rhs = off * 2;
   10911            0 :                                                       if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
   10912              : )
   10913              :                                                         {
   10914            0 :                                                           {
   10915            0 :  bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
   10916            0 :  tree rhs_tree = wide_int_to_tree (sizetype, rhs);
   10917            0 :                                                               if (cmp == LT_EXPR
   10918              : )
   10919              :                                                                 {
   10920            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1772;
   10921            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1772;
   10922            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1772;
   10923            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1772;
   10924            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1772;
   10925            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1772;
   10926            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1772;
   10927            0 :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1772;
   10928            0 :                                                                   {
   10929            0 :                                                                     tree res_op0;
   10930            0 :                                                                     {
   10931            0 :                                                                       tree _o1[1], _r1;
   10932            0 :                                                                       {
   10933            0 :                                                                         tree _o2[2], _r2;
   10934            0 :                                                                         _o2[0] =  swap_p ? captures[6] : captures[1];
   10935            0 :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   10936            0 :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   10937            0 :                                                                         _o1[0] = _r2;
   10938              :                                                                       }
   10939            0 :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   10940              :                                                                         {
   10941            0 :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   10942              :                                                                         }
   10943              :                                                                       else
   10944              :                                                                         _r1 = _o1[0];
   10945            0 :                                                                       res_op0 = _r1;
   10946              :                                                                     }
   10947            0 :                                                                     tree res_op1;
   10948            0 :                                                                     res_op1 =  rhs_tree;
   10949            0 :                                                                     tree _r;
   10950            0 :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   10951            0 :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 922, __FILE__, __LINE__, true);
   10952            0 :                                                                     return _r;
   10953              :                                                                   }
   10954            0 : next_after_fail1772:;
   10955              :                                                                 }
   10956              :                                                               else
   10957              :                                                                 {
   10958              :                                                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1773;
   10959              :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1773;
   10960              :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1773;
   10961              :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1773;
   10962              :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1773;
   10963              :                                                                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1773;
   10964              :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1773;
   10965              :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1773;
   10966              :                                                                   {
   10967              :                                                                     tree res_op0;
   10968              :                                                                     {
   10969              :                                                                       tree _o1[1], _r1;
   10970              :                                                                       {
   10971              :                                                                         tree _o2[2], _r2;
   10972              :                                                                         {
   10973              :                                                                           tree _o3[2], _r3;
   10974              :                                                                           _o3[0] =  swap_p ? captures[4] : captures[2];
   10975              :                                                                           _o3[1] =  wide_int_to_tree (sizetype, off);
   10976              :                                                                           _r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
   10977              :                                                                           _o2[0] = _r3;
   10978              :                                                                         }
   10979              :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   10980              :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   10981              :                                                                         _o1[0] = _r2;
   10982              :                                                                       }
   10983              :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   10984              :                                                                         {
   10985              :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   10986              :                                                                         }
   10987              :                                                                       else
   10988              :                                                                         _r1 = _o1[0];
   10989              :                                                                       res_op0 = _r1;
   10990              :                                                                     }
   10991              :                                                                     tree res_op1;
   10992              :                                                                     res_op1 =  rhs_tree;
   10993              :                                                                     tree _r;
   10994              :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   10995              :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 923, __FILE__, __LINE__, true);
   10996              :                                                                     return _r;
   10997              :                                                                   }
   10998              : next_after_fail1773:;
   10999              :                                                                 }
   11000              :                                                           }
   11001              :                                                         }
   11002              :                                                   }
   11003              :                                                 }
   11004              :                                             }
   11005              :                                           }
   11006              :                                       }
   11007              :                                     break;
   11008              :                                   }
   11009              :                                 default:;
   11010              :                                 }
   11011              :                             }
   11012              :                           break;
   11013              :                         }
   11014              :                       default:;
   11015              :                       }
   11016              :                     break;
   11017              :                   }
   11018              :                 default:;
   11019              :                 }
   11020              :               break;
   11021              :             }
   11022              :           default:;
   11023              :           }
   11024              :         break;
   11025              :       }
   11026        67544 :     case GE_EXPR:
   11027        67544 :       {
   11028        67544 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11029        67544 :         tree _q21 = TREE_OPERAND (_p0, 1);
   11030        67544 :         switch (TREE_CODE (_q21))
   11031              :           {
   11032            0 :           case POINTER_PLUS_EXPR:
   11033            0 :             {
   11034            0 :               tree _q40 = TREE_OPERAND (_q21, 0);
   11035            0 :               tree _q41 = TREE_OPERAND (_q21, 1);
   11036            0 :               switch (TREE_CODE (_q41))
   11037              :                 {
   11038            0 :                 case INTEGER_CST:
   11039            0 :                   {
   11040            0 :                     switch (TREE_CODE (_p1))
   11041              :                       {
   11042            0 :                       case LE_EXPR:
   11043            0 :                         {
   11044            0 :                           tree _q70 = TREE_OPERAND (_p1, 0);
   11045            0 :                           tree _q71 = TREE_OPERAND (_p1, 1);
   11046            0 :                           switch (TREE_CODE (_q70))
   11047              :                             {
   11048            0 :                             case POINTER_PLUS_EXPR:
   11049            0 :                               {
   11050            0 :                                 tree _q80 = TREE_OPERAND (_q70, 0);
   11051            0 :                                 tree _q81 = TREE_OPERAND (_q70, 1);
   11052            0 :                                 if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
   11053              :                                   {
   11054            0 :                                     if ((_q81 == _q41 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q41, 0) && types_match (_q81, _q41)))
   11055              :                                       {
   11056            0 :                                         if ((_q71 == _q40 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q40, 0) && types_match (_q71, _q40)))
   11057              :                                           {
   11058            0 :                                             {
   11059            0 :                                               tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q41, _q20, _p1, _q70 };
   11060            0 :                                               const enum tree_code cmp = LE_EXPR;
   11061            0 :                                               if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2]))
   11062            0 :  && TYPE_OVERFLOW_WRAPS (sizetype)
   11063            0 :  && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype)
   11064              : )
   11065              :                                                 {
   11066            0 :                                                   {
   11067            0 :  offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
   11068            0 :  offset_int rhs = off * 2;
   11069            0 :                                                       if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
   11070              : )
   11071              :                                                         {
   11072            0 :                                                           {
   11073            0 :  bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
   11074            0 :  tree rhs_tree = wide_int_to_tree (sizetype, rhs);
   11075            0 :                                                               if (cmp == LT_EXPR
   11076              : )
   11077              :                                                                 {
   11078              :                                                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1774;
   11079              :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1774;
   11080              :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1774;
   11081              :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1774;
   11082              :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1774;
   11083              :                                                                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1774;
   11084              :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1774;
   11085              :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1774;
   11086              :                                                                   {
   11087              :                                                                     tree res_op0;
   11088              :                                                                     {
   11089              :                                                                       tree _o1[1], _r1;
   11090              :                                                                       {
   11091              :                                                                         tree _o2[2], _r2;
   11092              :                                                                         _o2[0] =  swap_p ? captures[6] : captures[1];
   11093              :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   11094              :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   11095              :                                                                         _o1[0] = _r2;
   11096              :                                                                       }
   11097              :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   11098              :                                                                         {
   11099              :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   11100              :                                                                         }
   11101              :                                                                       else
   11102              :                                                                         _r1 = _o1[0];
   11103              :                                                                       res_op0 = _r1;
   11104              :                                                                     }
   11105              :                                                                     tree res_op1;
   11106              :                                                                     res_op1 =  rhs_tree;
   11107              :                                                                     tree _r;
   11108              :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   11109              :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 922, __FILE__, __LINE__, true);
   11110            0 :                                                                     return _r;
   11111              :                                                                   }
   11112              : next_after_fail1774:;
   11113              :                                                                 }
   11114              :                                                               else
   11115              :                                                                 {
   11116            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1775;
   11117            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1775;
   11118            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1775;
   11119            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1775;
   11120            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1775;
   11121            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1775;
   11122            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1775;
   11123            0 :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1775;
   11124            0 :                                                                   {
   11125            0 :                                                                     tree res_op0;
   11126            0 :                                                                     {
   11127            0 :                                                                       tree _o1[1], _r1;
   11128            0 :                                                                       {
   11129            0 :                                                                         tree _o2[2], _r2;
   11130            0 :                                                                         {
   11131            0 :                                                                           tree _o3[2], _r3;
   11132            0 :                                                                           _o3[0] =  swap_p ? captures[4] : captures[2];
   11133            0 :                                                                           _o3[1] =  wide_int_to_tree (sizetype, off);
   11134            0 :                                                                           _r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
   11135            0 :                                                                           _o2[0] = _r3;
   11136              :                                                                         }
   11137            0 :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   11138            0 :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   11139            0 :                                                                         _o1[0] = _r2;
   11140              :                                                                       }
   11141            0 :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   11142              :                                                                         {
   11143            0 :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   11144              :                                                                         }
   11145              :                                                                       else
   11146              :                                                                         _r1 = _o1[0];
   11147            0 :                                                                       res_op0 = _r1;
   11148              :                                                                     }
   11149            0 :                                                                     tree res_op1;
   11150            0 :                                                                     res_op1 =  rhs_tree;
   11151            0 :                                                                     tree _r;
   11152            0 :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   11153            0 :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 923, __FILE__, __LINE__, true);
   11154            0 :                                                                     return _r;
   11155              :                                                                   }
   11156            0 : next_after_fail1775:;
   11157              :                                                                 }
   11158              :                                                           }
   11159              :                                                         }
   11160              :                                                   }
   11161              :                                                 }
   11162              :                                             }
   11163              :                                           }
   11164              :                                       }
   11165              :                                   }
   11166              :                                 break;
   11167              :                               }
   11168              :                             default:;
   11169              :                             }
   11170              :                           break;
   11171              :                         }
   11172            0 :                       case GE_EXPR:
   11173            0 :                         {
   11174            0 :                           tree _q70 = TREE_OPERAND (_p1, 0);
   11175            0 :                           tree _q71 = TREE_OPERAND (_p1, 1);
   11176            0 :                           if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
   11177              :                             {
   11178            0 :                               switch (TREE_CODE (_q71))
   11179              :                                 {
   11180            0 :                                 case POINTER_PLUS_EXPR:
   11181            0 :                                   {
   11182            0 :                                     tree _q90 = TREE_OPERAND (_q71, 0);
   11183            0 :                                     tree _q91 = TREE_OPERAND (_q71, 1);
   11184            0 :                                     if ((_q90 == _q20 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q20, 0) && types_match (_q90, _q20)))
   11185              :                                       {
   11186            0 :                                         if ((_q91 == _q41 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q41, 0) && types_match (_q91, _q41)))
   11187              :                                           {
   11188            0 :                                             {
   11189            0 :                                               tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q41, _q20, _p1, _q71 };
   11190            0 :                                               const enum tree_code cmp = LE_EXPR;
   11191            0 :                                               if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2]))
   11192            0 :  && TYPE_OVERFLOW_WRAPS (sizetype)
   11193            0 :  && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype)
   11194              : )
   11195              :                                                 {
   11196            0 :                                                   {
   11197            0 :  offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
   11198            0 :  offset_int rhs = off * 2;
   11199            0 :                                                       if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
   11200              : )
   11201              :                                                         {
   11202            0 :                                                           {
   11203            0 :  bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
   11204            0 :  tree rhs_tree = wide_int_to_tree (sizetype, rhs);
   11205            0 :                                                               if (cmp == LT_EXPR
   11206              : )
   11207              :                                                                 {
   11208              :                                                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1776;
   11209              :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1776;
   11210              :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1776;
   11211              :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1776;
   11212              :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1776;
   11213              :                                                                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1776;
   11214              :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1776;
   11215              :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1776;
   11216              :                                                                   {
   11217              :                                                                     tree res_op0;
   11218              :                                                                     {
   11219              :                                                                       tree _o1[1], _r1;
   11220              :                                                                       {
   11221              :                                                                         tree _o2[2], _r2;
   11222              :                                                                         _o2[0] =  swap_p ? captures[6] : captures[1];
   11223              :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   11224              :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   11225              :                                                                         _o1[0] = _r2;
   11226              :                                                                       }
   11227              :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   11228              :                                                                         {
   11229              :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   11230              :                                                                         }
   11231              :                                                                       else
   11232              :                                                                         _r1 = _o1[0];
   11233              :                                                                       res_op0 = _r1;
   11234              :                                                                     }
   11235              :                                                                     tree res_op1;
   11236              :                                                                     res_op1 =  rhs_tree;
   11237              :                                                                     tree _r;
   11238              :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   11239              :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 922, __FILE__, __LINE__, true);
   11240            0 :                                                                     return _r;
   11241              :                                                                   }
   11242              : next_after_fail1776:;
   11243              :                                                                 }
   11244              :                                                               else
   11245              :                                                                 {
   11246            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1777;
   11247            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1777;
   11248            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1777;
   11249            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1777;
   11250            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1777;
   11251            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1777;
   11252            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1777;
   11253            0 :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1777;
   11254            0 :                                                                   {
   11255            0 :                                                                     tree res_op0;
   11256            0 :                                                                     {
   11257            0 :                                                                       tree _o1[1], _r1;
   11258            0 :                                                                       {
   11259            0 :                                                                         tree _o2[2], _r2;
   11260            0 :                                                                         {
   11261            0 :                                                                           tree _o3[2], _r3;
   11262            0 :                                                                           _o3[0] =  swap_p ? captures[4] : captures[2];
   11263            0 :                                                                           _o3[1] =  wide_int_to_tree (sizetype, off);
   11264            0 :                                                                           _r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
   11265            0 :                                                                           _o2[0] = _r3;
   11266              :                                                                         }
   11267            0 :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   11268            0 :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   11269            0 :                                                                         _o1[0] = _r2;
   11270              :                                                                       }
   11271            0 :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   11272              :                                                                         {
   11273            0 :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   11274              :                                                                         }
   11275              :                                                                       else
   11276              :                                                                         _r1 = _o1[0];
   11277            0 :                                                                       res_op0 = _r1;
   11278              :                                                                     }
   11279            0 :                                                                     tree res_op1;
   11280            0 :                                                                     res_op1 =  rhs_tree;
   11281            0 :                                                                     tree _r;
   11282            0 :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   11283            0 :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 923, __FILE__, __LINE__, true);
   11284            0 :                                                                     return _r;
   11285              :                                                                   }
   11286            0 : next_after_fail1777:;
   11287              :                                                                 }
   11288              :                                                           }
   11289              :                                                         }
   11290              :                                                   }
   11291              :                                                 }
   11292              :                                             }
   11293              :                                           }
   11294              :                                       }
   11295              :                                     break;
   11296              :                                   }
   11297              :                                 default:;
   11298              :                                 }
   11299              :                             }
   11300              :                           break;
   11301              :                         }
   11302              :                       default:;
   11303              :                       }
   11304              :                     break;
   11305              :                   }
   11306              :                 default:;
   11307              :                 }
   11308              :               break;
   11309              :             }
   11310              :           default:;
   11311              :           }
   11312              :         break;
   11313              :       }
   11314        68138 :     case GT_EXPR:
   11315        68138 :       {
   11316        68138 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11317        68138 :         tree _q21 = TREE_OPERAND (_p0, 1);
   11318        68138 :         switch (TREE_CODE (_q21))
   11319              :           {
   11320            0 :           case POINTER_PLUS_EXPR:
   11321            0 :             {
   11322            0 :               tree _q40 = TREE_OPERAND (_q21, 0);
   11323            0 :               tree _q41 = TREE_OPERAND (_q21, 1);
   11324            0 :               switch (TREE_CODE (_q41))
   11325              :                 {
   11326            0 :                 case INTEGER_CST:
   11327            0 :                   {
   11328            0 :                     switch (TREE_CODE (_p1))
   11329              :                       {
   11330            0 :                       case LT_EXPR:
   11331            0 :                         {
   11332            0 :                           tree _q70 = TREE_OPERAND (_p1, 0);
   11333            0 :                           tree _q71 = TREE_OPERAND (_p1, 1);
   11334            0 :                           switch (TREE_CODE (_q70))
   11335              :                             {
   11336            0 :                             case POINTER_PLUS_EXPR:
   11337            0 :                               {
   11338            0 :                                 tree _q80 = TREE_OPERAND (_q70, 0);
   11339            0 :                                 tree _q81 = TREE_OPERAND (_q70, 1);
   11340            0 :                                 if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
   11341              :                                   {
   11342            0 :                                     if ((_q81 == _q41 && ! TREE_SIDE_EFFECTS (_q81)) || (operand_equal_p (_q81, _q41, 0) && types_match (_q81, _q41)))
   11343              :                                       {
   11344            0 :                                         if ((_q71 == _q40 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q40, 0) && types_match (_q71, _q40)))
   11345              :                                           {
   11346            0 :                                             {
   11347            0 :                                               tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q41, _q20, _p1, _q70 };
   11348            0 :                                               const enum tree_code cmp = LT_EXPR;
   11349            0 :                                               if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2]))
   11350            0 :  && TYPE_OVERFLOW_WRAPS (sizetype)
   11351            0 :  && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype)
   11352              : )
   11353              :                                                 {
   11354            0 :                                                   {
   11355            0 :  offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
   11356            0 :  offset_int rhs = off * 2;
   11357            0 :                                                       if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
   11358              : )
   11359              :                                                         {
   11360            0 :                                                           {
   11361            0 :  bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
   11362            0 :  tree rhs_tree = wide_int_to_tree (sizetype, rhs);
   11363            0 :                                                               if (cmp == LT_EXPR
   11364              : )
   11365              :                                                                 {
   11366            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1778;
   11367            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1778;
   11368            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1778;
   11369            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1778;
   11370            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1778;
   11371            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1778;
   11372            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1778;
   11373            0 :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1778;
   11374            0 :                                                                   {
   11375            0 :                                                                     tree res_op0;
   11376            0 :                                                                     {
   11377            0 :                                                                       tree _o1[1], _r1;
   11378            0 :                                                                       {
   11379            0 :                                                                         tree _o2[2], _r2;
   11380            0 :                                                                         _o2[0] =  swap_p ? captures[6] : captures[1];
   11381            0 :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   11382            0 :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   11383            0 :                                                                         _o1[0] = _r2;
   11384              :                                                                       }
   11385            0 :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   11386              :                                                                         {
   11387            0 :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   11388              :                                                                         }
   11389              :                                                                       else
   11390              :                                                                         _r1 = _o1[0];
   11391            0 :                                                                       res_op0 = _r1;
   11392              :                                                                     }
   11393            0 :                                                                     tree res_op1;
   11394            0 :                                                                     res_op1 =  rhs_tree;
   11395            0 :                                                                     tree _r;
   11396            0 :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   11397            0 :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 922, __FILE__, __LINE__, true);
   11398            0 :                                                                     return _r;
   11399              :                                                                   }
   11400            0 : next_after_fail1778:;
   11401              :                                                                 }
   11402              :                                                               else
   11403              :                                                                 {
   11404              :                                                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1779;
   11405              :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1779;
   11406              :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1779;
   11407              :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1779;
   11408              :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1779;
   11409              :                                                                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1779;
   11410              :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1779;
   11411              :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1779;
   11412              :                                                                   {
   11413              :                                                                     tree res_op0;
   11414              :                                                                     {
   11415              :                                                                       tree _o1[1], _r1;
   11416              :                                                                       {
   11417              :                                                                         tree _o2[2], _r2;
   11418              :                                                                         {
   11419              :                                                                           tree _o3[2], _r3;
   11420              :                                                                           _o3[0] =  swap_p ? captures[4] : captures[2];
   11421              :                                                                           _o3[1] =  wide_int_to_tree (sizetype, off);
   11422              :                                                                           _r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
   11423              :                                                                           _o2[0] = _r3;
   11424              :                                                                         }
   11425              :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   11426              :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   11427              :                                                                         _o1[0] = _r2;
   11428              :                                                                       }
   11429              :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   11430              :                                                                         {
   11431              :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   11432              :                                                                         }
   11433              :                                                                       else
   11434              :                                                                         _r1 = _o1[0];
   11435              :                                                                       res_op0 = _r1;
   11436              :                                                                     }
   11437              :                                                                     tree res_op1;
   11438              :                                                                     res_op1 =  rhs_tree;
   11439              :                                                                     tree _r;
   11440              :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   11441              :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 923, __FILE__, __LINE__, true);
   11442              :                                                                     return _r;
   11443              :                                                                   }
   11444              : next_after_fail1779:;
   11445              :                                                                 }
   11446              :                                                           }
   11447              :                                                         }
   11448              :                                                   }
   11449              :                                                 }
   11450              :                                             }
   11451              :                                           }
   11452              :                                       }
   11453              :                                   }
   11454              :                                 break;
   11455              :                               }
   11456              :                             default:;
   11457              :                             }
   11458              :                           break;
   11459              :                         }
   11460            0 :                       case GT_EXPR:
   11461            0 :                         {
   11462            0 :                           tree _q70 = TREE_OPERAND (_p1, 0);
   11463            0 :                           tree _q71 = TREE_OPERAND (_p1, 1);
   11464            0 :                           if ((_q70 == _q40 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q40, 0) && types_match (_q70, _q40)))
   11465              :                             {
   11466            0 :                               switch (TREE_CODE (_q71))
   11467              :                                 {
   11468            0 :                                 case POINTER_PLUS_EXPR:
   11469            0 :                                   {
   11470            0 :                                     tree _q90 = TREE_OPERAND (_q71, 0);
   11471            0 :                                     tree _q91 = TREE_OPERAND (_q71, 1);
   11472            0 :                                     if ((_q90 == _q20 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q20, 0) && types_match (_q90, _q20)))
   11473              :                                       {
   11474            0 :                                         if ((_q91 == _q41 && ! TREE_SIDE_EFFECTS (_q91)) || (operand_equal_p (_q91, _q41, 0) && types_match (_q91, _q41)))
   11475              :                                           {
   11476            0 :                                             {
   11477            0 :                                               tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q41, _q20, _p1, _q71 };
   11478            0 :                                               const enum tree_code cmp = LT_EXPR;
   11479            0 :                                               if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2]))
   11480            0 :  && TYPE_OVERFLOW_WRAPS (sizetype)
   11481            0 :  && TYPE_PRECISION (TREE_TYPE (captures[2])) == TYPE_PRECISION (sizetype)
   11482              : )
   11483              :                                                 {
   11484            0 :                                                   {
   11485            0 :  offset_int off = wi::to_offset (captures[3]) - (cmp == LE_EXPR ? 1 : 0);
   11486            0 :  offset_int rhs = off * 2;
   11487            0 :                                                       if (wi::min_precision (rhs, UNSIGNED) <= TYPE_PRECISION (sizetype)
   11488              : )
   11489              :                                                         {
   11490            0 :                                                           {
   11491            0 :  bool swap_p = tree_swap_operands_p (captures[2], captures[4]);
   11492            0 :  tree rhs_tree = wide_int_to_tree (sizetype, rhs);
   11493            0 :                                                               if (cmp == LT_EXPR
   11494              : )
   11495              :                                                                 {
   11496            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1780;
   11497            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1780;
   11498            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1780;
   11499            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1780;
   11500            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1780;
   11501            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1780;
   11502            0 :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1780;
   11503            0 :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1780;
   11504            0 :                                                                   {
   11505            0 :                                                                     tree res_op0;
   11506            0 :                                                                     {
   11507            0 :                                                                       tree _o1[1], _r1;
   11508            0 :                                                                       {
   11509            0 :                                                                         tree _o2[2], _r2;
   11510            0 :                                                                         _o2[0] =  swap_p ? captures[6] : captures[1];
   11511            0 :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   11512            0 :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   11513            0 :                                                                         _o1[0] = _r2;
   11514              :                                                                       }
   11515            0 :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   11516              :                                                                         {
   11517            0 :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   11518              :                                                                         }
   11519              :                                                                       else
   11520              :                                                                         _r1 = _o1[0];
   11521            0 :                                                                       res_op0 = _r1;
   11522              :                                                                     }
   11523            0 :                                                                     tree res_op1;
   11524            0 :                                                                     res_op1 =  rhs_tree;
   11525            0 :                                                                     tree _r;
   11526            0 :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   11527            0 :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 922, __FILE__, __LINE__, true);
   11528            0 :                                                                     return _r;
   11529              :                                                                   }
   11530            0 : next_after_fail1780:;
   11531              :                                                                 }
   11532              :                                                               else
   11533              :                                                                 {
   11534              :                                                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1781;
   11535              :                                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1781;
   11536              :                                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1781;
   11537              :                                                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1781;
   11538              :                                                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1781;
   11539              :                                                                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1781;
   11540              :                                                                   if (TREE_SIDE_EFFECTS (captures[6])) goto next_after_fail1781;
   11541              :                                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1781;
   11542              :                                                                   {
   11543              :                                                                     tree res_op0;
   11544              :                                                                     {
   11545              :                                                                       tree _o1[1], _r1;
   11546              :                                                                       {
   11547              :                                                                         tree _o2[2], _r2;
   11548              :                                                                         {
   11549              :                                                                           tree _o3[2], _r3;
   11550              :                                                                           _o3[0] =  swap_p ? captures[4] : captures[2];
   11551              :                                                                           _o3[1] =  wide_int_to_tree (sizetype, off);
   11552              :                                                                           _r3 = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
   11553              :                                                                           _o2[0] = _r3;
   11554              :                                                                         }
   11555              :                                                                         _o2[1] =  swap_p ? captures[2] : captures[4];
   11556              :                                                                         _r2 = fold_build2_loc (loc, POINTER_DIFF_EXPR, ssizetype, _o2[0], _o2[1]);
   11557              :                                                                         _o1[0] = _r2;
   11558              :                                                                       }
   11559              :                                                                       if (TREE_TYPE (_o1[0]) != sizetype)
   11560              :                                                                         {
   11561              :                                                                           _r1 = fold_build1_loc (loc, NOP_EXPR, sizetype, _o1[0]);
   11562              :                                                                         }
   11563              :                                                                       else
   11564              :                                                                         _r1 = _o1[0];
   11565              :                                                                       res_op0 = _r1;
   11566              :                                                                     }
   11567              :                                                                     tree res_op1;
   11568              :                                                                     res_op1 =  rhs_tree;
   11569              :                                                                     tree _r;
   11570              :                                                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
   11571              :                                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 923, __FILE__, __LINE__, true);
   11572              :                                                                     return _r;
   11573              :                                                                   }
   11574              : next_after_fail1781:;
   11575              :                                                                 }
   11576              :                                                           }
   11577              :                                                         }
   11578              :                                                   }
   11579              :                                                 }
   11580              :                                             }
   11581              :                                           }
   11582              :                                       }
   11583              :                                     break;
   11584              :                                   }
   11585              :                                 default:;
   11586              :                                 }
   11587              :                             }
   11588              :                           break;
   11589              :                         }
   11590              :                       default:;
   11591              :                       }
   11592              :                     break;
   11593              :                   }
   11594              :                 default:;
   11595              :                 }
   11596              :               break;
   11597              :             }
   11598              :           default:;
   11599              :           }
   11600              :         break;
   11601              :       }
   11602              :     default:;
   11603              :     }
   11604              :   return NULL_TREE;
   11605              : }
   11606              : #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.