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: 47.3 % 7360 3481
Test Date: 2026-05-30 15:37:04 Functions: 71.6 % 67 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    160175258 : tree_truth_valued_p (tree t)
      11              : {
      12    160175258 :   const tree type = TREE_TYPE (t);
      13    160175258 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
      14    160175258 :   if (TREE_SIDE_EFFECTS (t)) return false;
      15    155134503 :   {
      16    155134503 :     tree captures[1] ATTRIBUTE_UNUSED = { t };
      17    155134503 :     if (INTEGRAL_TYPE_P (type) && TYPE_PRECISION (type) == 1
      18              : )
      19              :       {
      20      5719943 :         {
      21      5719943 :           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 20, __FILE__, __LINE__, false);
      22      5719943 :           return true;
      23              :         }
      24              :       }
      25              :   }
      26    149414560 :   switch (TREE_CODE (t))
      27              :     {
      28          817 :     case LT_EXPR:
      29          817 :       {
      30          817 :         tree _p0 = TREE_OPERAND (t, 0);
      31          817 :         tree _p1 = TREE_OPERAND (t, 1);
      32          817 :         {
      33          817 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
      34          817 :           {
      35          817 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
      36          817 :             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        11673 :         break;
      53              :       }
      54        11673 :     case EQ_EXPR:
      55        11673 :       {
      56        11673 :         tree _p0 = TREE_OPERAND (t, 0);
      57        11673 :         tree _p1 = TREE_OPERAND (t, 1);
      58        11673 :         {
      59        11673 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
      60        11673 :           {
      61        11673 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
      62        11673 :             return true;
      63              :           }
      64              :         }
      65         4445 :         break;
      66              :       }
      67         4445 :     case NE_EXPR:
      68         4445 :       {
      69         4445 :         tree _p0 = TREE_OPERAND (t, 0);
      70         4445 :         tree _p1 = TREE_OPERAND (t, 1);
      71         4445 :         {
      72         4445 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
      73         4445 :           {
      74         4445 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
      75         4445 :             return true;
      76              :           }
      77              :         }
      78          377 :         break;
      79              :       }
      80          377 :     case GE_EXPR:
      81          377 :       {
      82          377 :         tree _p0 = TREE_OPERAND (t, 0);
      83          377 :         tree _p1 = TREE_OPERAND (t, 1);
      84          377 :         {
      85          377 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
      86          377 :           {
      87          377 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
      88          377 :             return true;
      89              :           }
      90              :         }
      91       222399 :         break;
      92              :       }
      93       222399 :     case GT_EXPR:
      94       222399 :       {
      95       222399 :         tree _p0 = TREE_OPERAND (t, 0);
      96       222399 :         tree _p1 = TREE_OPERAND (t, 1);
      97       222399 :         {
      98       222399 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
      99       222399 :           {
     100       222399 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
     101       222399 :             return true;
     102              :           }
     103              :         }
     104       127719 :         break;
     105              :       }
     106       127719 :     case UNORDERED_EXPR:
     107       127719 :       {
     108       127719 :         tree _p0 = TREE_OPERAND (t, 0);
     109       127719 :         tree _p1 = TREE_OPERAND (t, 1);
     110       127719 :         {
     111       127719 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
     112       127719 :           {
     113       127719 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
     114       127719 :             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           70 :         break;
     131              :       }
     132           70 :     case UNLT_EXPR:
     133           70 :       {
     134           70 :         tree _p0 = TREE_OPERAND (t, 0);
     135           70 :         tree _p1 = TREE_OPERAND (t, 1);
     136           70 :         {
     137           70 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
     138           70 :           {
     139           70 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
     140           70 :             return true;
     141              :           }
     142              :         }
     143         1157 :         break;
     144              :       }
     145         1157 :     case UNLE_EXPR:
     146         1157 :       {
     147         1157 :         tree _p0 = TREE_OPERAND (t, 0);
     148         1157 :         tree _p1 = TREE_OPERAND (t, 1);
     149         1157 :         {
     150         1157 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
     151         1157 :           {
     152         1157 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
     153         1157 :             return true;
     154              :           }
     155              :         }
     156           70 :         break;
     157              :       }
     158           70 :     case UNGT_EXPR:
     159           70 :       {
     160           70 :         tree _p0 = TREE_OPERAND (t, 0);
     161           70 :         tree _p1 = TREE_OPERAND (t, 1);
     162           70 :         {
     163           70 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
     164           70 :           {
     165           70 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
     166           70 :             return true;
     167              :           }
     168              :         }
     169           70 :         break;
     170              :       }
     171           70 :     case UNGE_EXPR:
     172           70 :       {
     173           70 :         tree _p0 = TREE_OPERAND (t, 0);
     174           70 :         tree _p1 = TREE_OPERAND (t, 1);
     175           70 :         {
     176           70 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
     177           70 :           {
     178           70 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
     179           70 :             return true;
     180              :           }
     181              :         }
     182           84 :         break;
     183              :       }
     184           84 :     case UNEQ_EXPR:
     185           84 :       {
     186           84 :         tree _p0 = TREE_OPERAND (t, 0);
     187           84 :         tree _p1 = TREE_OPERAND (t, 1);
     188           84 :         {
     189           84 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
     190           84 :           {
     191           84 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
     192           84 :             return true;
     193              :           }
     194              :         }
     195           24 :         break;
     196              :       }
     197           24 :     case LTGT_EXPR:
     198           24 :       {
     199           24 :         tree _p0 = TREE_OPERAND (t, 0);
     200           24 :         tree _p1 = TREE_OPERAND (t, 1);
     201           24 :         {
     202           24 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
     203           24 :           {
     204           24 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
     205           24 :             return true;
     206              :           }
     207              :         }
     208           96 :         break;
     209              :       }
     210           96 :     case TRUTH_AND_EXPR:
     211           96 :       {
     212           96 :         tree _p0 = TREE_OPERAND (t, 0);
     213           96 :         tree _p1 = TREE_OPERAND (t, 1);
     214           96 :         {
     215           96 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
     216           96 :           {
     217           96 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
     218           96 :             return true;
     219              :           }
     220              :         }
     221          512 :         break;
     222              :       }
     223          512 :     case TRUTH_ANDIF_EXPR:
     224          512 :       {
     225          512 :         tree _p0 = TREE_OPERAND (t, 0);
     226          512 :         tree _p1 = TREE_OPERAND (t, 1);
     227          512 :         {
     228          512 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
     229          512 :           {
     230          512 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
     231          512 :             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         1401 :         break;
     248              :       }
     249         1401 :     case TRUTH_ORIF_EXPR:
     250         1401 :       {
     251         1401 :         tree _p0 = TREE_OPERAND (t, 0);
     252         1401 :         tree _p1 = TREE_OPERAND (t, 1);
     253         1401 :         {
     254         1401 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
     255         1401 :           {
     256         1401 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 21, __FILE__, __LINE__, false);
     257         1401 :             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       474505 :         break;
     274              :       }
     275       474505 :     case TRUTH_NOT_EXPR:
     276       474505 :       {
     277       474505 :         tree _p0 = TREE_OPERAND (t, 0);
     278       474505 :         {
     279       474505 :           tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
     280       474505 :           {
     281       474505 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 22, __FILE__, __LINE__, false);
     282       474505 :             return true;
     283              :           }
     284              :         }
     285              :         break;
     286              :       }
     287              :     default:;
     288              :     }
     289              :   return false;
     290              : }
     291              : 
     292              : tree
     293            0 : generic_simplify_41 (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 enum tree_code ARG_UNUSED (op))
     296              : {
     297            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     298            0 :   if (INTEGRAL_TYPE_P (type)
     299            0 :  && tree_int_cst_sgn (captures[5]) > 0
     300            0 :  && (tree_nonzero_bits (captures[0]) & tree_nonzero_bits (captures[4])) == 0
     301              : )
     302              :     {
     303            0 :       {
     304            0 :  tree t = type;
     305            0 :  if (!TYPE_OVERFLOW_WRAPS (t))
     306            0 :  t = unsigned_type_for (t);
     307            0 :  wide_int wone = wi::one (TYPE_PRECISION (type));
     308            0 :  wide_int c = wi::add (wi::to_wide (captures[3]),
     309            0 :  wi::lshift (wone, wi::to_wide (captures[5])));
     310            0 :           if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail118;
     311            0 :           if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail118;
     312            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail118;
     313            0 :           {
     314            0 :             tree res_op0;
     315            0 :             {
     316            0 :               tree _o1[2], _r1;
     317            0 :               {
     318            0 :                 tree _o2[1], _r2;
     319            0 :                 _o2[0] = captures[2];
     320            0 :                 if (TREE_TYPE (_o2[0]) != t)
     321              :                   {
     322            0 :                     _r2 = fold_build1_loc (loc, NOP_EXPR, t, _o2[0]);
     323              :                   }
     324              :                 else
     325              :                   _r2 = _o2[0];
     326            0 :                 _o1[0] = _r2;
     327              :               }
     328            0 :               _o1[1] =  wide_int_to_tree (t, c);
     329            0 :               _r1 = fold_build2_loc (loc, MULT_EXPR, t, _o1[0], _o1[1]);
     330            0 :               res_op0 = _r1;
     331              :             }
     332            0 :             tree _r;
     333            0 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
     334            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 89, __FILE__, __LINE__, true);
     335            0 :             return _r;
     336              :           }
     337            0 : next_after_fail118:;
     338            0 :       }
     339              :     }
     340              :   return NULL_TREE;
     341              : }
     342              : 
     343              : tree
     344           11 : generic_simplify_53 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     345              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     346              :  const combined_fn ARG_UNUSED (PARITY))
     347              : {
     348           11 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     349           11 :   if (types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[3]))
     350              : )
     351              :     {
     352           10 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail132;
     353           10 :       {
     354           10 :         tree res_op0;
     355           10 :         {
     356           10 :           tree _o1[2], _r1;
     357           10 :           _o1[0] = captures[1];
     358           10 :           _o1[1] = captures[3];
     359           10 :           _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     360           10 :           res_op0 = _r1;
     361              :         }
     362           10 :         tree _r;
     363           10 :         _r = maybe_build_call_expr_loc (loc, PARITY, type, 1, res_op0);
     364           10 :         if (!_r)
     365            0 :           goto next_after_fail132;
     366           10 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 100, __FILE__, __LINE__, true);
     367           10 :         return _r;
     368              :       }
     369              : next_after_fail132:;
     370              :     }
     371              :   else
     372              :     {
     373            2 :       if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
     374            2 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[3]))
     375              : )
     376              :         {
     377            1 :           {
     378            1 :  tree utype = TREE_TYPE (captures[1]);
     379            1 :  if (TYPE_PRECISION (utype) < TYPE_PRECISION (TREE_TYPE (captures[3])))
     380            1 :  utype = TREE_TYPE (captures[3]);
     381            1 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail133;
     382            1 :               {
     383            1 :                 tree res_op0;
     384            1 :                 {
     385            1 :                   tree _o1[2], _r1;
     386            1 :                   {
     387            1 :                     tree _o2[1], _r2;
     388            1 :                     _o2[0] = captures[1];
     389            1 :                     if (TREE_TYPE (_o2[0]) != utype)
     390              :                       {
     391            1 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
     392              :                       }
     393              :                     else
     394              :                       _r2 = _o2[0];
     395            1 :                     _o1[0] = _r2;
     396              :                   }
     397            1 :                   {
     398            1 :                     tree _o2[1], _r2;
     399            1 :                     _o2[0] = captures[3];
     400            1 :                     if (TREE_TYPE (_o2[0]) != utype)
     401              :                       {
     402            0 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
     403              :                       }
     404              :                     else
     405              :                       _r2 = _o2[0];
     406            1 :                     _o1[1] = _r2;
     407              :                   }
     408            1 :                   _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     409            1 :                   res_op0 = _r1;
     410              :                 }
     411            1 :                 tree _r;
     412            1 :                 _r = maybe_build_call_expr_loc (loc, PARITY, type, 1, res_op0);
     413            1 :                 if (!_r)
     414            1 :                   goto next_after_fail133;
     415            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 101, __FILE__, __LINE__, true);
     416            0 :                 return _r;
     417              :               }
     418              : next_after_fail133:;
     419              :           }
     420              :         }
     421              :     }
     422              :   return NULL_TREE;
     423              : }
     424              : 
     425              : tree
     426       113467 : generic_simplify_70 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     427              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     428              : {
     429       113467 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     430       113467 :   if (!TYPE_SATURATING (type)
     431              : )
     432              :     {
     433       113467 :       if ((!FLOAT_TYPE_P (type) || flag_associative_math)
     434       226934 :  && !FIXED_POINT_TYPE_P (type)
     435              : )
     436              :         {
     437       113467 :           if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
     438              : )
     439              :             {
     440       112607 :               if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail159;
     441       112607 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail159;
     442       112607 :               {
     443       112607 :                 tree res_op0;
     444       112607 :                 {
     445       112607 :                   tree _o1[1], _r1;
     446       112607 :                   _o1[0] = captures[0];
     447       112607 :                   if (TREE_TYPE (_o1[0]) != type)
     448              :                     {
     449       109948 :                       _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
     450              :                     }
     451              :                   else
     452              :                     _r1 = _o1[0];
     453       112607 :                   res_op0 = _r1;
     454              :                 }
     455       112607 :                 tree _r;
     456       112607 :                 _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
     457       112607 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 127, __FILE__, __LINE__, true);
     458       112607 :                 return _r;
     459              :               }
     460              : next_after_fail159:;
     461              :             }
     462              :         }
     463              :     }
     464              :   return NULL_TREE;
     465              : }
     466              : 
     467              : tree
     468            0 : generic_simplify_77 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     469              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     470              : {
     471            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     472            0 :   if (VECTOR_TYPE_P (type)
     473            0 :  && known_eq (TYPE_VECTOR_SUBPARTS (type),
     474              :  TYPE_VECTOR_SUBPARTS (TREE_TYPE (captures[3])))
     475            0 :  && (TYPE_MODE (TREE_TYPE (type))
     476            0 :  == TYPE_MODE (TREE_TYPE (TREE_TYPE (captures[3]))))
     477              : )
     478              :     {
     479            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail167;
     480            0 :       {
     481            0 :         tree res_op0;
     482            0 :         res_op0 = captures[0];
     483            0 :         tree res_op1;
     484            0 :         {
     485            0 :           tree _o1[1], _r1;
     486            0 :           {
     487            0 :             tree _o2[3], _r2;
     488            0 :             _o2[0] = captures[2];
     489            0 :             {
     490            0 :               tree _o3[1], _r3;
     491            0 :               _o3[0] = captures[3];
     492            0 :               _r3 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o3[0]), _o3[0]);
     493            0 :               _o2[1] = _r3;
     494              :             }
     495            0 :             _o2[2] = captures[4];
     496            0 :             _r2 = fold_build3_loc (loc, VEC_COND_EXPR, TREE_TYPE (_o2[1]), _o2[0], _o2[1], _o2[2]);
     497            0 :             _o1[0] = _r2;
     498              :           }
     499            0 :           if (TREE_TYPE (_o1[0]) != type)
     500              :             {
     501            0 :               _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
     502              :             }
     503              :           else
     504              :             _r1 = _o1[0];
     505            0 :           res_op1 = _r1;
     506              :         }
     507            0 :         tree _r;
     508            0 :         _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
     509            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 135, __FILE__, __LINE__, true);
     510            0 :         return _r;
     511              :       }
     512            0 : next_after_fail167:;
     513              :     }
     514              :   return NULL_TREE;
     515              : }
     516              : 
     517              : tree
     518           85 : 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           85 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     522           85 :   if (INTEGRAL_TYPE_P (type)
     523           85 :  || (VECTOR_INTEGER_TYPE_P (type)
     524              :  && ((optimize_vectors_before_lowering_p ()
     525            1 :  && TREE_CODE (TYPE_SIZE (type)) == INTEGER_CST)
     526            0 :  || target_supports_op_p (type, TRUNC_MOD_EXPR,
     527              :  optab_vector)))
     528              : )
     529              :     {
     530           85 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail177;
     531           85 :       {
     532           85 :         tree res_op0;
     533           85 :         {
     534           85 :           tree _o1[2], _r1;
     535           85 :           _o1[0] = captures[0];
     536           85 :           _o1[1] = captures[1];
     537           85 :           _r1 = fold_build2_loc (loc, TRUNC_MOD_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     538           85 :           res_op0 = _r1;
     539              :         }
     540           85 :         tree _r;
     541           85 :         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
     542           85 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 145, __FILE__, __LINE__, true);
     543           85 :         return _r;
     544              :       }
     545            0 : next_after_fail177:;
     546              :     }
     547              :   return NULL_TREE;
     548              : }
     549              : 
     550              : tree
     551            1 : generic_simplify_93 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     552              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     553              : {
     554            1 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     555            1 :   if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
     556            1 :  && tree_nop_conversion_p (type, TREE_TYPE (captures[3]))
     557              : )
     558              :     {
     559            1 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail184;
     560            1 :       {
     561            1 :         tree res_op0;
     562            1 :         {
     563            1 :           tree _o1[2], _r1;
     564            1 :           {
     565            1 :             tree _o2[1], _r2;
     566            1 :             _o2[0] = captures[3];
     567            1 :             _r2 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
     568            1 :             _o1[0] = _r2;
     569              :           }
     570            1 :           _o1[1] = captures[0];
     571            1 :           _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     572            1 :           res_op0 = _r1;
     573              :         }
     574            1 :         tree _r;
     575            1 :         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
     576            1 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 152, __FILE__, __LINE__, true);
     577            1 :         return _r;
     578              :       }
     579            0 : next_after_fail184:;
     580              :     }
     581              :   return NULL_TREE;
     582              : }
     583              : 
     584              : tree
     585          668 : generic_simplify_101 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     586              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     587              : {
     588          668 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     589          668 :   if (!TYPE_SATURATING (type)
     590              : )
     591              :     {
     592          668 :       if ((!FLOAT_TYPE_P (type) || flag_associative_math)
     593         1336 :  && !FIXED_POINT_TYPE_P (type)
     594              : )
     595              :         {
     596          668 :           if (!ANY_INTEGRAL_TYPE_P (type) || TYPE_OVERFLOW_WRAPS (type)
     597              : )
     598              :             {
     599           28 :               if (!CONSTANT_CLASS_P (captures[2])
     600              : )
     601              :                 {
     602           28 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail194;
     603           28 :                   {
     604           28 :                     tree res_op0;
     605           28 :                     {
     606           28 :                       tree _o1[1], _r1;
     607           28 :                       _o1[0] = captures[2];
     608           28 :                       if (TREE_TYPE (_o1[0]) != type)
     609              :                         {
     610           28 :                           _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
     611              :                         }
     612              :                       else
     613              :                         _r1 = _o1[0];
     614           28 :                       res_op0 = _r1;
     615              :                     }
     616           28 :                     tree res_op1;
     617           28 :                     {
     618           28 :                       tree _o1[2], _r1;
     619           28 :                       _o1[0] = captures[0];
     620           28 :                       {
     621           28 :                         tree _o2[1], _r2;
     622           28 :                         _o2[0] = captures[1];
     623           28 :                         if (TREE_TYPE (_o2[0]) != type)
     624              :                           {
     625           28 :                             _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o2[0]);
     626              :                           }
     627              :                         else
     628              :                           _r2 = _o2[0];
     629           28 :                         _o1[1] = _r2;
     630              :                       }
     631           28 :                       _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     632           28 :                       if (EXPR_P (_r1))
     633            0 :                         goto next_after_fail194;
     634           28 :                       res_op1 = _r1;
     635              :                     }
     636           28 :                     tree _r;
     637           28 :                     _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
     638           28 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 161, __FILE__, __LINE__, true);
     639           28 :                     return _r;
     640              :                   }
     641              : next_after_fail194:;
     642              :                 }
     643              :             }
     644              :           else
     645              :             {
     646         1280 :               if (!ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
     647         1280 :  || TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2]))
     648              : )
     649              :                 {
     650            1 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail195;
     651            1 :                   {
     652            1 :                     tree res_op0;
     653            1 :                     {
     654            1 :                       tree _o1[2], _r1;
     655            1 :                       _o1[0] = captures[2];
     656            1 :                       {
     657            1 :                         tree _o2[2], _r2;
     658            1 :                         {
     659            1 :                           tree _o3[1], _r3;
     660            1 :                           _o3[0] = captures[0];
     661            1 :                           if (TREE_TYPE (_o3[0]) != TREE_TYPE (_o1[0]))
     662              :                             {
     663            1 :                               _r3 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, TREE_TYPE (_o1[0]), _o3[0]);
     664              :                             }
     665              :                           else
     666              :                             _r3 = _o3[0];
     667            1 :                           _o2[0] = _r3;
     668              :                         }
     669            1 :                         _o2[1] = captures[1];
     670            1 :                         _r2 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
     671            1 :                         if (EXPR_P (_r2))
     672            0 :                           goto next_after_fail195;
     673            1 :                         _o1[1] = _r2;
     674              :                       }
     675            1 :                       _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     676            1 :                       res_op0 = _r1;
     677              :                     }
     678            1 :                     tree _r;
     679            1 :                     _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
     680            1 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 162, __FILE__, __LINE__, true);
     681            1 :                     return _r;
     682              :                   }
     683              : next_after_fail195:;
     684              :                 }
     685              :               else
     686              :                 {
     687          639 :                   if (types_match (type, captures[2]) && !TYPE_OVERFLOW_SANITIZED (type)
     688              : )
     689              :                     {
     690          630 :                       {
     691          630 :  tree cst = const_binop (MINUS_EXPR, type, captures[0], captures[1]);
     692          630 :                           if (cst && !TREE_OVERFLOW (cst)
     693              : )
     694              :                             {
     695          630 :                               if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail196;
     696          630 :                               if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail196;
     697          630 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail196;
     698          630 :                               {
     699          630 :                                 tree res_op0;
     700          630 :                                 res_op0 =  cst;
     701          630 :                                 tree res_op1;
     702          630 :                                 res_op1 = captures[2];
     703          630 :                                 tree _r;
     704          630 :                                 _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
     705          630 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 163, __FILE__, __LINE__, true);
     706          630 :                                 return _r;
     707              :                               }
     708              : next_after_fail196:;
     709              :                             }
     710              :                       }
     711              :                     }
     712              :                 }
     713              :             }
     714              :         }
     715              :     }
     716              :   return NULL_TREE;
     717              : }
     718              : 
     719              : tree
     720            1 : generic_simplify_130 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     721              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     722              : {
     723            1 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     724            1 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail227;
     725            1 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail227;
     726            1 :   {
     727            1 :     tree _r;
     728            1 :     _r = captures[0];
     729            1 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 189, __FILE__, __LINE__, true);
     730              :     return _r;
     731              :   }
     732              : next_after_fail227:;
     733              :   return NULL_TREE;
     734              : }
     735              : 
     736              : tree
     737            0 : generic_simplify_139 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     738              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     739              :  const enum tree_code ARG_UNUSED (op))
     740              : {
     741            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     742            0 :   if (tree_nop_conversion_p (type, TREE_TYPE (captures[3]))
     743            0 :  && tree_nop_conversion_p (type, TREE_TYPE (captures[6]))
     744              : )
     745              :     {
     746            0 :       if (single_use (captures[4]) && single_use (captures[5])
     747              : )
     748              :         {
     749            0 :           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail238;
     750            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail238;
     751            0 :           {
     752            0 :             tree res_op0;
     753            0 :             res_op0 = captures[0];
     754            0 :             tree res_op1;
     755            0 :             {
     756            0 :               tree _o1[1], _r1;
     757            0 :               _o1[0] = captures[6];
     758            0 :               if (TREE_TYPE (_o1[0]) != type)
     759              :                 {
     760            0 :                   _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
     761              :                 }
     762              :               else
     763              :                 _r1 = _o1[0];
     764            0 :               res_op1 = _r1;
     765              :             }
     766            0 :             tree _r;
     767            0 :             _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
     768            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 194, __FILE__, __LINE__, true);
     769            0 :             return _r;
     770              :           }
     771              : next_after_fail238:;
     772              :         }
     773              :       else
     774              :         {
     775              :           if (single_use (captures[0]) && single_use (captures[1])
     776              : )
     777              :             {
     778              :               if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail239;
     779              :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail239;
     780              :               {
     781              :                 tree res_op0;
     782              :                 {
     783              :                   tree _o1[1], _r1;
     784              :                   _o1[0] = captures[3];
     785              :                   if (TREE_TYPE (_o1[0]) != type)
     786              :                     {
     787              :                       _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
     788              :                     }
     789              :                   else
     790              :                     _r1 = _o1[0];
     791              :                   res_op0 = _r1;
     792              :                 }
     793              :                 tree res_op1;
     794              :                 res_op1 = captures[4];
     795              :                 tree _r;
     796              :                 _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
     797              :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 195, __FILE__, __LINE__, true);
     798              :                 return _r;
     799              :               }
     800              : next_after_fail239:;
     801              :             }
     802              :         }
     803              :     }
     804              :   return NULL_TREE;
     805              : }
     806              : 
     807              : tree
     808            4 : generic_simplify_154 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     809              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     810              : {
     811            4 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     812            4 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail259;
     813            4 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail259;
     814            4 :   {
     815            4 :     tree _r;
     816            4 :     _r = captures[2];
     817            4 :     if (TREE_SIDE_EFFECTS (captures[1]))
     818            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
     819            4 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 208, __FILE__, __LINE__, true);
     820              :     return _r;
     821              :   }
     822              : next_after_fail259:;
     823              :   return NULL_TREE;
     824              : }
     825              : 
     826              : tree
     827            3 : generic_simplify_157 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     828              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     829              :  const enum tree_code ARG_UNUSED (code2),
     830              :  const enum tree_code ARG_UNUSED (code1))
     831              : {
     832            3 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     833            3 :   if ((TREE_CODE (captures[2]) == INTEGER_CST
     834            0 :  && TREE_CODE (captures[5]) == INTEGER_CST)
     835            3 :  || ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
     836            3 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[2])))
     837            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[2])))
     838            3 :  && bitwise_equal_p (captures[2], captures[5]))
     839              : )
     840              :     {
     841            3 :       {
     842            3 :  bool one_before = false;
     843            3 :  bool one_after = false;
     844            3 :  int cmp = 0;
     845            3 :  bool allbits = true;
     846            3 :  if (TREE_CODE (captures[2]) == INTEGER_CST
     847            0 :  && TREE_CODE (captures[5]) == INTEGER_CST)
     848              :  {
     849            0 :  allbits = TYPE_PRECISION (TREE_TYPE (captures[2])) <= TYPE_PRECISION (TREE_TYPE (captures[5]));
     850            0 :  auto t1 = wi::to_wide (fold_convert (TREE_TYPE (captures[5]), captures[2]));
     851            0 :  auto t2 = wi::to_wide (captures[5]);
     852            0 :  cmp = wi::cmp (t1, t2, TYPE_SIGN (TREE_TYPE (captures[5])));
     853            0 :  if (cmp < 0
     854            0 :  && t1 == t2 - 1)
     855              :  one_before = true;
     856            0 :  if (cmp > 0
     857            0 :  && t1 == t2 + 1)
     858              :  one_after = true;
     859              :  }
     860            3 :  bool val;
     861            3 :  switch (code2)
     862              :  {
     863            0 :  case EQ_EXPR: val = (cmp == 0); break;
     864            0 :  case NE_EXPR: val = (cmp != 0); break;
     865            0 :  case LT_EXPR: val = (cmp < 0); break;
     866            3 :  case GT_EXPR: val = (cmp > 0); break;
     867            0 :  case LE_EXPR: val = (cmp <= 0); break;
     868            0 :  case GE_EXPR: val = (cmp >= 0); break;
     869            0 :  default: gcc_unreachable ();
     870              :  }
     871            3 :           if (code1 == EQ_EXPR && val
     872              : )
     873              :             {
     874            0 :               if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail262;
     875            0 :               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail262;
     876            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail262;
     877            0 :               {
     878            0 :                 tree _r;
     879            0 :                 _r = captures[3];
     880            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 211, __FILE__, __LINE__, true);
     881            0 :                 return _r;
     882              :               }
     883              : next_after_fail262:;
     884              :             }
     885              :           else
     886              :             {
     887            3 :               if (code1 == NE_EXPR && val && allbits
     888              : )
     889              :                 {
     890            0 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail263;
     891            0 :                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail263;
     892            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail263;
     893            0 :                   {
     894            0 :                     tree _r;
     895            0 :                     _r =  constant_boolean_node (true, type);
     896            0 :                     if (TREE_SIDE_EFFECTS (captures[1]))
     897            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
     898            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 212, __FILE__, __LINE__, true);
     899            0 :                     return _r;
     900              :                   }
     901              : next_after_fail263:;
     902              :                 }
     903              :               else
     904              :                 {
     905            3 :                   if (code1 == NE_EXPR && !val && allbits
     906              : )
     907              :                     {
     908            0 :                       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail264;
     909            0 :                       if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail264;
     910            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail264;
     911            0 :                       {
     912            0 :                         tree _r;
     913            0 :                         _r = captures[0];
     914            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 213, __FILE__, __LINE__, true);
     915            0 :                         return _r;
     916              :                       }
     917              : next_after_fail264:;
     918              :                     }
     919              :                   else
     920              :                     {
     921            3 :                       if (code1 == EQ_EXPR
     922            3 :  && code2 == GT_EXPR
     923            3 :  && cmp == 0
     924            3 :  && allbits
     925            6 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
     926            3 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GE_EXPR))
     927            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
     928              : )
     929              :                         {
     930            3 :                           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail265;
     931            3 :                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail265;
     932            3 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail265;
     933            3 :                           {
     934            3 :                             tree res_op0;
     935            3 :                             res_op0 = captures[4];
     936            3 :                             tree res_op1;
     937            3 :                             res_op1 = captures[5];
     938            3 :                             tree _r;
     939            3 :                             _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
     940            3 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 214, __FILE__, __LINE__, true);
     941            3 :                             return _r;
     942              :                           }
     943              : next_after_fail265:;
     944              :                         }
     945              :                       else
     946              :                         {
     947            0 :                           if (code1 == EQ_EXPR
     948            0 :  && code2 == LT_EXPR
     949            0 :  && cmp == 0
     950            0 :  && allbits
     951            0 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
     952            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LE_EXPR))
     953            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
     954              : )
     955              :                             {
     956            0 :                               if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail266;
     957            0 :                               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail266;
     958            0 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail266;
     959            0 :                               {
     960            0 :                                 tree res_op0;
     961            0 :                                 res_op0 = captures[4];
     962            0 :                                 tree res_op1;
     963            0 :                                 res_op1 = captures[5];
     964            0 :                                 tree _r;
     965            0 :                                 _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
     966            0 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 215, __FILE__, __LINE__, true);
     967            0 :                                 return _r;
     968              :                               }
     969              : next_after_fail266:;
     970              :                             }
     971              :                           else
     972              :                             {
     973            0 :                               if (code1 == EQ_EXPR
     974            0 :  && code2 == GE_EXPR
     975              :  && one_before
     976            0 :  && allbits
     977            0 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
     978            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GE_EXPR))
     979            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
     980              : )
     981              :                                 {
     982            0 :                                   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail267;
     983            0 :                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail267;
     984            0 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail267;
     985            0 :                                   {
     986            0 :                                     tree res_op0;
     987            0 :                                     res_op0 = captures[4];
     988            0 :                                     tree res_op1;
     989            0 :                                     {
     990            0 :                                       tree _o1[1], _r1;
     991            0 :                                       _o1[0] = captures[2];
     992            0 :                                       if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
     993              :                                         {
     994            0 :                                           _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
     995              :                                         }
     996              :                                       else
     997              :                                         _r1 = _o1[0];
     998            0 :                                       res_op1 = _r1;
     999              :                                     }
    1000            0 :                                     tree _r;
    1001            0 :                                     _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
    1002            0 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 216, __FILE__, __LINE__, true);
    1003            0 :                                     return _r;
    1004              :                                   }
    1005              : next_after_fail267:;
    1006              :                                 }
    1007              :                               else
    1008              :                                 {
    1009            0 :                                   if (code1 == EQ_EXPR
    1010            0 :  && code2 == LE_EXPR
    1011              :  && one_after
    1012            0 :  && allbits
    1013            0 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
    1014            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LE_EXPR))
    1015            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
    1016              : )
    1017              :                                     {
    1018            0 :                                       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail268;
    1019            0 :                                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail268;
    1020            0 :                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail268;
    1021            0 :                                       {
    1022            0 :                                         tree res_op0;
    1023            0 :                                         res_op0 = captures[4];
    1024            0 :                                         tree res_op1;
    1025            0 :                                         {
    1026            0 :                                           tree _o1[1], _r1;
    1027            0 :                                           _o1[0] = captures[2];
    1028            0 :                                           if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
    1029              :                                             {
    1030            0 :                                               _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
    1031              :                                             }
    1032              :                                           else
    1033              :                                             _r1 = _o1[0];
    1034            0 :                                           res_op1 = _r1;
    1035              :                                         }
    1036            0 :                                         tree _r;
    1037            0 :                                         _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
    1038            0 :                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 217, __FILE__, __LINE__, true);
    1039            0 :                                         return _r;
    1040              :                                       }
    1041              : next_after_fail268:;
    1042              :                                     }
    1043              :                                 }
    1044              :                             }
    1045              :                         }
    1046              :                     }
    1047              :                 }
    1048              :             }
    1049              :       }
    1050              :     }
    1051              :   return NULL_TREE;
    1052              : }
    1053              : 
    1054              : tree
    1055           12 : generic_simplify_200 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1056              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1057              :  const combined_fn ARG_UNUSED (TAN),
    1058              :  const combined_fn ARG_UNUSED (COS),
    1059              :  const combined_fn ARG_UNUSED (SIN))
    1060              : {
    1061           12 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1062           12 :   if (flag_unsafe_math_optimizations && canonicalize_math_p ()
    1063              : )
    1064              :     {
    1065           12 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail340;
    1066           12 :       {
    1067           12 :         tree res_op0;
    1068           12 :         res_op0 = captures[1];
    1069           12 :         tree _r;
    1070           12 :         _r = maybe_build_call_expr_loc (loc, SIN, type, 1, res_op0);
    1071           12 :         if (!_r)
    1072            0 :           goto next_after_fail340;
    1073           12 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 255, __FILE__, __LINE__, true);
    1074           12 :         return _r;
    1075              :       }
    1076              : next_after_fail340:;
    1077              :     }
    1078              :   return NULL_TREE;
    1079              : }
    1080              : 
    1081              : tree
    1082           64 : generic_simplify_205 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1083              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1084              :  const enum tree_code ARG_UNUSED (cmp))
    1085              : {
    1086           64 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1087          120 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    1088          120 :  && tree_expr_nonzero_p (captures[0])
    1089              : )
    1090              :     {
    1091           12 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail345;
    1092           12 :       {
    1093           12 :         tree _r;
    1094           12 :         _r =  constant_boolean_node (cmp != EQ_EXPR, type);
    1095           12 :         if (TREE_SIDE_EFFECTS (captures[0]))
    1096            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1097           12 :         if (TREE_SIDE_EFFECTS (captures[1]))
    1098            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1099           12 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 260, __FILE__, __LINE__, true);
    1100           12 :         return _r;
    1101              :       }
    1102            0 : next_after_fail345:;
    1103              :     }
    1104              :   return NULL_TREE;
    1105              : }
    1106              : 
    1107              : tree
    1108         9135 : generic_simplify_213 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1109              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1110              :  const enum tree_code ARG_UNUSED (neeq),
    1111              :  const enum tree_code ARG_UNUSED (ltge))
    1112              : {
    1113         9135 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1114         9135 :   {
    1115         9135 :  tree itype = signed_type_for (TREE_TYPE (captures[1]));
    1116        18057 :       if (wi::to_wide (captures[2]) == element_precision (itype) - 1
    1117         9135 :  && (!VECTOR_TYPE_P (itype)
    1118           13 :  || (cfun
    1119           13 :  && cfun->after_inlining
    1120            5 :  && VECTOR_BOOLEAN_TYPE_P (type)
    1121            2 :  && (expand_vec_cmp_expr_p (itype, type, ltge)
    1122            2 :  || !expand_vec_cmp_expr_p (TREE_TYPE (captures[0]),
    1123              :  type, neeq))))
    1124              : )
    1125              :         {
    1126          213 :           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail356;
    1127          213 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail356;
    1128          213 :           {
    1129          213 :             tree res_op0;
    1130          213 :             {
    1131          213 :               tree _o1[1], _r1;
    1132          213 :               _o1[0] = captures[1];
    1133          213 :               if (TREE_TYPE (_o1[0]) != itype)
    1134              :                 {
    1135          161 :                   _r1 = fold_build1_loc (loc, NOP_EXPR, itype, _o1[0]);
    1136              :                 }
    1137              :               else
    1138              :                 _r1 = _o1[0];
    1139          213 :               res_op0 = _r1;
    1140              :             }
    1141          213 :             tree res_op1;
    1142          213 :             res_op1 =  build_zero_cst (itype);
    1143          213 :             tree _r;
    1144          213 :             _r = fold_build2_loc (loc, ltge, type, res_op0, res_op1);
    1145          213 :             if (TREE_SIDE_EFFECTS (captures[2]))
    1146            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1147          213 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 270, __FILE__, __LINE__, true);
    1148          213 :             return _r;
    1149              :           }
    1150              : next_after_fail356:;
    1151              :         }
    1152              :   }
    1153              :   return NULL_TREE;
    1154              : }
    1155              : 
    1156              : tree
    1157           21 : generic_simplify_226 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1158              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1159              :  const enum tree_code ARG_UNUSED (cmp))
    1160              : {
    1161           21 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1162           21 :   if (TREE_INT_CST_LOW (captures[1]) & 1
    1163              : )
    1164              :     {
    1165            2 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail382;
    1166            2 :       {
    1167            2 :         tree _r;
    1168            2 :         _r =  constant_boolean_node (cmp == NE_EXPR, type);
    1169            2 :         if (TREE_SIDE_EFFECTS (captures[0]))
    1170            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1171            2 :         if (TREE_SIDE_EFFECTS (captures[1]))
    1172            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1173            2 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 295, __FILE__, __LINE__, true);
    1174            2 :         return _r;
    1175              :       }
    1176            0 : next_after_fail382:;
    1177              :     }
    1178              :   return NULL_TREE;
    1179              : }
    1180              : 
    1181              : tree
    1182           45 : generic_simplify_232 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1183              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1184              :  const enum tree_code ARG_UNUSED (cmp))
    1185              : {
    1186           45 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1187           45 :   if (TYPE_UNSIGNED (TREE_TYPE (captures[0]))
    1188              : )
    1189              :     {
    1190            0 :       {
    1191            0 :  tree utype = unsigned_type_for (TREE_TYPE (captures[0]));
    1192            0 :           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail390;
    1193            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail390;
    1194            0 :           {
    1195            0 :             tree res_op0;
    1196            0 :             {
    1197            0 :               tree _o1[2], _r1;
    1198            0 :               {
    1199            0 :                 tree _o2[1], _r2;
    1200            0 :                 _o2[0] = captures[0];
    1201            0 :                 if (TREE_TYPE (_o2[0]) != utype)
    1202              :                   {
    1203            0 :                     _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
    1204              :                   }
    1205              :                 else
    1206              :                   _r2 = _o2[0];
    1207            0 :                 _o1[0] = _r2;
    1208              :               }
    1209            0 :               {
    1210            0 :                 tree _o2[1], _r2;
    1211            0 :                 _o2[0] = captures[1];
    1212            0 :                 if (TREE_TYPE (_o2[0]) != utype)
    1213              :                   {
    1214            0 :                     _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
    1215              :                   }
    1216              :                 else
    1217              :                   _r2 = _o2[0];
    1218            0 :                 _o1[1] = _r2;
    1219              :               }
    1220            0 :               _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1221            0 :               res_op0 = _r1;
    1222              :             }
    1223            0 :             tree res_op1;
    1224            0 :             res_op1 =  build_zero_cst (utype);
    1225            0 :             tree _r;
    1226            0 :             _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1227            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 303, __FILE__, __LINE__, true);
    1228            0 :             return _r;
    1229              :           }
    1230              : next_after_fail390:;
    1231              :       }
    1232              :     }
    1233              :   return NULL_TREE;
    1234              : }
    1235              : 
    1236              : tree
    1237          124 : generic_simplify_240 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1238              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1239              :  const enum tree_code ARG_UNUSED (rotate),
    1240              :  const enum tree_code ARG_UNUSED (invrot),
    1241              :  const enum tree_code ARG_UNUSED (cmp))
    1242              : {
    1243          124 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1244          124 :   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail408;
    1245          124 :   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail408;
    1246          124 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail408;
    1247          124 :   {
    1248          124 :     tree res_op0;
    1249          124 :     res_op0 = captures[0];
    1250          124 :     tree res_op1;
    1251          124 :     res_op1 =  const_binop (invrot, TREE_TYPE (captures[0]), captures[2], captures[1]);
    1252          124 :     tree _r;
    1253          124 :     _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1254          124 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 321, __FILE__, __LINE__, true);
    1255              :     return _r;
    1256              :   }
    1257              : next_after_fail408:;
    1258              :   return NULL_TREE;
    1259              : }
    1260              : 
    1261              : tree
    1262        25547 : generic_simplify_246 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1263              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1264              :  const enum tree_code ARG_UNUSED (cmp),
    1265              :  const enum tree_code ARG_UNUSED (icmp),
    1266              :  const enum tree_code ARG_UNUSED (ncmp))
    1267              : {
    1268        25547 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1269        25547 :   if (types_match (type, TREE_TYPE (captures[0]))
    1270              : )
    1271              :     {
    1272        24882 :       {
    1273        24882 :  enum tree_code ic = invert_tree_comparison
    1274        24882 :  (cmp, HONOR_NANS (captures[1]));
    1275        24882 :           if (ic == icmp
    1276              : )
    1277              :             {
    1278        24643 :               if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail414;
    1279        24643 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail414;
    1280        24643 :               {
    1281        24643 :                 tree res_op0;
    1282        24643 :                 res_op0 = captures[1];
    1283        24643 :                 tree res_op1;
    1284        24643 :                 res_op1 = captures[2];
    1285        24643 :                 tree _r;
    1286        24643 :                 _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
    1287        24643 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 327, __FILE__, __LINE__, true);
    1288        24643 :                 return _r;
    1289              :               }
    1290              : next_after_fail414:;
    1291              :             }
    1292              :           else
    1293              :             {
    1294          239 :               if (ic == ncmp
    1295              : )
    1296              :                 {
    1297            0 :                   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail415;
    1298            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail415;
    1299            0 :                   {
    1300            0 :                     tree res_op0;
    1301            0 :                     res_op0 = captures[1];
    1302            0 :                     tree res_op1;
    1303            0 :                     res_op1 = captures[2];
    1304            0 :                     tree _r;
    1305            0 :                     _r = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
    1306            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 328, __FILE__, __LINE__, true);
    1307            0 :                     return _r;
    1308              :                   }
    1309              : next_after_fail415:;
    1310              :                 }
    1311              :             }
    1312              :       }
    1313              :     }
    1314              :   return NULL_TREE;
    1315              : }
    1316              : 
    1317              : tree
    1318      6218298 : generic_simplify_256 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1319              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1320              :  const enum tree_code ARG_UNUSED (cmp))
    1321              : {
    1322      6218298 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1323      6218298 :   if (REAL_VALUE_MINUS_ZERO (TREE_REAL_CST (captures[1]))
    1324              : )
    1325              :     {
    1326         1708 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail430;
    1327         1708 :       {
    1328         1708 :         tree res_op0;
    1329         1708 :         res_op0 = captures[0];
    1330         1708 :         tree res_op1;
    1331         1708 :         res_op1 =  build_real (TREE_TYPE (captures[1]), dconst0);
    1332         1708 :         tree _r;
    1333         1708 :         _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1334         1708 :         if (TREE_SIDE_EFFECTS (captures[1]))
    1335            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1336         1708 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 341, __FILE__, __LINE__, true);
    1337         1708 :         return _r;
    1338              :       }
    1339            0 : next_after_fail430:;
    1340              :     }
    1341              :   else
    1342              :     {
    1343      6216590 :       if (TREE_CODE (captures[0]) == REAL_CST
    1344      6216590 :  && REAL_VALUE_MINUS_ZERO (TREE_REAL_CST (captures[0]))
    1345              : )
    1346              :         {
    1347            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail431;
    1348            0 :           {
    1349            0 :             tree res_op0;
    1350            0 :             res_op0 =  build_real (TREE_TYPE (captures[0]), dconst0);
    1351            0 :             tree res_op1;
    1352            0 :             res_op1 = captures[1];
    1353            0 :             tree _r;
    1354            0 :             _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1355            0 :             if (TREE_SIDE_EFFECTS (captures[0]))
    1356            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1357            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 342, __FILE__, __LINE__, true);
    1358            0 :             return _r;
    1359              :           }
    1360            0 : next_after_fail431:;
    1361              :         }
    1362              :       else
    1363              :         {
    1364      6216590 :           if (REAL_VALUE_ISNAN (TREE_REAL_CST (captures[1]))
    1365          834 :  && (cmp == EQ_EXPR || cmp == NE_EXPR || !flag_trapping_math)
    1366          258 :  && !tree_expr_signaling_nan_p (captures[1])
    1367      6216818 :  && !tree_expr_maybe_signaling_nan_p (captures[0])
    1368              : )
    1369              :             {
    1370          228 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail432;
    1371          228 :               {
    1372          228 :                 tree _r;
    1373          228 :                 _r =  constant_boolean_node (cmp == NE_EXPR, type);
    1374          228 :                 if (TREE_SIDE_EFFECTS (captures[0]))
    1375            6 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1376          228 :                 if (TREE_SIDE_EFFECTS (captures[1]))
    1377            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1378          228 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 343, __FILE__, __LINE__, true);
    1379          228 :                 return _r;
    1380              :               }
    1381            0 : next_after_fail432:;
    1382              :             }
    1383              :           else
    1384              :             {
    1385      6216362 :               if (TREE_CODE (captures[0]) == REAL_CST
    1386         2011 :  && REAL_VALUE_ISNAN (TREE_REAL_CST (captures[0]))
    1387         1817 :  && (cmp == EQ_EXPR || cmp == NE_EXPR || !flag_trapping_math)
    1388            0 :  && !tree_expr_signaling_nan_p (captures[0])
    1389      6216362 :  && !tree_expr_signaling_nan_p (captures[1])
    1390              : )
    1391              :                 {
    1392            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail433;
    1393            0 :                   {
    1394            0 :                     tree _r;
    1395            0 :                     _r =  constant_boolean_node (cmp == NE_EXPR, type);
    1396            0 :                     if (TREE_SIDE_EFFECTS (captures[0]))
    1397            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1398            0 :                     if (TREE_SIDE_EFFECTS (captures[1]))
    1399            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1400            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 344, __FILE__, __LINE__, true);
    1401            0 :                     return _r;
    1402              :                   }
    1403            0 : next_after_fail433:;
    1404              :                 }
    1405              :               else
    1406              :                 {
    1407      6216362 :                   if (REAL_VALUE_ISINF (TREE_REAL_CST (captures[1]))
    1408      6924315 :  && MODE_HAS_INFINITIES (TYPE_MODE (TREE_TYPE (captures[1])))
    1409              : )
    1410              :                     {
    1411       236012 :                       {
    1412       236012 :  REAL_VALUE_TYPE max;
    1413       236012 :  enum tree_code code = cmp;
    1414       236012 :  bool neg = REAL_VALUE_NEGATIVE (TREE_REAL_CST (captures[1]));
    1415       236012 :  if (neg)
    1416        33326 :  code = swap_tree_comparison (code);
    1417       236012 :                           if (code == GT_EXPR
    1418       236012 :  && !(HONOR_NANS (captures[0]) && flag_trapping_math)
    1419              : )
    1420              :                             {
    1421            7 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail434;
    1422            7 :                               {
    1423            7 :                                 tree _r;
    1424            7 :                                 _r =  constant_boolean_node (false, type);
    1425            7 :                                 if (TREE_SIDE_EFFECTS (captures[0]))
    1426            0 :                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1427            7 :                                 if (TREE_SIDE_EFFECTS (captures[1]))
    1428            0 :                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1429            7 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 345, __FILE__, __LINE__, true);
    1430        67426 :                                 return _r;
    1431              :                               }
    1432            0 : next_after_fail434:;
    1433              :                             }
    1434              :                           else
    1435              :                             {
    1436       236005 :                               if (code == LE_EXPR
    1437              : )
    1438              :                                 {
    1439        32122 :                                   if (! HONOR_NANS (captures[0])
    1440              : )
    1441              :                                     {
    1442            0 :                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail435;
    1443            0 :                                       {
    1444            0 :                                         tree _r;
    1445            0 :                                         _r =  constant_boolean_node (true, type);
    1446            0 :                                         if (TREE_SIDE_EFFECTS (captures[0]))
    1447            0 :                                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1448            0 :                                         if (TREE_SIDE_EFFECTS (captures[1]))
    1449            0 :                                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1450            0 :                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 346, __FILE__, __LINE__, true);
    1451            0 :                                         return _r;
    1452              :                                       }
    1453            0 : next_after_fail435:;
    1454              :                                     }
    1455              :                                   else
    1456              :                                     {
    1457        32122 :                                       if (!flag_trapping_math
    1458              : )
    1459              :                                         {
    1460            2 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail436;
    1461            2 :                                           {
    1462            2 :                                             if (! tree_invariant_p (captures[0])) goto next_after_fail436;
    1463            0 :                                             tree res_op0;
    1464            0 :                                             res_op0 = unshare_expr (captures[0]);
    1465            0 :                                             tree res_op1;
    1466            0 :                                             res_op1 = captures[0];
    1467            0 :                                             tree _r;
    1468            0 :                                             _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
    1469            0 :                                             if (TREE_SIDE_EFFECTS (captures[1]))
    1470            0 :                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1471            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 347, __FILE__, __LINE__, true);
    1472            0 :                                             return _r;
    1473              :                                           }
    1474       168586 : next_after_fail436:;
    1475              :                                         }
    1476              :                                     }
    1477              :                                 }
    1478              :                               else
    1479              :                                 {
    1480       136263 :                                   if ((code == EQ_EXPR && !(HONOR_NANS (captures[0]) && flag_trapping_math))
    1481       340110 :  || code == GE_EXPR
    1482              : )
    1483              :                                     {
    1484          140 :                                       {
    1485          140 :  real_maxval (&max, neg, TYPE_MODE (TREE_TYPE (captures[0])));
    1486          140 :                                           if (neg
    1487              : )
    1488              :                                             {
    1489           55 :                                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail437;
    1490           55 :                                               {
    1491           55 :                                                 tree res_op0;
    1492           55 :                                                 res_op0 = captures[0];
    1493           55 :                                                 tree res_op1;
    1494           55 :                                                 res_op1 =  build_real (TREE_TYPE (captures[0]), max);
    1495           55 :                                                 tree _r;
    1496           55 :                                                 _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
    1497           55 :                                                 if (TREE_SIDE_EFFECTS (captures[1]))
    1498            0 :                                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1499           55 :                                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 348, __FILE__, __LINE__, true);
    1500           55 :                                                 return _r;
    1501              :                                               }
    1502            0 : next_after_fail437:;
    1503              :                                             }
    1504              :                                           else
    1505              :                                             {
    1506           85 :                                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail438;
    1507           85 :                                               {
    1508           85 :                                                 tree res_op0;
    1509           85 :                                                 res_op0 = captures[0];
    1510           85 :                                                 tree res_op1;
    1511           85 :                                                 res_op1 =  build_real (TREE_TYPE (captures[0]), max);
    1512           85 :                                                 tree _r;
    1513           85 :                                                 _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
    1514           85 :                                                 if (TREE_SIDE_EFFECTS (captures[1]))
    1515            0 :                                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1516           85 :                                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 349, __FILE__, __LINE__, true);
    1517           85 :                                                 return _r;
    1518              :                                               }
    1519            0 : next_after_fail438:;
    1520              :                                             }
    1521              :                                       }
    1522              :                                     }
    1523              :                                   else
    1524              :                                     {
    1525       203743 :                                       if (code == LT_EXPR
    1526              : )
    1527              :                                         {
    1528           90 :                                           {
    1529           90 :  real_maxval (&max, neg, TYPE_MODE (TREE_TYPE (captures[0])));
    1530           90 :                                               if (neg
    1531              : )
    1532              :                                                 {
    1533           26 :                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail439;
    1534           26 :                                                   {
    1535           26 :                                                     tree res_op0;
    1536           26 :                                                     res_op0 = captures[0];
    1537           26 :                                                     tree res_op1;
    1538           26 :                                                     res_op1 =  build_real (TREE_TYPE (captures[0]), max);
    1539           26 :                                                     tree _r;
    1540           26 :                                                     _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
    1541           26 :                                                     if (TREE_SIDE_EFFECTS (captures[1]))
    1542            0 :                                                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1543           26 :                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 350, __FILE__, __LINE__, true);
    1544           26 :                                                     return _r;
    1545              :                                                   }
    1546            0 : next_after_fail439:;
    1547              :                                                 }
    1548              :                                               else
    1549              :                                                 {
    1550           64 :                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail440;
    1551           64 :                                                   {
    1552           64 :                                                     tree res_op0;
    1553           64 :                                                     res_op0 = captures[0];
    1554           64 :                                                     tree res_op1;
    1555           64 :                                                     res_op1 =  build_real (TREE_TYPE (captures[0]), max);
    1556           64 :                                                     tree _r;
    1557           64 :                                                     _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
    1558           64 :                                                     if (TREE_SIDE_EFFECTS (captures[1]))
    1559            0 :                                                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1560           64 :                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 351, __FILE__, __LINE__, true);
    1561           64 :                                                     return _r;
    1562              :                                                   }
    1563            0 : next_after_fail440:;
    1564              :                                                 }
    1565              :                                           }
    1566              :                                         }
    1567              :                                       else
    1568              :                                         {
    1569       203653 :                                           if (code == NE_EXPR
    1570              : )
    1571              :                                             {
    1572        67189 :                                               {
    1573        67189 :  real_maxval (&max, neg, TYPE_MODE (TREE_TYPE (captures[0])));
    1574        67189 :                                                   if (! HONOR_NANS (captures[0])
    1575              : )
    1576              :                                                     {
    1577            0 :                                                       if (neg
    1578              : )
    1579              :                                                         {
    1580            0 :                                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail441;
    1581            0 :                                                           {
    1582            0 :                                                             tree res_op0;
    1583            0 :                                                             res_op0 = captures[0];
    1584            0 :                                                             tree res_op1;
    1585            0 :                                                             res_op1 =  build_real (TREE_TYPE (captures[0]), max);
    1586            0 :                                                             tree _r;
    1587            0 :                                                             _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
    1588            0 :                                                             if (TREE_SIDE_EFFECTS (captures[1]))
    1589            0 :                                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1590            0 :                                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 352, __FILE__, __LINE__, true);
    1591            0 :                                                             return _r;
    1592              :                                                           }
    1593            0 : next_after_fail441:;
    1594              :                                                         }
    1595              :                                                       else
    1596              :                                                         {
    1597            0 :                                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail442;
    1598            0 :                                                           {
    1599            0 :                                                             tree res_op0;
    1600            0 :                                                             res_op0 = captures[0];
    1601            0 :                                                             tree res_op1;
    1602            0 :                                                             res_op1 =  build_real (TREE_TYPE (captures[0]), max);
    1603            0 :                                                             tree _r;
    1604            0 :                                                             _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
    1605            0 :                                                             if (TREE_SIDE_EFFECTS (captures[1]))
    1606            0 :                                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1607            0 :                                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 353, __FILE__, __LINE__, true);
    1608            0 :                                                             return _r;
    1609              :                                                           }
    1610            0 : next_after_fail442:;
    1611              :                                                         }
    1612              :                                                     }
    1613              :                                                   else
    1614              :                                                     {
    1615        67189 :                                                       if (neg
    1616              : )
    1617              :                                                         {
    1618          560 :                                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail443;
    1619          560 :                                                           {
    1620          560 :                                                             tree res_op0;
    1621          560 :                                                             res_op0 = captures[0];
    1622          560 :                                                             tree res_op1;
    1623          560 :                                                             res_op1 =  build_real (TREE_TYPE (captures[0]), max);
    1624          560 :                                                             tree _r;
    1625          560 :                                                             _r = fold_build2_loc (loc, UNGE_EXPR, type, res_op0, res_op1);
    1626          560 :                                                             if (TREE_SIDE_EFFECTS (captures[1]))
    1627            0 :                                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1628          560 :                                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 354, __FILE__, __LINE__, true);
    1629          560 :                                                             return _r;
    1630              :                                                           }
    1631            0 : next_after_fail443:;
    1632              :                                                         }
    1633              :                                                       else
    1634              :                                                         {
    1635        66629 :                                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail444;
    1636        66629 :                                                           {
    1637        66629 :                                                             tree res_op0;
    1638        66629 :                                                             res_op0 = captures[0];
    1639        66629 :                                                             tree res_op1;
    1640        66629 :                                                             res_op1 =  build_real (TREE_TYPE (captures[0]), max);
    1641        66629 :                                                             tree _r;
    1642        66629 :                                                             _r = fold_build2_loc (loc, UNLE_EXPR, type, res_op0, res_op1);
    1643        66629 :                                                             if (TREE_SIDE_EFFECTS (captures[1]))
    1644            0 :                                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1645        66629 :                                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 355, __FILE__, __LINE__, true);
    1646        66629 :                                                             return _r;
    1647              :                                                           }
    1648            0 : next_after_fail444:;
    1649              :                                                         }
    1650              :                                                     }
    1651              :                                               }
    1652              :                                             }
    1653              :                                         }
    1654              :                                     }
    1655              :                                 }
    1656              :                             }
    1657              :                       }
    1658              :                     }
    1659              :                 }
    1660              :             }
    1661              :         }
    1662              :     }
    1663              :   return NULL_TREE;
    1664              : }
    1665              : 
    1666              : tree
    1667           45 : generic_simplify_297 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1668              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1669              :  const enum tree_code ARG_UNUSED (cmp),
    1670              :  const enum tree_code ARG_UNUSED (rep),
    1671              :  const combined_fn ARG_UNUSED (popcount))
    1672              : {
    1673           45 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1674           45 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail560;
    1675           45 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail560;
    1676           45 :   {
    1677           45 :     tree res_op0;
    1678           45 :     res_op0 = captures[0];
    1679           45 :     tree res_op1;
    1680           45 :     res_op1 =  build_zero_cst (TREE_TYPE (captures[0]));
    1681           45 :     tree _r;
    1682           45 :     _r = fold_build2_loc (loc, rep, type, res_op0, res_op1);
    1683           45 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 453, __FILE__, __LINE__, true);
    1684              :     return _r;
    1685              :   }
    1686              : next_after_fail560:;
    1687              :   return NULL_TREE;
    1688              : }
    1689              : 
    1690              : tree
    1691       111841 : generic_simplify_302 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1692              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1693              :  const enum tree_code ARG_UNUSED (cmp))
    1694              : {
    1695       111841 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1696       111841 :   if (cmp != NE_EXPR
    1697       106675 :  || ! FLOAT_TYPE_P (TREE_TYPE (captures[0]))
    1698       124368 :  || ! tree_expr_maybe_nan_p (captures[0])
    1699              : )
    1700              :     {
    1701       105128 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail568;
    1702       105128 :       {
    1703       105128 :         tree _r;
    1704       105128 :         _r =  constant_boolean_node (false, type);
    1705       105128 :         if (TREE_SIDE_EFFECTS (captures[0]))
    1706            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1707       105128 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 461, __FILE__, __LINE__, true);
    1708       105128 :         return _r;
    1709              :       }
    1710            0 : next_after_fail568:;
    1711              :     }
    1712              :   return NULL_TREE;
    1713              : }
    1714              : 
    1715              : tree
    1716            0 : generic_simplify_306 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1717              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1718              :  const combined_fn ARG_UNUSED (COPYSIGN_ALL))
    1719              : {
    1720            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1721            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail572;
    1722            0 :   {
    1723            0 :     tree _r;
    1724            0 :     _r = captures[0];
    1725            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 465, __FILE__, __LINE__, true);
    1726              :     return _r;
    1727              :   }
    1728            0 : next_after_fail572:;
    1729            0 :   return NULL_TREE;
    1730              : }
    1731              : 
    1732              : tree
    1733        14398 : generic_simplify_313 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1734              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1735              :  const enum tree_code ARG_UNUSED (div))
    1736              : {
    1737        14398 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1738        14398 :   if (INTEGRAL_TYPE_P (type)
    1739        14370 :  && ssa_name_has_boolean_range (captures[1])
    1740        14398 :  && !flag_non_call_exceptions
    1741              : )
    1742              :     {
    1743            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail581;
    1744            0 :       {
    1745            0 :         tree _r;
    1746            0 :         _r = captures[0];
    1747            0 :         if (TREE_SIDE_EFFECTS (captures[1]))
    1748            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1749            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 472, __FILE__, __LINE__, true);
    1750            0 :         return _r;
    1751              :       }
    1752            0 : next_after_fail581:;
    1753              :     }
    1754              :   return NULL_TREE;
    1755              : }
    1756              : 
    1757              : tree
    1758        23130 : generic_simplify_319 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1759              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1760              :  const enum tree_code ARG_UNUSED (div))
    1761              : {
    1762        23130 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1763        23130 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && TYPE_UNSIGNED (TREE_TYPE (captures[0]))
    1764              : )
    1765              :     {
    1766        22982 :       if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail588;
    1767        22982 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail588;
    1768        22982 :       {
    1769        22982 :         tree res_op0;
    1770        22982 :         res_op0 = captures[0];
    1771        22982 :         tree res_op1;
    1772        22982 :         res_op1 =  wide_int_to_tree
    1773        45964 :  (type, wi::mask (TYPE_PRECISION (type)
    1774        22982 :  - wi::exact_log2 (wi::to_wide (captures[1])),
    1775        22982 :  false, TYPE_PRECISION (type)));
    1776        22982 :         tree _r;
    1777        22982 :         _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    1778        22982 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 479, __FILE__, __LINE__, true);
    1779        22982 :         return _r;
    1780              :       }
    1781              : next_after_fail588:;
    1782              :     }
    1783              :   return NULL_TREE;
    1784              : }
    1785              : 
    1786              : tree
    1787          919 : generic_simplify_323 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1788              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1789              :  const enum tree_code ARG_UNUSED (mod))
    1790              : {
    1791          919 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1792          919 :   if (!integer_zerop (captures[1])
    1793              : )
    1794              :     {
    1795          785 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail592;
    1796          785 :       {
    1797          785 :         tree _r;
    1798          785 :         _r = captures[0];
    1799          785 :         if (TREE_SIDE_EFFECTS (captures[1]))
    1800           74 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1801          785 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 483, __FILE__, __LINE__, true);
    1802          785 :         return _r;
    1803              :       }
    1804            0 : next_after_fail592:;
    1805              :     }
    1806              :   return NULL_TREE;
    1807              : }
    1808              : 
    1809              : tree
    1810            6 : generic_simplify_333 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1811              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1812              :  const combined_fn ARG_UNUSED (SIN),
    1813              :  const combined_fn ARG_UNUSED (COS),
    1814              :  const combined_fn ARG_UNUSED (TAN))
    1815              : {
    1816            6 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1817            6 :   if (flag_unsafe_math_optimizations && canonicalize_math_p ()
    1818              : )
    1819              :     {
    1820            6 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail604;
    1821            6 :       {
    1822            6 :         tree res_op0;
    1823            6 :         res_op0 = captures[1];
    1824            6 :         tree _r;
    1825            6 :         _r = maybe_build_call_expr_loc (loc, TAN, type, 1, res_op0);
    1826            6 :         if (!_r)
    1827            0 :           goto next_after_fail604;
    1828            6 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 495, __FILE__, __LINE__, true);
    1829            6 :         return _r;
    1830              :       }
    1831              : next_after_fail604:;
    1832              :     }
    1833              :   return NULL_TREE;
    1834              : }
    1835              : 
    1836              : tree
    1837           24 : generic_simplify_340 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1838              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1839              :  const combined_fn ARG_UNUSED (POW))
    1840              : {
    1841           24 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1842           24 :   if (flag_unsafe_math_optimizations && canonicalize_math_p ()
    1843              : )
    1844              :     {
    1845            6 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail611;
    1846            6 :       {
    1847            6 :         tree res_op0;
    1848            6 :         res_op0 = captures[0];
    1849            6 :         tree res_op1;
    1850            6 :         {
    1851            6 :           tree _o1[2], _r1;
    1852            6 :           _o1[0] = captures[2];
    1853            6 :           {
    1854            6 :             tree _o2[1], _r2;
    1855            6 :             _o2[0] = captures[3];
    1856            6 :             _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
    1857            6 :             _o1[1] = _r2;
    1858              :           }
    1859            6 :           _r1 = maybe_build_call_expr_loc (loc, POW, TREE_TYPE (_o1[0]), 2, _o1[0], _o1[1]);
    1860            6 :           if (!_r1)
    1861            0 :             goto next_after_fail611;
    1862            6 :           res_op1 = _r1;
    1863              :         }
    1864            6 :         tree _r;
    1865            6 :         _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    1866            6 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 502, __FILE__, __LINE__, true);
    1867            6 :         return _r;
    1868              :       }
    1869              : next_after_fail611:;
    1870              :     }
    1871              :   return NULL_TREE;
    1872              : }
    1873              : 
    1874              : tree
    1875            0 : generic_simplify_349 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1876              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    1877              :  const enum tree_code ARG_UNUSED (cmp))
    1878              : {
    1879            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1880            0 :   if (INTEGRAL_TYPE_P (type)
    1881              : )
    1882              :     {
    1883            0 :       if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail626;
    1884            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail626;
    1885            0 :       {
    1886            0 :         tree _r;
    1887            0 :         _r = captures[2];
    1888            0 :         if (TREE_SIDE_EFFECTS (captures[1]))
    1889            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1890            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 517, __FILE__, __LINE__, true);
    1891            0 :         return _r;
    1892              :       }
    1893              : next_after_fail626:;
    1894              :     }
    1895              :   return NULL_TREE;
    1896              : }
    1897              : 
    1898              : tree
    1899           21 : generic_simplify_353 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1900              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
    1901              : {
    1902           21 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1903           21 :   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail630;
    1904           21 :   if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail630;
    1905           21 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail630;
    1906           21 :   {
    1907           21 :     tree _r;
    1908           21 :     _r = captures[2];
    1909           21 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 521, __FILE__, __LINE__, true);
    1910              :     return _r;
    1911              :   }
    1912              : next_after_fail630:;
    1913              :   return NULL_TREE;
    1914              : }
    1915              : 
    1916              : tree
    1917            0 : generic_simplify_356 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1918              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    1919              :  const enum tree_code ARG_UNUSED (op))
    1920              : {
    1921            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1922            0 :   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail633;
    1923            0 :   if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail633;
    1924            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail633;
    1925            0 :   {
    1926            0 :     tree _r;
    1927            0 :     _r = captures[2];
    1928            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 524, __FILE__, __LINE__, true);
    1929              :     return _r;
    1930              :   }
    1931              : next_after_fail633:;
    1932              :   return NULL_TREE;
    1933              : }
    1934              : 
    1935              : tree
    1936            0 : generic_simplify_363 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1937              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
    1938              : {
    1939            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1940            0 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail640;
    1941            0 :   if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail640;
    1942            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail640;
    1943            0 :   {
    1944            0 :     tree _r;
    1945            0 :     _r = captures[2];
    1946            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 531, __FILE__, __LINE__, true);
    1947              :     return _r;
    1948              :   }
    1949              : next_after_fail640:;
    1950              :   return NULL_TREE;
    1951              : }
    1952              : 
    1953              : tree
    1954            0 : generic_simplify_369 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1955              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    1956              :  const combined_fn ARG_UNUSED (func))
    1957              : {
    1958            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1959            0 :   if (wi::to_widest (captures[4]) == TYPE_PRECISION (TREE_TYPE (captures[3])) - 1
    1960              : )
    1961              :     {
    1962            0 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail647;
    1963            0 :       if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail647;
    1964            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail647;
    1965            0 :       {
    1966            0 :         tree _r;
    1967            0 :         _r = captures[2];
    1968            0 :         if (TREE_SIDE_EFFECTS (captures[1]))
    1969            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1970            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 538, __FILE__, __LINE__, true);
    1971            0 :         return _r;
    1972              :       }
    1973              : next_after_fail647:;
    1974              :     }
    1975              :   return NULL_TREE;
    1976              : }
    1977              : 
    1978              : tree
    1979        19719 : generic_simplify_377 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1980              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1981              :  const enum tree_code ARG_UNUSED (cmp))
    1982              : {
    1983        19719 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1984        39438 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    1985        39377 :  && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
    1986              : )
    1987              :     {
    1988        16258 :       if (tree_expr_nonnegative_p (captures[1]) && tree_expr_nonzero_p (captures[1])
    1989              : )
    1990              :         {
    1991        12742 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail658;
    1992        12742 :           {
    1993        12742 :             tree res_op0;
    1994        12742 :             res_op0 = captures[0];
    1995        12742 :             tree res_op1;
    1996        12742 :             res_op1 = captures[2];
    1997        12742 :             tree _r;
    1998        12742 :             _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1999        12742 :             if (TREE_SIDE_EFFECTS (captures[1]))
    2000            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2001        12742 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 547, __FILE__, __LINE__, true);
    2002        12742 :             return _r;
    2003              :           }
    2004            0 : next_after_fail658:;
    2005              :         }
    2006              :       else
    2007              :         {
    2008         3516 :           if (TREE_CODE (captures[1]) == INTEGER_CST
    2009         3516 :  && wi::neg_p (wi::to_wide (captures[1]), TYPE_SIGN (TREE_TYPE (captures[1])))
    2010              : )
    2011              :             {
    2012         1076 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail659;
    2013         1076 :               {
    2014         1076 :                 tree res_op0;
    2015         1076 :                 res_op0 = captures[2];
    2016         1076 :                 tree res_op1;
    2017         1076 :                 res_op1 = captures[0];
    2018         1076 :                 tree _r;
    2019         1076 :                 _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    2020         1076 :                 if (TREE_SIDE_EFFECTS (captures[1]))
    2021            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2022         1076 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 548, __FILE__, __LINE__, true);
    2023         1076 :                 return _r;
    2024              :               }
    2025            0 : next_after_fail659:;
    2026              :             }
    2027              :         }
    2028              :     }
    2029              :   return NULL_TREE;
    2030              : }
    2031              : 
    2032              : tree
    2033        37245 : generic_simplify_390 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2034              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2035              :  const enum tree_code ARG_UNUSED (cmp),
    2036              :  const enum tree_code ARG_UNUSED (out))
    2037              : {
    2038        37245 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2039        37245 :   if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))
    2040        37229 :  && types_match (TREE_TYPE (captures[3]), TREE_TYPE (captures[0]))
    2041        37229 :  && tree_nop_conversion_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[3]))
    2042        37245 :  && wi::to_wide (captures[4]) != 0
    2043            0 :  && single_use (captures[1])
    2044              : )
    2045              :     {
    2046        37229 :       {
    2047        37229 :  unsigned int prec = TYPE_PRECISION (TREE_TYPE (captures[3]));
    2048        37229 :  signop sign = TYPE_SIGN (TREE_TYPE (captures[3]));
    2049        37229 :           if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail673;
    2050        37229 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail673;
    2051        37229 :           {
    2052        37229 :             tree res_op0;
    2053        37229 :             res_op0 = captures[3];
    2054        37229 :             tree res_op1;
    2055        37229 :             res_op1 =  wide_int_to_tree (TREE_TYPE (captures[3]),
    2056        37229 :  wi::max_value (prec, sign)
    2057       111687 :  - wi::to_wide (captures[4]));
    2058        37229 :             tree _r;
    2059        37229 :             _r = fold_build2_loc (loc, out, type, res_op0, res_op1);
    2060        37229 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 562, __FILE__, __LINE__, true);
    2061        37229 :             return _r;
    2062              :           }
    2063              : next_after_fail673:;
    2064              :       }
    2065              :     }
    2066              :   return NULL_TREE;
    2067              : }
    2068              : 
    2069              : tree
    2070         1091 : generic_simplify_400 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2071              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2072              :  const enum tree_code ARG_UNUSED (cmp),
    2073              :  const enum tree_code ARG_UNUSED (out))
    2074              : {
    2075         1091 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2076         1091 :   if (TYPE_UNSIGNED (TREE_TYPE (captures[2])) && !VECTOR_TYPE_P (TREE_TYPE (captures[2]))
    2077              : )
    2078              :     {
    2079         1073 :       {
    2080         1073 :  tree t = TREE_TYPE (captures[2]), cpx = build_complex_type (t);
    2081         1073 :           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail715;
    2082         1061 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail715;
    2083         1061 :           {
    2084         1061 :             tree res_op0;
    2085         1061 :             {
    2086         1061 :               tree _o1[1], _r1;
    2087         1061 :               {
    2088         1061 :                 tree _o2[2], _r2;
    2089         1061 :                 _o2[0] = captures[2];
    2090         1061 :                 _o2[1] = captures[1];
    2091         1061 :                 _r2 = maybe_build_call_expr_loc (loc, CFN_MUL_OVERFLOW, cpx, 2, _o2[0], _o2[1]);
    2092         1061 :                 if (!_r2)
    2093            0 :                   goto next_after_fail715;
    2094         1061 :                 _o1[0] = _r2;
    2095              :               }
    2096         1061 :               _r1 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
    2097         1061 :               res_op0 = _r1;
    2098              :             }
    2099         1061 :             tree res_op1;
    2100         1061 :             res_op1 =  build_zero_cst (t);
    2101         1061 :             tree _r;
    2102         1061 :             _r = fold_build2_loc (loc, out, type, res_op0, res_op1);
    2103         1061 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 587, __FILE__, __LINE__, true);
    2104         1061 :             return _r;
    2105              :           }
    2106              : next_after_fail715:;
    2107              :       }
    2108              :     }
    2109              :   return NULL_TREE;
    2110              : }
    2111              : 
    2112              : tree
    2113        11965 : generic_simplify_407 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2114              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2115              :  const enum tree_code ARG_UNUSED (cmp),
    2116              :  const enum tree_code ARG_UNUSED (eqcmp))
    2117              : {
    2118        11965 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2119        11965 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    2120              : )
    2121              :     {
    2122        11965 :       {
    2123        11965 :  tree ty = TREE_TYPE (captures[0]);
    2124        11965 :  unsigned prec = TYPE_PRECISION (ty);
    2125        11965 :  wide_int mask = wi::to_wide (captures[2], prec);
    2126        11965 :  wide_int rhs = wi::to_wide (captures[3], prec);
    2127        11965 :  signop sgn = TYPE_SIGN (ty);
    2128        33689 :           if ((mask & (mask + 1)) == 0 && wi::gt_p (rhs, 0, sgn)
    2129        43280 :  && (rhs & (rhs + 1)) == 0 && wi::ge_p (mask, rhs, sgn)
    2130              : )
    2131              :             {
    2132          556 :               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail729;
    2133          556 :               if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail729;
    2134          556 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail729;
    2135          556 :               {
    2136          556 :                 tree res_op0;
    2137          556 :                 {
    2138          556 :                   tree _o1[2], _r1;
    2139          556 :                   _o1[0] = captures[1];
    2140          556 :                   _o1[1] =  wide_int_to_tree (ty, mask - rhs);
    2141          556 :                   _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2142          556 :                   res_op0 = _r1;
    2143              :                 }
    2144          556 :                 tree res_op1;
    2145          556 :                 res_op1 =  build_zero_cst (ty);
    2146          556 :                 tree _r;
    2147          556 :                 _r = fold_build2_loc (loc, eqcmp, type, res_op0, res_op1);
    2148          556 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 601, __FILE__, __LINE__, true);
    2149          556 :                 return _r;
    2150              :               }
    2151        11409 : next_after_fail729:;
    2152              :             }
    2153        11965 :       }
    2154              :     }
    2155              :   return NULL_TREE;
    2156              : }
    2157              : 
    2158              : tree
    2159            1 : generic_simplify_413 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2160              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2161              :  const combined_fn ARG_UNUSED (logs),
    2162              :  const combined_fn ARG_UNUSED (exps),
    2163              :  const enum tree_code ARG_UNUSED (cmp))
    2164              : {
    2165            1 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2166            1 :   if (flag_unsafe_math_optimizations
    2167              : )
    2168              :     {
    2169            1 :       if (! HONOR_SIGN_DEPENDENT_ROUNDING (type)
    2170            1 :  && ! HONOR_NANS (type) && ! HONOR_INFINITIES (type)
    2171            1 :  && ! flag_trapping_math
    2172            2 :  && ! flag_errno_math
    2173              : )
    2174              :         {
    2175            1 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail735;
    2176            1 :           {
    2177            1 :             tree res_op0;
    2178            1 :             res_op0 = captures[1];
    2179            1 :             tree res_op1;
    2180            1 :             {
    2181            1 :               tree _o1[1], _r1;
    2182            1 :               _o1[0] = captures[2];
    2183            1 :               _r1 = maybe_build_call_expr_loc (loc, logs, TREE_TYPE (_o1[0]), 1, _o1[0]);
    2184            1 :               if (!_r1)
    2185            0 :                 goto next_after_fail735;
    2186            1 :               if (EXPR_P (_r1))
    2187            1 :                 goto next_after_fail735;
    2188            0 :               res_op1 = _r1;
    2189              :             }
    2190            0 :             tree _r;
    2191            0 :             _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    2192            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 603, __FILE__, __LINE__, true);
    2193            0 :             return _r;
    2194              :           }
    2195              : next_after_fail735:;
    2196              :         }
    2197              :     }
    2198              :   return NULL_TREE;
    2199              : }
    2200              : 
    2201              : tree
    2202            0 : generic_simplify_421 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2203              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2204              :  const enum tree_code ARG_UNUSED (shiftrotate))
    2205              : {
    2206            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2207            0 :   {
    2208            0 :  tree tem = uniform_vector_p (captures[1]);
    2209            0 :       if (tem
    2210              : )
    2211              :         {
    2212            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail747;
    2213            0 :           {
    2214            0 :             tree res_op0;
    2215            0 :             res_op0 = captures[0];
    2216            0 :             tree res_op1;
    2217            0 :             res_op1 =  tem;
    2218            0 :             tree _r;
    2219            0 :             _r = fold_build2_loc (loc, shiftrotate, type, res_op0, res_op1);
    2220            0 :             if (TREE_SIDE_EFFECTS (captures[1]))
    2221            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2222            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 615, __FILE__, __LINE__, true);
    2223            0 :             return _r;
    2224              :           }
    2225            0 : next_after_fail747:;
    2226              :         }
    2227              :   }
    2228              :   return NULL_TREE;
    2229              : }
    2230              : 
    2231              : tree
    2232      3402823 : generic_simplify_428 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2233              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    2234              :  const enum tree_code ARG_UNUSED (bitop))
    2235              : {
    2236      3402823 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2237      3402823 :   if (0
    2238              :  && TREE_CODE (captures[3]) != INTEGER_CST
    2239              :  && tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
    2240              :  && types_match (type, captures[2])
    2241              :  && !POINTER_TYPE_P (TREE_TYPE (captures[2]))
    2242              :  && TREE_CODE (TREE_TYPE (captures[2])) != OFFSET_TYPE
    2243              : )
    2244              :     {
    2245              :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail761;
    2246              :       {
    2247              :         tree res_op0;
    2248              :         res_op0 = captures[2];
    2249              :         tree res_op1;
    2250              :         {
    2251              :           tree _o1[1], _r1;
    2252              :           _o1[0] = captures[3];
    2253              :           if (TREE_TYPE (_o1[0]) != type)
    2254              :             {
    2255              :               _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    2256              :             }
    2257              :           else
    2258              :             _r1 = _o1[0];
    2259              :           res_op1 = _r1;
    2260              :         }
    2261              :         tree _r;
    2262              :         _r = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
    2263              :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 627, __FILE__, __LINE__, true);
    2264              :         return _r;
    2265              :       }
    2266              : next_after_fail761:;
    2267              :     }
    2268      3402823 :   return NULL_TREE;
    2269              : }
    2270              : 
    2271              : tree
    2272       861900 : generic_simplify_432 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2273              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    2274              :  const enum tree_code ARG_UNUSED (op))
    2275              : {
    2276       861900 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2277       861900 :   if (INTEGRAL_TYPE_P (type)
    2278       763077 :  && op != MULT_EXPR
    2279       763077 :  && op != RDIV_EXPR
    2280       449500 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
    2281       390389 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    2282       390389 :  && type_has_mode_precision_p (TREE_TYPE (captures[2]))
    2283       345146 :  && type_has_mode_precision_p (TREE_TYPE (captures[4]))
    2284       344863 :  && type_has_mode_precision_p (type)
    2285       344841 :  && TYPE_PRECISION (TREE_TYPE (captures[1])) > TYPE_PRECISION (TREE_TYPE (captures[2]))
    2286        24060 :  && types_match (captures[2], type)
    2287       864496 :  && (types_match (captures[2], captures[4])
    2288         2527 :  || poly_int_tree_p (captures[3]))
    2289              : )
    2290              :     {
    2291           69 :       if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2]))
    2292              : )
    2293              :         {
    2294           15 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail767;
    2295           15 :           {
    2296           15 :             tree res_op0;
    2297           15 :             res_op0 = captures[2];
    2298           15 :             tree res_op1;
    2299           15 :             {
    2300           15 :               tree _o1[1], _r1;
    2301           15 :               _o1[0] = captures[4];
    2302           15 :               if (TREE_TYPE (_o1[0]) != type)
    2303              :                 {
    2304            0 :                   _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    2305              :                 }
    2306              :               else
    2307              :                 _r1 = _o1[0];
    2308           15 :               res_op1 = _r1;
    2309              :             }
    2310           15 :             tree _r;
    2311           15 :             _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
    2312           15 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 633, __FILE__, __LINE__, true);
    2313           15 :             return _r;
    2314              :           }
    2315            0 : next_after_fail767:;
    2316              :         }
    2317              :       else
    2318              :         {
    2319           54 :           {
    2320           54 :  tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
    2321           54 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail768;
    2322           54 :               {
    2323           54 :                 tree res_op0;
    2324           54 :                 {
    2325           54 :                   tree _o1[2], _r1;
    2326           54 :                   {
    2327           54 :                     tree _o2[1], _r2;
    2328           54 :                     _o2[0] = captures[2];
    2329           54 :                     if (TREE_TYPE (_o2[0]) != utype)
    2330              :                       {
    2331           54 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
    2332              :                       }
    2333              :                     else
    2334              :                       _r2 = _o2[0];
    2335           54 :                     _o1[0] = _r2;
    2336              :                   }
    2337           54 :                   {
    2338           54 :                     tree _o2[1], _r2;
    2339           54 :                     _o2[0] = captures[4];
    2340           54 :                     if (TREE_TYPE (_o2[0]) != utype)
    2341              :                       {
    2342           54 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
    2343              :                       }
    2344              :                     else
    2345              :                       _r2 = _o2[0];
    2346           54 :                     _o1[1] = _r2;
    2347              :                   }
    2348           54 :                   _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2349           54 :                   res_op0 = _r1;
    2350              :                 }
    2351           54 :                 tree _r;
    2352           54 :                 _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    2353           54 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 634, __FILE__, __LINE__, true);
    2354           54 :                 return _r;
    2355              :               }
    2356            0 : next_after_fail768:;
    2357              :           }
    2358              :         }
    2359              :     }
    2360              :   else
    2361              :     {
    2362       851347 :       if (FLOAT_TYPE_P (type)
    2363       872315 :  && DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
    2364        10484 :  == DECIMAL_FLOAT_TYPE_P (type)
    2365              : )
    2366              :         {
    2367        10461 :           {
    2368        10461 :  tree arg0 = strip_float_extensions (captures[2]);
    2369        10461 :  tree arg1 = strip_float_extensions (captures[4]);
    2370        10461 :  tree itype = TREE_TYPE (captures[0]);
    2371        10461 :  tree ty1 = TREE_TYPE (arg0);
    2372        10461 :  tree ty2 = TREE_TYPE (arg1);
    2373        10461 :  enum tree_code code = TREE_CODE (itype);
    2374            0 :               if (FLOAT_TYPE_P (ty1)
    2375        10461 :  && FLOAT_TYPE_P (ty2)
    2376              : )
    2377              :                 {
    2378        10461 :                   {
    2379        10461 :  tree newtype = type;
    2380        10461 :  if (TYPE_MODE (ty1) == SDmode
    2381        10452 :  || TYPE_MODE (ty2) == SDmode
    2382        20913 :  || TYPE_MODE (type) == SDmode)
    2383            9 :  newtype = dfloat32_type_node;
    2384        10461 :  if (TYPE_MODE (ty1) == DDmode
    2385        10455 :  || TYPE_MODE (ty2) == DDmode
    2386        20916 :  || TYPE_MODE (type) == DDmode)
    2387            6 :  newtype = dfloat64_type_node;
    2388        10461 :  if (TYPE_MODE (ty1) == TDmode
    2389        10461 :  || TYPE_MODE (ty2) == TDmode
    2390        20922 :  || TYPE_MODE (type) == TDmode)
    2391           15 :  newtype = dfloat128_type_node;
    2392        10461 :                       if ((newtype == dfloat32_type_node
    2393        10461 :  || newtype == dfloat64_type_node
    2394        10461 :  || newtype == dfloat128_type_node)
    2395           15 :  && newtype == type
    2396        10467 :  && types_match (newtype, type)
    2397              : )
    2398              :                         {
    2399            6 :                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail769;
    2400            0 :                           if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail769;
    2401            0 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail769;
    2402            0 :                           {
    2403            0 :                             tree res_op0;
    2404            0 :                             {
    2405            0 :                               tree _o1[1], _r1;
    2406            0 :                               _o1[0] = captures[2];
    2407            0 :                               if (TREE_TYPE (_o1[0]) != newtype)
    2408              :                                 {
    2409            0 :                                   _r1 = fold_build1_loc (loc, NOP_EXPR, newtype, _o1[0]);
    2410              :                                 }
    2411              :                               else
    2412              :                                 _r1 = _o1[0];
    2413            0 :                               res_op0 = _r1;
    2414              :                             }
    2415            0 :                             tree res_op1;
    2416            0 :                             {
    2417            0 :                               tree _o1[1], _r1;
    2418            0 :                               _o1[0] = captures[4];
    2419            0 :                               if (TREE_TYPE (_o1[0]) != newtype)
    2420              :                                 {
    2421            0 :                                   _r1 = fold_build1_loc (loc, NOP_EXPR, newtype, _o1[0]);
    2422              :                                 }
    2423              :                               else
    2424              :                                 _r1 = _o1[0];
    2425            0 :                               res_op1 = _r1;
    2426              :                             }
    2427            0 :                             tree _r;
    2428            0 :                             _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
    2429            0 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 635, __FILE__, __LINE__, true);
    2430            0 :                             return _r;
    2431              :                           }
    2432              : next_after_fail769:;
    2433              :                         }
    2434              :                       else
    2435              :                         {
    2436        10455 :                           {
    2437        10455 :  if (element_precision (ty1) > element_precision (newtype))
    2438            4 :  newtype = ty1;
    2439        10455 :  if (element_precision (ty2) > element_precision (newtype))
    2440            2 :  newtype = ty2;
    2441        10455 :                               if (element_precision (newtype) < element_precision (itype)
    2442        10210 :  && (!VECTOR_MODE_P (TYPE_MODE (newtype))
    2443            0 :  || target_supports_op_p (newtype, op, optab_default))
    2444        10210 :  && (flag_unsafe_math_optimizations
    2445        10193 :  || (element_precision (newtype) == element_precision (type)
    2446        10189 :  && real_can_shorten_arithmetic (element_mode (itype),
    2447              :  element_mode (type))
    2448         3412 :  && !excess_precision_type (newtype)))
    2449        10480 :  && !types_match (itype, newtype)
    2450              : )
    2451              :                                 {
    2452           25 :                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail770;
    2453           25 :                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail770;
    2454           17 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail770;
    2455           17 :                                   {
    2456           17 :                                     tree res_op0;
    2457           17 :                                     {
    2458           17 :                                       tree _o1[2], _r1;
    2459           17 :                                       {
    2460           17 :                                         tree _o2[1], _r2;
    2461           17 :                                         _o2[0] = captures[2];
    2462           17 :                                         if (TREE_TYPE (_o2[0]) != newtype)
    2463              :                                           {
    2464            0 :                                             _r2 = fold_build1_loc (loc, NOP_EXPR, newtype, _o2[0]);
    2465              :                                           }
    2466              :                                         else
    2467              :                                           _r2 = _o2[0];
    2468           17 :                                         _o1[0] = _r2;
    2469              :                                       }
    2470           17 :                                       {
    2471           17 :                                         tree _o2[1], _r2;
    2472           17 :                                         _o2[0] = captures[4];
    2473           17 :                                         if (TREE_TYPE (_o2[0]) != newtype)
    2474              :                                           {
    2475            0 :                                             _r2 = fold_build1_loc (loc, NOP_EXPR, newtype, _o2[0]);
    2476              :                                           }
    2477              :                                         else
    2478              :                                           _r2 = _o2[0];
    2479           17 :                                         _o1[1] = _r2;
    2480              :                                       }
    2481           17 :                                       _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2482           17 :                                       res_op0 = _r1;
    2483              :                                     }
    2484           17 :                                     tree _r;
    2485           17 :                                     _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    2486           17 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 636, __FILE__, __LINE__, true);
    2487           17 :                                     return _r;
    2488              :                                   }
    2489              : next_after_fail770:;
    2490              :                                 }
    2491              :                           }
    2492              :                         }
    2493              :                   }
    2494              :                 }
    2495              :           }
    2496              :         }
    2497              :     }
    2498              :   return NULL_TREE;
    2499              : }
    2500              : 
    2501              : tree
    2502           15 : generic_simplify_460 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2503              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2504              :  const enum tree_code ARG_UNUSED (bitop))
    2505              : {
    2506           15 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2507           15 :   {
    2508           15 :  tree pmop[2];
    2509           15 :  tree utype = fold_bit_and_mask (TREE_TYPE (captures[1]), captures[4], NEGATE_EXPR, captures[1],
    2510              :  bitop, captures[2], captures[3], NULL_TREE, ERROR_MARK,
    2511              :  NULL_TREE, NULL_TREE, pmop);
    2512           15 :       if (utype
    2513              : )
    2514              :         {
    2515            7 :           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail807;
    2516            7 :           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail807;
    2517            7 :           if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail807;
    2518            7 :           if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail807;
    2519            7 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail807;
    2520            7 :           {
    2521            7 :             tree res_op0;
    2522            7 :             {
    2523            7 :               tree _o1[2], _r1;
    2524            7 :               {
    2525            7 :                 tree _o2[1], _r2;
    2526            7 :                 {
    2527            7 :                   tree _o3[1], _r3;
    2528            7 :                   _o3[0] =  pmop[0];
    2529            7 :                   if (TREE_TYPE (_o3[0]) != utype)
    2530              :                     {
    2531            4 :                       _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
    2532              :                     }
    2533              :                   else
    2534              :                     _r3 = _o3[0];
    2535            7 :                   _o2[0] = _r3;
    2536              :                 }
    2537            7 :                 _r2 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
    2538            7 :                 _o1[0] = _r2;
    2539              :               }
    2540            7 :               {
    2541            7 :                 tree _o2[1], _r2;
    2542            7 :                 _o2[0] = captures[4];
    2543            7 :                 if (TREE_TYPE (_o2[0]) != utype)
    2544              :                   {
    2545            4 :                     _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
    2546              :                   }
    2547              :                 else
    2548              :                   _r2 = _o2[0];
    2549            7 :                 _o1[1] = _r2;
    2550              :               }
    2551            7 :               _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2552            7 :               res_op0 = _r1;
    2553              :             }
    2554            7 :             tree _r;
    2555            7 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    2556            7 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 660, __FILE__, __LINE__, true);
    2557            7 :             return _r;
    2558              :           }
    2559            8 : next_after_fail807:;
    2560              :         }
    2561              :   }
    2562            8 :   return NULL_TREE;
    2563              : }
    2564              : 
    2565              : tree
    2566            0 : generic_simplify_472 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2567              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2568              :  const enum tree_code ARG_UNUSED (code2),
    2569              :  const enum tree_code ARG_UNUSED (code1))
    2570              : {
    2571            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2572            0 :   if ((TREE_CODE (captures[2]) == INTEGER_CST
    2573            0 :  && TREE_CODE (captures[5]) == INTEGER_CST)
    2574            0 :  || ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
    2575            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[2]))
    2576            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, code2))
    2577            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[2])))
    2578            0 :  && bitwise_equal_p (captures[2], captures[5]))
    2579              : )
    2580              :     {
    2581            0 :       {
    2582            0 :  bool one_before = false;
    2583            0 :  bool one_after = false;
    2584            0 :  int cmp = 0;
    2585            0 :  bool allbits = true;
    2586            0 :  if (TREE_CODE (captures[2]) == INTEGER_CST
    2587            0 :  && TREE_CODE (captures[5]) == INTEGER_CST)
    2588              :  {
    2589            0 :  allbits = TYPE_PRECISION (TREE_TYPE (captures[2])) <= TYPE_PRECISION (TREE_TYPE (captures[5]));
    2590            0 :  auto t1 = wi::to_wide (fold_convert (TREE_TYPE (captures[5]), captures[2]));
    2591            0 :  auto t2 = wi::to_wide (captures[5]);
    2592            0 :  cmp = wi::cmp (t1, t2, TYPE_SIGN (TREE_TYPE (captures[5])));
    2593            0 :  if (cmp < 0
    2594            0 :  && t1 == t2 - 1)
    2595              :  one_before = true;
    2596            0 :  if (cmp > 0
    2597            0 :  && t1 == t2 + 1)
    2598              :  one_after = true;
    2599              :  }
    2600            0 :  bool val;
    2601            0 :  switch (code2)
    2602              :  {
    2603            0 :  case EQ_EXPR: val = (cmp == 0); break;
    2604            0 :  case NE_EXPR: val = (cmp != 0); break;
    2605            0 :  case LT_EXPR: val = (cmp < 0); break;
    2606            0 :  case GT_EXPR: val = (cmp > 0); break;
    2607            0 :  case LE_EXPR: val = (cmp <= 0); break;
    2608            0 :  case GE_EXPR: val = (cmp >= 0); break;
    2609            0 :  default: gcc_unreachable ();
    2610              :  }
    2611            0 :           if (code1 == EQ_EXPR && val
    2612              : )
    2613              :             {
    2614            0 :               if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail821;
    2615            0 :               if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail821;
    2616            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail821;
    2617            0 :               {
    2618            0 :                 tree _r;
    2619            0 :                 _r = captures[0];
    2620            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 673, __FILE__, __LINE__, true);
    2621            0 :                 return _r;
    2622              :               }
    2623              : next_after_fail821:;
    2624              :             }
    2625              :           else
    2626              :             {
    2627            0 :               if (code1 == EQ_EXPR && !val
    2628              : )
    2629              :                 {
    2630            0 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail822;
    2631            0 :                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail822;
    2632            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail822;
    2633            0 :                   {
    2634            0 :                     tree _r;
    2635            0 :                     _r =  constant_boolean_node (false, type);
    2636            0 :                     if (TREE_SIDE_EFFECTS (captures[1]))
    2637            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2638            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 674, __FILE__, __LINE__, true);
    2639            0 :                     return _r;
    2640              :                   }
    2641              : next_after_fail822:;
    2642              :                 }
    2643              :               else
    2644              :                 {
    2645            0 :                   if (code1 == NE_EXPR && !val && allbits
    2646              : )
    2647              :                     {
    2648            0 :                       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail823;
    2649            0 :                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail823;
    2650            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail823;
    2651            0 :                       {
    2652            0 :                         tree _r;
    2653            0 :                         _r = captures[3];
    2654            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 675, __FILE__, __LINE__, true);
    2655            0 :                         return _r;
    2656              :                       }
    2657              : next_after_fail823:;
    2658              :                     }
    2659              :                   else
    2660              :                     {
    2661            0 :                       if ((code1 == NE_EXPR
    2662            0 :  && code2 == GE_EXPR
    2663            0 :  && cmp == 0
    2664            0 :  && allbits)
    2665            0 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
    2666            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GT_EXPR))
    2667            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
    2668              : )
    2669              :                         {
    2670            0 :                           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail824;
    2671            0 :                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail824;
    2672            0 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail824;
    2673            0 :                           {
    2674            0 :                             tree res_op0;
    2675            0 :                             res_op0 = captures[4];
    2676            0 :                             tree res_op1;
    2677            0 :                             {
    2678            0 :                               tree _o1[1], _r1;
    2679            0 :                               _o1[0] = captures[2];
    2680            0 :                               if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
    2681              :                                 {
    2682            0 :                                   _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
    2683              :                                 }
    2684              :                               else
    2685              :                                 _r1 = _o1[0];
    2686            0 :                               res_op1 = _r1;
    2687              :                             }
    2688            0 :                             tree _r;
    2689            0 :                             _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
    2690            0 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 676, __FILE__, __LINE__, true);
    2691            0 :                             return _r;
    2692              :                           }
    2693              : next_after_fail824:;
    2694              :                         }
    2695              :                       else
    2696              :                         {
    2697            0 :                           if ((code1 == NE_EXPR
    2698            0 :  && code2 == LE_EXPR
    2699            0 :  && cmp == 0
    2700            0 :  && allbits)
    2701            0 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
    2702            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LT_EXPR))
    2703            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
    2704              : )
    2705              :                             {
    2706            0 :                               if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail825;
    2707            0 :                               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail825;
    2708            0 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail825;
    2709            0 :                               {
    2710            0 :                                 tree res_op0;
    2711            0 :                                 res_op0 = captures[4];
    2712            0 :                                 tree res_op1;
    2713            0 :                                 {
    2714            0 :                                   tree _o1[1], _r1;
    2715            0 :                                   _o1[0] = captures[2];
    2716            0 :                                   if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
    2717              :                                     {
    2718            0 :                                       _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
    2719              :                                     }
    2720              :                                   else
    2721              :                                     _r1 = _o1[0];
    2722            0 :                                   res_op1 = _r1;
    2723              :                                 }
    2724            0 :                                 tree _r;
    2725            0 :                                 _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
    2726            0 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 677, __FILE__, __LINE__, true);
    2727            0 :                                 return _r;
    2728              :                               }
    2729              : next_after_fail825:;
    2730              :                             }
    2731              :                           else
    2732              :                             {
    2733            0 :                               if ((code1 == NE_EXPR
    2734            0 :  && code2 == GT_EXPR
    2735              :  && one_after
    2736            0 :  && allbits)
    2737            0 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
    2738            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GT_EXPR))
    2739            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
    2740              : )
    2741              :                                 {
    2742            0 :                                   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail826;
    2743            0 :                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail826;
    2744            0 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail826;
    2745            0 :                                   {
    2746            0 :                                     tree res_op0;
    2747            0 :                                     res_op0 = captures[4];
    2748            0 :                                     tree res_op1;
    2749            0 :                                     {
    2750            0 :                                       tree _o1[1], _r1;
    2751            0 :                                       _o1[0] = captures[2];
    2752            0 :                                       if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
    2753              :                                         {
    2754            0 :                                           _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
    2755              :                                         }
    2756              :                                       else
    2757              :                                         _r1 = _o1[0];
    2758            0 :                                       res_op1 = _r1;
    2759              :                                     }
    2760            0 :                                     tree _r;
    2761            0 :                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
    2762            0 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 678, __FILE__, __LINE__, true);
    2763            0 :                                     return _r;
    2764              :                                   }
    2765              : next_after_fail826:;
    2766              :                                 }
    2767              :                               else
    2768              :                                 {
    2769            0 :                                   if ((code1 == NE_EXPR
    2770            0 :  && code2 == LT_EXPR
    2771              :  && one_before
    2772            0 :  && allbits)
    2773            0 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
    2774            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LT_EXPR))
    2775            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
    2776              : )
    2777              :                                     {
    2778            0 :                                       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail827;
    2779            0 :                                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail827;
    2780            0 :                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail827;
    2781            0 :                                       {
    2782            0 :                                         tree res_op0;
    2783            0 :                                         res_op0 = captures[4];
    2784            0 :                                         tree res_op1;
    2785            0 :                                         {
    2786            0 :                                           tree _o1[1], _r1;
    2787            0 :                                           _o1[0] = captures[2];
    2788            0 :                                           if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
    2789              :                                             {
    2790            0 :                                               _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
    2791              :                                             }
    2792              :                                           else
    2793              :                                             _r1 = _o1[0];
    2794            0 :                                           res_op1 = _r1;
    2795              :                                         }
    2796            0 :                                         tree _r;
    2797            0 :                                         _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
    2798            0 :                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 679, __FILE__, __LINE__, true);
    2799            0 :                                         return _r;
    2800              :                                       }
    2801              : next_after_fail827:;
    2802              :                                     }
    2803              :                                 }
    2804              :                             }
    2805              :                         }
    2806              :                     }
    2807              :                 }
    2808              :             }
    2809              :       }
    2810              :     }
    2811              :   return NULL_TREE;
    2812              : }
    2813              : 
    2814              : tree
    2815           31 : generic_simplify_502 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2816              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
    2817              : {
    2818           31 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2819           31 :   if (!TYPE_UNSIGNED (TREE_TYPE (captures[2]))
    2820           54 :  && (element_precision (TREE_TYPE (captures[2]))
    2821           23 :  <= element_precision (TREE_TYPE (captures[3]))
    2822            1 :  || !TYPE_UNSIGNED (TREE_TYPE (captures[3])))
    2823              : )
    2824              :     {
    2825           22 :       {
    2826           22 :  tree shift_type = TREE_TYPE (captures[2]);
    2827           22 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail893;
    2828           22 :           {
    2829           22 :             tree res_op0;
    2830           22 :             {
    2831           22 :               tree _o1[2], _r1;
    2832           22 :               {
    2833           22 :                 tree _o2[1], _r2;
    2834           22 :                 _o2[0] = captures[3];
    2835           22 :                 if (TREE_TYPE (_o2[0]) != shift_type)
    2836              :                   {
    2837            1 :                     _r2 = fold_build1_loc (loc, NOP_EXPR, shift_type, _o2[0]);
    2838              :                   }
    2839              :                 else
    2840              :                   _r2 = _o2[0];
    2841           22 :                 _o1[0] = _r2;
    2842              :               }
    2843           22 :               _o1[1] = captures[4];
    2844           22 :               _r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2845           22 :               res_op0 = _r1;
    2846              :             }
    2847           22 :             tree _r;
    2848           22 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    2849           22 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 707, __FILE__, __LINE__, true);
    2850           22 :             return _r;
    2851              :           }
    2852            0 : next_after_fail893:;
    2853              :       }
    2854              :     }
    2855              :   return NULL_TREE;
    2856              : }
    2857              : 
    2858              : tree
    2859         3769 : generic_simplify_514 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2860              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
    2861              : {
    2862         3769 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2863         3769 :   if (!TYPE_SATURATING (type)
    2864              : )
    2865              :     {
    2866         3734 :       if (!TYPE_OVERFLOW_SANITIZED (type)
    2867         7490 :  && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[0]))
    2868              : )
    2869              :         {
    2870         3756 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail906;
    2871         3756 :           {
    2872         3756 :             tree res_op0;
    2873         3756 :             {
    2874         3756 :               tree _o1[1], _r1;
    2875         3756 :               _o1[0] = captures[0];
    2876         3756 :               if (TREE_TYPE (_o1[0]) != type)
    2877              :                 {
    2878            0 :                   _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
    2879              :                 }
    2880              :               else
    2881              :                 _r1 = _o1[0];
    2882         3756 :               res_op0 = _r1;
    2883              :             }
    2884         3756 :             tree _r;
    2885         3756 :             _r = non_lvalue_loc (loc, res_op0);
    2886         3756 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 718, __FILE__, __LINE__, true);
    2887         3756 :             return _r;
    2888              :           }
    2889            0 : next_after_fail906:;
    2890              :         }
    2891              :     }
    2892              :   return NULL_TREE;
    2893              : }
    2894              : 
    2895              : tree
    2896            4 : generic_simplify_521 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2897              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    2898              : {
    2899            4 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2900            4 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail914;
    2901            4 :   {
    2902            4 :     tree _r;
    2903            4 :     _r = captures[1];
    2904            4 :     if (TREE_SIDE_EFFECTS (captures[0]))
    2905            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    2906            4 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 725, __FILE__, __LINE__, true);
    2907              :     return _r;
    2908              :   }
    2909            0 : next_after_fail914:;
    2910            0 :   return NULL_TREE;
    2911              : }
    2912              : 
    2913              : tree
    2914           20 : generic_simplify_530 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2915              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2916              :  const enum tree_code ARG_UNUSED (minmax),
    2917              :  const enum tree_code ARG_UNUSED (cmp))
    2918              : {
    2919           20 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2920           20 :   {
    2921           20 :  poly_int64 off0, off1;
    2922           20 :  tree base0, base1;
    2923           20 :  int equal = address_compare (cmp, TREE_TYPE (captures[0]), captures[1], captures[3], base0, base1,
    2924              :  off0, off1,
    2925              : 1
    2926              : );
    2927           20 :       if (equal == 1
    2928              : )
    2929              :         {
    2930            0 :           if (minmax == MIN_EXPR
    2931              : )
    2932              :             {
    2933            0 :               if (known_le (off0, off1)
    2934              : )
    2935              :                 {
    2936            0 :                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail934;
    2937            0 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail934;
    2938            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail934;
    2939            0 :                   {
    2940            0 :                     tree _r;
    2941            0 :                     _r = captures[0];
    2942            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 733, __FILE__, __LINE__, true);
    2943            0 :                     return _r;
    2944              :                   }
    2945           20 : next_after_fail934:;
    2946              :                 }
    2947              :               else
    2948              :                 {
    2949            0 :                   if (known_gt (off0, off1)
    2950              : )
    2951              :                     {
    2952            0 :                       if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail935;
    2953            0 :                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail935;
    2954            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail935;
    2955            0 :                       {
    2956            0 :                         tree _r;
    2957            0 :                         _r = captures[2];
    2958            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 734, __FILE__, __LINE__, true);
    2959            0 :                         return _r;
    2960              :                       }
    2961           20 : next_after_fail935:;
    2962              :                     }
    2963              :                 }
    2964              :             }
    2965              :           else
    2966              :             {
    2967            0 :               if (known_ge (off0, off1)
    2968              : )
    2969              :                 {
    2970            0 :                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail936;
    2971            0 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail936;
    2972            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail936;
    2973            0 :                   {
    2974            0 :                     tree _r;
    2975            0 :                     _r = captures[0];
    2976            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 735, __FILE__, __LINE__, true);
    2977            0 :                     return _r;
    2978              :                   }
    2979           20 : next_after_fail936:;
    2980              :                 }
    2981              :               else
    2982              :                 {
    2983            0 :                   if (known_lt (off0, off1)
    2984              : )
    2985              :                     {
    2986            0 :                       if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail937;
    2987            0 :                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail937;
    2988            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail937;
    2989            0 :                       {
    2990            0 :                         tree _r;
    2991            0 :                         _r = captures[2];
    2992            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 736, __FILE__, __LINE__, true);
    2993            0 :                         return _r;
    2994              :                       }
    2995           20 : next_after_fail937:;
    2996              :                     }
    2997              :                 }
    2998              :             }
    2999              :         }
    3000              :   }
    3001           20 :   return NULL_TREE;
    3002              : }
    3003              : 
    3004              : tree
    3005            0 : generic_simplify_551 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3006              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    3007              :  const combined_fn ARG_UNUSED (cond_len_op))
    3008              : {
    3009            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3010            0 :   {
    3011            0 :  tree op_type = TREE_TYPE (captures[6]);
    3012            0 :       if (inverse_conditions_p (captures[0], captures[2])
    3013            0 :  && element_precision (type) == element_precision (op_type)
    3014              : )
    3015              :         {
    3016            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail958;
    3017            0 :           {
    3018            0 :             tree res_op0;
    3019            0 :             {
    3020            0 :               tree _o1[7], _r1;
    3021            0 :               _o1[0] = captures[2];
    3022            0 :               _o1[1] = captures[3];
    3023            0 :               _o1[2] = captures[4];
    3024            0 :               _o1[3] = captures[5];
    3025            0 :               {
    3026            0 :                 tree _o2[1], _r2;
    3027            0 :                 _o2[0] = captures[1];
    3028            0 :                 if (TREE_TYPE (_o2[0]) != op_type)
    3029              :                   {
    3030            0 :                     _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, op_type, _o2[0]);
    3031              :                   }
    3032              :                 else
    3033              :                   _r2 = _o2[0];
    3034            0 :                 _o1[4] = _r2;
    3035              :               }
    3036            0 :               _o1[5] = captures[7];
    3037            0 :               _o1[6] = captures[8];
    3038            0 :               _r1 = maybe_build_call_expr_loc (loc, cond_len_op, TREE_TYPE (_o1[1]), 7, _o1[0], _o1[1], _o1[2], _o1[3], _o1[4], _o1[5], _o1[6]);
    3039            0 :               if (!_r1)
    3040            0 :                 goto next_after_fail958;
    3041            0 :               res_op0 = _r1;
    3042              :             }
    3043            0 :             tree _r;
    3044            0 :             _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
    3045            0 :             if (TREE_SIDE_EFFECTS (captures[0]))
    3046            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    3047            0 :             if (TREE_SIDE_EFFECTS (captures[6]))
    3048            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[6]), _r);
    3049            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 752, __FILE__, __LINE__, true);
    3050            0 :             return _r;
    3051              :           }
    3052              : next_after_fail958:;
    3053              :         }
    3054              :   }
    3055              :   return NULL_TREE;
    3056              : }
    3057              : 
    3058              : tree
    3059            0 : generic_simplify_564 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3060              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    3061              :  const combined_fn ARG_UNUSED (ovf))
    3062              : {
    3063            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3064            0 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    3065            0 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    3066            0 :  && TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (TREE_TYPE (captures[1]))
    3067            0 :  && (!TYPE_UNSIGNED (TREE_TYPE (captures[0])) || TYPE_UNSIGNED (TREE_TYPE (captures[1])))
    3068              : )
    3069              :     {
    3070            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail974;
    3071            0 :       {
    3072            0 :         tree res_op0;
    3073            0 :         res_op0 = captures[1];
    3074            0 :         tree res_op1;
    3075            0 :         res_op1 = captures[2];
    3076            0 :         tree _r;
    3077            0 :         _r = maybe_build_call_expr_loc (loc, ovf, type, 2, res_op0, res_op1);
    3078            0 :         if (!_r)
    3079            0 :           goto next_after_fail974;
    3080            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 768, __FILE__, __LINE__, true);
    3081            0 :         return _r;
    3082              :       }
    3083              : next_after_fail974:;
    3084              :     }
    3085              :   return NULL_TREE;
    3086              : }
    3087              : 
    3088              : tree
    3089            0 : generic_simplify_572 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3090              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3091              :  const combined_fn ARG_UNUSED (fns))
    3092              : {
    3093            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3094            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail982;
    3095            0 :   {
    3096            0 :     tree res_op0;
    3097            0 :     res_op0 = captures[0];
    3098            0 :     tree _r;
    3099            0 :     _r = maybe_build_call_expr_loc (loc, fns, type, 1, res_op0);
    3100            0 :     if (!_r)
    3101            0 :       goto next_after_fail982;
    3102            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 776, __FILE__, __LINE__, true);
    3103              :     return _r;
    3104              :   }
    3105              : next_after_fail982:;
    3106              :   return NULL_TREE;
    3107              : }
    3108              : 
    3109              : tree
    3110            0 : generic_simplify_580 (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 (froms),
    3113              :  const combined_fn ARG_UNUSED (tos))
    3114              : {
    3115            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3116            0 :   if (optimize && canonicalize_math_p ()
    3117              : )
    3118              :     {
    3119            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail990;
    3120            0 :       {
    3121            0 :         tree res_op0;
    3122            0 :         res_op0 = captures[0];
    3123            0 :         tree _r;
    3124            0 :         _r = maybe_build_call_expr_loc (loc, tos, type, 1, res_op0);
    3125            0 :         if (!_r)
    3126            0 :           goto next_after_fail990;
    3127            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 784, __FILE__, __LINE__, true);
    3128            0 :         return _r;
    3129              :       }
    3130              : next_after_fail990:;
    3131              :     }
    3132              :   return NULL_TREE;
    3133              : }
    3134              : 
    3135              : tree
    3136            0 : generic_simplify_588 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3137              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    3138              :  const combined_fn ARG_UNUSED (fmas))
    3139              : {
    3140            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3141            0 :   if (canonicalize_math_after_vectorization_p ()
    3142              : )
    3143              :     {
    3144              :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail998;
    3145              :       {
    3146              :         tree res_op0;
    3147              :         res_op0 = captures[0];
    3148              :         tree res_op1;
    3149              :         res_op1 = captures[1];
    3150              :         tree res_op2;
    3151              :         res_op2 = captures[2];
    3152              :         tree _r;
    3153              :         _r = maybe_build_call_expr_loc (loc, CFN_FNMA, type, 3, res_op0, res_op1, res_op2);
    3154              :         if (!_r)
    3155              :           goto next_after_fail998;
    3156              :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 792, __FILE__, __LINE__, true);
    3157              :         return _r;
    3158              :       }
    3159            0 : next_after_fail998:;
    3160              :     }
    3161            0 :   return NULL_TREE;
    3162              : }
    3163              : 
    3164              : tree
    3165            0 : generic_simplify_598 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3166              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree ARG_UNUSED (_p3), tree ARG_UNUSED (_p4), tree *ARG_UNUSED (captures),
    3167              :  const combined_fn ARG_UNUSED (fmas))
    3168              : {
    3169            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3170            0 :   if (canonicalize_math_after_vectorization_p ()
    3171              : )
    3172              :     {
    3173              :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1008;
    3174              :       {
    3175              :         tree res_op0;
    3176              :         res_op0 = captures[0];
    3177              :         tree res_op1;
    3178              :         res_op1 = captures[1];
    3179              :         tree res_op2;
    3180              :         res_op2 = captures[2];
    3181              :         tree res_op3;
    3182              :         res_op3 = captures[3];
    3183              :         tree res_op4;
    3184              :         res_op4 = captures[4];
    3185              :         tree _r;
    3186              :         _r = maybe_build_call_expr_loc (loc, CFN_COND_FNMA, type, 5, res_op0, res_op1, res_op2, res_op3, res_op4);
    3187              :         if (!_r)
    3188              :           goto next_after_fail1008;
    3189              :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 802, __FILE__, __LINE__, true);
    3190              :         return _r;
    3191              :       }
    3192            0 : next_after_fail1008:;
    3193              :     }
    3194            0 :   return NULL_TREE;
    3195              : }
    3196              : 
    3197              : tree
    3198            0 : generic_simplify_607 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3199              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3200              :  const combined_fn ARG_UNUSED (ctz))
    3201              : {
    3202            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3203            0 :   {
    3204            0 :  tree t = TREE_TYPE (captures[0]);
    3205            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1017;
    3206            0 :       {
    3207            0 :         tree res_op0;
    3208            0 :         {
    3209            0 :           tree _o1[1], _r1;
    3210            0 :           _o1[0] = captures[1];
    3211            0 :           if (TREE_TYPE (_o1[0]) != t)
    3212              :             {
    3213            0 :               _r1 = fold_build1_loc (loc, NOP_EXPR, t, _o1[0]);
    3214              :             }
    3215              :           else
    3216              :             _r1 = _o1[0];
    3217            0 :           res_op0 = _r1;
    3218              :         }
    3219            0 :         tree _r;
    3220            0 :         _r = maybe_build_call_expr_loc (loc, ctz, type, 1, res_op0);
    3221            0 :         if (!_r)
    3222            0 :           goto next_after_fail1017;
    3223            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 810, __FILE__, __LINE__, true);
    3224              :         return _r;
    3225              :       }
    3226              : next_after_fail1017:;
    3227              :   }
    3228              :   return NULL_TREE;
    3229              : }
    3230              : 
    3231              : tree
    3232            0 : generic_simplify_617 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3233              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3234              :  const combined_fn ARG_UNUSED (bswap),
    3235              :  const combined_fn ARG_UNUSED (parity))
    3236              : {
    3237            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3238            0 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    3239            0 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    3240            0 :  && TYPE_PRECISION (TREE_TYPE (captures[0]))
    3241            0 :  >= TYPE_PRECISION (TREE_TYPE (captures[1]))
    3242              : )
    3243              :     {
    3244            0 :       {
    3245            0 :  tree type0 = TREE_TYPE (captures[0]);
    3246            0 :  tree type1 = TREE_TYPE (captures[1]);
    3247            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1028;
    3248            0 :           {
    3249            0 :             tree res_op0;
    3250            0 :             {
    3251            0 :               tree _o1[1], _r1;
    3252            0 :               {
    3253            0 :                 tree _o2[1], _r2;
    3254            0 :                 _o2[0] = captures[2];
    3255            0 :                 if (TREE_TYPE (_o2[0]) != type1)
    3256              :                   {
    3257            0 :                     _r2 = fold_build1_loc (loc, NOP_EXPR, type1, _o2[0]);
    3258              :                   }
    3259              :                 else
    3260              :                   _r2 = _o2[0];
    3261            0 :                 _o1[0] = _r2;
    3262              :               }
    3263            0 :               if (TREE_TYPE (_o1[0]) != type0)
    3264              :                 {
    3265            0 :                   _r1 = fold_build1_loc (loc, NOP_EXPR, type0, _o1[0]);
    3266              :                 }
    3267              :               else
    3268              :                 _r1 = _o1[0];
    3269            0 :               res_op0 = _r1;
    3270              :             }
    3271            0 :             tree _r;
    3272            0 :             _r = maybe_build_call_expr_loc (loc, parity, type, 1, res_op0);
    3273            0 :             if (!_r)
    3274            0 :               goto next_after_fail1028;
    3275            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 817, __FILE__, __LINE__, true);
    3276            0 :             return _r;
    3277              :           }
    3278              : next_after_fail1028:;
    3279              :       }
    3280              :     }
    3281              :   return NULL_TREE;
    3282              : }
    3283              : 
    3284              : tree
    3285    714288288 : generic_simplify_CONVERT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0)
    3286              : {
    3287    714288288 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3288    714288288 :   switch (TREE_CODE (_p0))
    3289              :     {
    3290       729198 :     case NEGATE_EXPR:
    3291       729198 :       {
    3292       729198 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3293       729198 :         switch (TREE_CODE (_q20))
    3294              :           {
    3295       395003 :           CASE_CONVERT:
    3296       395003 :             {
    3297       395003 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3298       395003 :               {
    3299       395003 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 };
    3300       395003 :                 if (INTEGRAL_TYPE_P (type)
    3301       394702 :  && tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
    3302       390962 :  && (TYPE_PRECISION (type) > TYPE_PRECISION (TREE_TYPE (captures[2]))
    3303       390111 :  || TYPE_UNSIGNED (type))
    3304       420213 :  && TREE_CODE (type) != BOOLEAN_TYPE
    3305              : )
    3306              :                   {
    3307        25210 :                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1042;
    3308        25210 :                     {
    3309        25210 :                       tree res_op0;
    3310        25210 :                       {
    3311        25210 :                         tree _o1[1], _r1;
    3312        25210 :                         _o1[0] = captures[2];
    3313        25210 :                         if (TREE_TYPE (_o1[0]) != type)
    3314              :                           {
    3315        25168 :                             _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    3316              :                           }
    3317              :                         else
    3318              :                           _r1 = _o1[0];
    3319        25210 :                         res_op0 = _r1;
    3320              :                       }
    3321        25210 :                       tree _r;
    3322        25210 :                       _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    3323        25210 :                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 829, __FILE__, __LINE__, true);
    3324        25210 :                       return _r;
    3325              :                     }
    3326            0 : next_after_fail1042:;
    3327              :                   }
    3328              :               }
    3329       369793 :               break;
    3330              :             }
    3331              :           default:;
    3332              :           }
    3333              :         break;
    3334              :       }
    3335      1191942 :     case BIT_AND_EXPR:
    3336      1191942 :       {
    3337      1191942 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3338      1191942 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3339      1191942 :         {
    3340      1191942 :           tree _q20_pops[1];
    3341      1191942 :           if (tree_nop_convert (_q20, _q20_pops))
    3342              :             {
    3343       601812 :               tree _q30 = _q20_pops[0];
    3344       601812 :               {
    3345       601812 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21 };
    3346       601812 :                 tree res = generic_simplify_428 (loc, type, _p0, captures, BIT_AND_EXPR);
    3347       601812 :                 if (res) return res;
    3348              :               }
    3349              :             }
    3350              :         }
    3351      1191942 :         {
    3352      1191942 :           tree _q21_pops[1];
    3353      1191942 :           if (tree_nop_convert (_q21, _q21_pops))
    3354              :             {
    3355       513521 :               tree _q40 = _q21_pops[0];
    3356       513521 :               {
    3357       513521 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q20 };
    3358       513521 :                 tree res = generic_simplify_428 (loc, type, _p0, captures, BIT_AND_EXPR);
    3359       513521 :                 if (res) return res;
    3360              :               }
    3361              :             }
    3362              :         }
    3363      1191942 :         switch (TREE_CODE (_q20))
    3364              :           {
    3365       673533 :           CASE_CONVERT:
    3366       673533 :             {
    3367       673533 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3368       673533 :               {
    3369       673533 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21 };
    3370       673533 :                 tree res = generic_simplify_429 (loc, type, _p0, captures, BIT_AND_EXPR);
    3371       673533 :                 if (res) return res;
    3372              :               }
    3373       673533 :               break;
    3374              :             }
    3375      1191942 :           default:;
    3376              :           }
    3377      1191942 :         switch (TREE_CODE (_q21))
    3378              :           {
    3379       514302 :           CASE_CONVERT:
    3380       514302 :             {
    3381       514302 :               tree _q40 = TREE_OPERAND (_q21, 0);
    3382       514302 :               {
    3383       514302 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q20 };
    3384       514302 :                 tree res = generic_simplify_429 (loc, type, _p0, captures, BIT_AND_EXPR);
    3385       514302 :                 if (res) return res;
    3386              :               }
    3387       514302 :               break;
    3388              :             }
    3389              :           default:;
    3390              :           }
    3391              :         break;
    3392              :       }
    3393      1138414 :     case BIT_IOR_EXPR:
    3394      1138414 :       {
    3395      1138414 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3396      1138414 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3397      1138414 :         {
    3398      1138414 :           tree _q20_pops[1];
    3399      1138414 :           if (tree_nop_convert (_q20, _q20_pops))
    3400              :             {
    3401       419046 :               tree _q30 = _q20_pops[0];
    3402       419046 :               {
    3403       419046 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21 };
    3404       419046 :                 tree res = generic_simplify_428 (loc, type, _p0, captures, BIT_IOR_EXPR);
    3405       419046 :                 if (res) return res;
    3406              :               }
    3407              :             }
    3408              :         }
    3409      1138414 :         {
    3410      1138414 :           tree _q21_pops[1];
    3411      1138414 :           if (tree_nop_convert (_q21, _q21_pops))
    3412              :             {
    3413      1067127 :               tree _q40 = _q21_pops[0];
    3414      1067127 :               {
    3415      1067127 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q20 };
    3416      1067127 :                 tree res = generic_simplify_428 (loc, type, _p0, captures, BIT_IOR_EXPR);
    3417      1067127 :                 if (res) return res;
    3418              :               }
    3419              :             }
    3420              :         }
    3421      1138414 :         switch (TREE_CODE (_q20))
    3422              :           {
    3423       436049 :           CASE_CONVERT:
    3424       436049 :             {
    3425       436049 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3426       436049 :               {
    3427       436049 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21 };
    3428       436049 :                 tree res = generic_simplify_429 (loc, type, _p0, captures, BIT_IOR_EXPR);
    3429       436049 :                 if (res) return res;
    3430              :               }
    3431       436049 :               break;
    3432              :             }
    3433      1138414 :           default:;
    3434              :           }
    3435      1138414 :         switch (TREE_CODE (_q21))
    3436              :           {
    3437      1074961 :           CASE_CONVERT:
    3438      1074961 :             {
    3439      1074961 :               tree _q40 = TREE_OPERAND (_q21, 0);
    3440      1074961 :               {
    3441      1074961 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q20 };
    3442      1074961 :                 tree res = generic_simplify_429 (loc, type, _p0, captures, BIT_IOR_EXPR);
    3443      1074961 :                 if (res) return res;
    3444              :               }
    3445      1074961 :               break;
    3446              :             }
    3447              :           default:;
    3448              :           }
    3449              :         break;
    3450              :       }
    3451       583857 :     case BIT_XOR_EXPR:
    3452       583857 :       {
    3453       583857 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3454       583857 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3455       583857 :         {
    3456       583857 :           tree _q20_pops[1];
    3457       583857 :           if (tree_nop_convert (_q20, _q20_pops))
    3458              :             {
    3459       332659 :               tree _q30 = _q20_pops[0];
    3460       332659 :               {
    3461       332659 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21 };
    3462       332659 :                 tree res = generic_simplify_428 (loc, type, _p0, captures, BIT_XOR_EXPR);
    3463       332659 :                 if (res) return res;
    3464              :               }
    3465              :             }
    3466              :         }
    3467       583857 :         {
    3468       583857 :           tree _q21_pops[1];
    3469       583857 :           if (tree_nop_convert (_q21, _q21_pops))
    3470              :             {
    3471       468658 :               tree _q40 = _q21_pops[0];
    3472       468658 :               {
    3473       468658 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q20 };
    3474       468658 :                 tree res = generic_simplify_428 (loc, type, _p0, captures, BIT_XOR_EXPR);
    3475       468658 :                 if (res) return res;
    3476              :               }
    3477              :             }
    3478              :         }
    3479       583857 :         switch (TREE_CODE (_q20))
    3480              :           {
    3481       373551 :           CASE_CONVERT:
    3482       373551 :             {
    3483       373551 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3484       373551 :               {
    3485       373551 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21 };
    3486       373551 :                 tree res = generic_simplify_429 (loc, type, _p0, captures, BIT_XOR_EXPR);
    3487       373551 :                 if (res) return res;
    3488              :               }
    3489       373551 :               break;
    3490              :             }
    3491       583857 :           default:;
    3492              :           }
    3493       583857 :         switch (TREE_CODE (_q21))
    3494              :           {
    3495       508539 :           CASE_CONVERT:
    3496       508539 :             {
    3497       508539 :               tree _q40 = TREE_OPERAND (_q21, 0);
    3498       508539 :               {
    3499       508539 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q21, _q40, _q20 };
    3500       508539 :                 tree res = generic_simplify_429 (loc, type, _p0, captures, BIT_XOR_EXPR);
    3501       508539 :                 if (res) return res;
    3502              :               }
    3503       508539 :               break;
    3504              :             }
    3505              :           default:;
    3506              :           }
    3507              :         break;
    3508              :       }
    3509      9082043 :     case MULT_EXPR:
    3510      9082043 :       {
    3511      9082043 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3512      9082043 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3513      9082043 :         if (tree_zero_one_valued_p (_q20))
    3514              :           {
    3515        57510 :             switch (TREE_CODE (_q21))
    3516              :               {
    3517        52033 :               case INTEGER_CST:
    3518        52033 :                 {
    3519        52033 :                   {
    3520        52033 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    3521        52033 :                     if (INTEGRAL_TYPE_P (type)
    3522        52033 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    3523        52033 :  && TYPE_PRECISION (type) < TYPE_PRECISION (TREE_TYPE (captures[0]))
    3524        52039 :  && (TYPE_UNSIGNED (type) || TYPE_PRECISION (type) > 1)
    3525              : )
    3526              :                       {
    3527            6 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1043;
    3528            6 :                         {
    3529            6 :                           tree res_op0;
    3530            6 :                           {
    3531            6 :                             tree _o1[1], _r1;
    3532            6 :                             _o1[0] = captures[1];
    3533            6 :                             if (TREE_TYPE (_o1[0]) != type)
    3534              :                               {
    3535            6 :                                 _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    3536              :                               }
    3537              :                             else
    3538              :                               _r1 = _o1[0];
    3539            6 :                             res_op0 = _r1;
    3540              :                           }
    3541            6 :                           tree res_op1;
    3542            6 :                           {
    3543            6 :                             tree _o1[1], _r1;
    3544            6 :                             _o1[0] = captures[2];
    3545            6 :                             if (TREE_TYPE (_o1[0]) != type)
    3546              :                               {
    3547            6 :                                 _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    3548              :                               }
    3549              :                             else
    3550              :                               _r1 = _o1[0];
    3551            6 :                             res_op1 = _r1;
    3552              :                           }
    3553            6 :                           tree _r;
    3554            6 :                           _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    3555            6 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 830, __FILE__, __LINE__, true);
    3556            6 :                           return _r;
    3557              :                         }
    3558            0 : next_after_fail1043:;
    3559              :                       }
    3560              :                   }
    3561        52027 :                   break;
    3562              :                 }
    3563              :               default:;
    3564              :               }
    3565              :           }
    3566              :         break;
    3567              :       }
    3568      1115517 :     case POINTER_DIFF_EXPR:
    3569      1115517 :       {
    3570      1115517 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3571      1115517 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3572      1115517 :         switch (TREE_CODE (_q21))
    3573              :           {
    3574          200 :           case INTEGER_CST:
    3575          200 :             {
    3576          200 :               {
    3577          200 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    3578          200 :                 if (POINTER_TYPE_P (type)
    3579              : )
    3580              :                   {
    3581           18 :                     if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1044;
    3582           18 :                     if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1044;
    3583           18 :                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1044;
    3584           18 :                     {
    3585           18 :                       tree _r;
    3586           18 :                       _r =  build_fold_addr_expr_with_type
    3587              :  (build2 (MEM_REF, char_type_node, captures[0],
    3588              :  wide_int_to_tree (ptr_type_node, wi::neg (wi::to_wide (captures[1])))),
    3589              :  type);
    3590           18 :                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 831, __FILE__, __LINE__, true);
    3591           18 :                       return _r;
    3592              :                     }
    3593          182 : next_after_fail1044:;
    3594              :                   }
    3595              :               }
    3596          182 :               break;
    3597              :             }
    3598              :           default:;
    3599              :           }
    3600              :         break;
    3601              :       }
    3602       207337 :     case EQ_EXPR:
    3603       207337 :       {
    3604       207337 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3605       207337 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3606       207337 :         if (tree_zero_one_valued_p (_q20))
    3607              :           {
    3608         1638 :             switch (TREE_CODE (_q21))
    3609              :               {
    3610          761 :               case INTEGER_CST:
    3611          761 :                 {
    3612          761 :                   {
    3613          761 :                     tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    3614          761 :                     tree res = generic_simplify_430 (loc, type, _p0, captures, EQ_EXPR);
    3615          761 :                     if (res) return res;
    3616              :                   }
    3617          714 :                   break;
    3618              :                 }
    3619              :               default:;
    3620              :               }
    3621              :           }
    3622              :         break;
    3623              :       }
    3624       263055 :     case NE_EXPR:
    3625       263055 :       {
    3626       263055 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3627       263055 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3628       263055 :         if (tree_zero_one_valued_p (_q20))
    3629              :           {
    3630         1862 :             switch (TREE_CODE (_q21))
    3631              :               {
    3632         1536 :               case INTEGER_CST:
    3633         1536 :                 {
    3634         1536 :                   {
    3635         1536 :                     tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    3636         1536 :                     tree res = generic_simplify_430 (loc, type, _p0, captures, NE_EXPR);
    3637         1536 :                     if (res) return res;
    3638              :                   }
    3639            1 :                   break;
    3640              :                 }
    3641              :               default:;
    3642              :               }
    3643              :           }
    3644              :         break;
    3645              :       }
    3646         1999 :     case MIN_EXPR:
    3647         1999 :       {
    3648         1999 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3649         1999 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3650         1999 :         switch (TREE_CODE (_q20))
    3651              :           {
    3652          733 :           CASE_CONVERT:
    3653          733 :             {
    3654          733 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3655          733 :               switch (TREE_CODE (_q21))
    3656              :                 {
    3657          659 :                 case INTEGER_CST:
    3658          659 :                   {
    3659          659 :                     {
    3660          659 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q21 };
    3661          659 :                       tree res = generic_simplify_431 (loc, type, _p0, captures, MIN_EXPR);
    3662          659 :                       if (res) return res;
    3663              :                     }
    3664          659 :                     break;
    3665              :                   }
    3666              :                 default:;
    3667              :                 }
    3668              :               break;
    3669              :             }
    3670              :           default:;
    3671              :           }
    3672              :         break;
    3673              :       }
    3674       304436 :     case MAX_EXPR:
    3675       304436 :       {
    3676       304436 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3677       304436 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3678       304436 :         switch (TREE_CODE (_q20))
    3679              :           {
    3680         6652 :           CASE_CONVERT:
    3681         6652 :             {
    3682         6652 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3683         6652 :               switch (TREE_CODE (_q21))
    3684              :                 {
    3685         6616 :                 case INTEGER_CST:
    3686         6616 :                   {
    3687         6616 :                     {
    3688         6616 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q21 };
    3689         6616 :                       tree res = generic_simplify_431 (loc, type, _p0, captures, MAX_EXPR);
    3690         6616 :                       if (res) return res;
    3691              :                     }
    3692         6616 :                     break;
    3693              :                   }
    3694              :                 default:;
    3695              :                 }
    3696              :               break;
    3697              :             }
    3698              :           default:;
    3699              :           }
    3700              :         break;
    3701              :       }
    3702       464397 :     case LSHIFT_EXPR:
    3703       464397 :       {
    3704       464397 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3705       464397 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3706       464397 :         switch (TREE_CODE (_q21))
    3707              :           {
    3708       141050 :           case INTEGER_CST:
    3709       141050 :             {
    3710       141050 :               {
    3711       141050 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    3712       141050 :                 if (INTEGRAL_TYPE_P (type)
    3713       141023 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    3714       141023 :  && !integer_zerop (captures[2])
    3715       281300 :  && TYPE_PRECISION (type) <= TYPE_PRECISION (TREE_TYPE (captures[0]))
    3716              : )
    3717              :                   {
    3718       138967 :                     if (TYPE_PRECISION (type) == TYPE_PRECISION (TREE_TYPE (captures[0]))
    3719       138967 :  || wi::ltu_p (wi::to_wide (captures[2]), TYPE_PRECISION (type))
    3720              : )
    3721              :                       {
    3722       138659 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1045;
    3723       138659 :                         {
    3724       138659 :                           tree res_op0;
    3725       138659 :                           {
    3726       138659 :                             tree _o1[1], _r1;
    3727       138659 :                             _o1[0] = captures[1];
    3728       138659 :                             if (TREE_TYPE (_o1[0]) != type)
    3729              :                               {
    3730       129585 :                                 _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    3731              :                               }
    3732              :                             else
    3733              :                               _r1 = _o1[0];
    3734       138659 :                             res_op0 = _r1;
    3735              :                           }
    3736       138659 :                           tree res_op1;
    3737       138659 :                           res_op1 = captures[2];
    3738       138659 :                           tree _r;
    3739       138659 :                           _r = fold_build2_loc (loc, LSHIFT_EXPR, type, res_op0, res_op1);
    3740       138659 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 832, __FILE__, __LINE__, true);
    3741       138659 :                           return _r;
    3742              :                         }
    3743            0 : next_after_fail1045:;
    3744              :                       }
    3745              :                     else
    3746              :                       {
    3747          308 :                         if (wi::ltu_p (wi::to_wide (captures[2]), TYPE_PRECISION (TREE_TYPE (captures[0])))
    3748              : )
    3749              :                           {
    3750          259 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1046;
    3751          259 :                             {
    3752          259 :                               tree _r;
    3753          259 :                               _r =  build_zero_cst (type);
    3754          259 :                               if (TREE_SIDE_EFFECTS (captures[1]))
    3755           14 :                                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    3756          259 :                               if (TREE_SIDE_EFFECTS (captures[2]))
    3757            0 :                                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    3758          259 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 833, __FILE__, __LINE__, true);
    3759          259 :                               return _r;
    3760              :                             }
    3761            0 : next_after_fail1046:;
    3762              :                           }
    3763              :                       }
    3764              :                   }
    3765              :               }
    3766         2132 :               break;
    3767              :             }
    3768              :           default:;
    3769              :           }
    3770              :         break;
    3771              :       }
    3772    714122554 :     default:;
    3773              :     }
    3774    714122554 :   {
    3775    714122554 :     tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    3776   1428245108 :     if ((
    3777              : 
    3778              :  && useless_type_conversion_p (type, TREE_TYPE (captures[0])))
    3779              :  || (
    3780              : 1
    3781    714122554 :  && type == TREE_TYPE (captures[0]))
    3782              : )
    3783              :       {
    3784     47775962 :         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1047;
    3785     47775962 :         {
    3786     47775962 :           tree _r;
    3787     47775962 :           _r = captures[0];
    3788     47775962 :           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 834, __FILE__, __LINE__, true);
    3789     47775962 :           return _r;
    3790              :         }
    3791            0 : next_after_fail1047:;
    3792              :       }
    3793              :   }
    3794    666346592 :   switch (TREE_CODE (_p0))
    3795              :     {
    3796     94349630 :     CASE_CONVERT:
    3797     94349630 :       {
    3798     94349630 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3799     94349630 :         {
    3800     94349630 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
    3801     94349630 :           {
    3802     94349630 :  tree inside_type = TREE_TYPE (captures[1]);
    3803     94349630 :  tree inter_type = TREE_TYPE (captures[0]);
    3804     94349630 :  int inside_int = INTEGRAL_TYPE_P (inside_type);
    3805     94349630 :  int inside_ptr = POINTER_TYPE_P (inside_type);
    3806     94349630 :  int inside_float = FLOAT_TYPE_P (inside_type);
    3807     94349630 :  int inside_vec = VECTOR_TYPE_P (inside_type);
    3808     94349630 :  unsigned int inside_prec = element_precision (inside_type);
    3809     94349630 :  int inside_unsignedp = TYPE_UNSIGNED (inside_type);
    3810     94349630 :  int inter_int = INTEGRAL_TYPE_P (inter_type);
    3811     94349630 :  int inter_ptr = POINTER_TYPE_P (inter_type);
    3812     94349630 :  int inter_float = FLOAT_TYPE_P (inter_type);
    3813     94349630 :  int inter_vec = VECTOR_TYPE_P (inter_type);
    3814     94349630 :  unsigned int inter_prec = element_precision (inter_type);
    3815     94349630 :  int inter_unsignedp = TYPE_UNSIGNED (inter_type);
    3816     94349630 :  int final_int = INTEGRAL_TYPE_P (type);
    3817     94349630 :  int final_ptr = POINTER_TYPE_P (type);
    3818     94349630 :  int final_float = FLOAT_TYPE_P (type);
    3819     94349630 :  int final_vec = VECTOR_TYPE_P (type);
    3820     94349630 :  unsigned int final_prec = element_precision (type);
    3821     94349630 :  int final_unsignedp = TYPE_UNSIGNED (type);
    3822     94349630 :               if (((
    3823              : 
    3824              :  && useless_type_conversion_p (type, inside_type))
    3825              :  || (
    3826              : 1
    3827     94349630 :  && TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (inside_type)))
    3828     22321739 :  && (((inter_int || inter_ptr) && final_int)
    3829     16720973 :  || (inter_float && final_float))
    3830    100029976 :  && inter_prec >= final_prec
    3831              : )
    3832              :                 {
    3833      5157381 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1048;
    3834      5157381 :                   {
    3835      5157381 :                     tree res_op0;
    3836      5157381 :                     res_op0 = captures[1];
    3837      5157381 :                     tree _r;
    3838      5157381 :                     _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3839      5157381 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 835, __FILE__, __LINE__, true);
    3840      5157381 :                     return _r;
    3841              :                   }
    3842            0 : next_after_fail1048:;
    3843              :                 }
    3844              :               else
    3845              :                 {
    3846     89192249 :                   if (((inter_int && inside_int) || (inter_float && inside_float))
    3847     12442748 :  && (final_int || final_float)
    3848     12312212 :  && inter_prec >= inside_prec
    3849     11068591 :  && (inter_float || inter_unsignedp == inside_unsignedp)
    3850              : )
    3851              :                     {
    3852      7648950 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1049;
    3853      7648950 :                       {
    3854      7648950 :                         tree res_op0;
    3855      7648950 :                         res_op0 = captures[1];
    3856      7648950 :                         tree _r;
    3857      7648950 :                         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3858      7648950 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 836, __FILE__, __LINE__, true);
    3859      7648950 :                         return _r;
    3860              :                       }
    3861            0 : next_after_fail1049:;
    3862            0 :                     }
    3863              :                   else
    3864              :                     {
    3865     81543299 :                       if (inside_int && inter_int && final_int
    3866      4656961 :  && ((inside_prec < inter_prec && inter_prec < final_prec
    3867       193220 :  && inside_unsignedp && !inter_unsignedp)
    3868      4490517 :  || final_prec == inter_prec
    3869      2327239 :  || (inside_prec < inter_prec && inter_prec > final_prec
    3870       153562 :  && !inside_unsignedp && inter_unsignedp))
    3871              : )
    3872              :                         {
    3873      2395366 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1050;
    3874      2395366 :                           {
    3875      2395366 :                             tree res_op0;
    3876      2395366 :                             res_op0 = captures[1];
    3877      2395366 :                             tree _r;
    3878      2395366 :                             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3879      2395366 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 837, __FILE__, __LINE__, true);
    3880      2395366 :                             return _r;
    3881              :                           }
    3882            0 : next_after_fail1050:;
    3883            0 :                         }
    3884              :                       else
    3885              :                         {
    3886     79147933 :                           if (! inside_float && ! inter_float && ! final_float
    3887              :  && ! inside_vec && ! inter_vec && ! final_vec
    3888     79141628 :  && (inter_prec >= inside_prec || inter_prec >= final_prec)
    3889     78411797 :  && ! (inside_int && inter_int
    3890      1662296 :  && inter_unsignedp != inside_unsignedp
    3891      1662296 :  && inter_prec < final_prec)
    3892     77048842 :  && ((inter_unsignedp && inter_prec > inside_prec)
    3893     77048842 :  == (final_unsignedp && final_prec > inter_prec))
    3894     77026120 :  && ! (inside_ptr && inter_prec != final_prec)
    3895     76550285 :  && ! (final_ptr && inside_prec != inter_prec)
    3896              : )
    3897              :                             {
    3898     76529483 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1051;
    3899     76529483 :                               {
    3900     76529483 :                                 tree res_op0;
    3901     76529483 :                                 res_op0 = captures[1];
    3902     76529483 :                                 tree _r;
    3903     76529483 :                                 _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3904     76529483 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 838, __FILE__, __LINE__, true);
    3905     76529483 :                                 return _r;
    3906              :                               }
    3907            0 : next_after_fail1051:;
    3908            0 :                             }
    3909              :                           else
    3910              :                             {
    3911      2618450 :                               if (inside_int && inter_int && final_int
    3912      2122377 :  && final_prec <= inside_prec
    3913       670714 :  && inter_prec >= inside_prec
    3914              : )
    3915              :                                 {
    3916            0 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1052;
    3917            0 :                                   {
    3918            0 :                                     tree res_op0;
    3919            0 :                                     res_op0 = captures[1];
    3920            0 :                                     tree _r;
    3921            0 :                                     _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3922            0 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 839, __FILE__, __LINE__, true);
    3923            0 :                                     return _r;
    3924              :                                   }
    3925            0 : next_after_fail1052:;
    3926            0 :                                 }
    3927              :                               else
    3928              :                                 {
    3929              :                                   if (0
    3930              :  && final_int && inter_int && inside_int
    3931              :  && final_prec >= inside_prec
    3932              :  && inside_prec > inter_prec
    3933              :  && inter_unsignedp
    3934              : )
    3935              :                                     {
    3936              :                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1053;
    3937              :                                       {
    3938              :                                         tree res_op0;
    3939              :                                         {
    3940              :                                           tree _o1[2], _r1;
    3941              :                                           _o1[0] = captures[1];
    3942              :                                           _o1[1] =  wide_int_to_tree
    3943              :  (inside_type,
    3944              :  wi::mask (inter_prec, false,
    3945              :  TYPE_PRECISION (inside_type)));
    3946              :                                           _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    3947              :                                           res_op0 = _r1;
    3948              :                                         }
    3949              :                                         tree _r;
    3950              :                                         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3951              :                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 840, __FILE__, __LINE__, true);
    3952              :                                         return _r;
    3953              :                                       }
    3954              : next_after_fail1053:;
    3955              :                                     }
    3956              :                                   else
    3957              :                                     {
    3958              :                                       if (0
    3959              :  && inside_int && inter_float && final_int &&
    3960              :  (unsigned) significand_size (TYPE_MODE (inter_type))
    3961              :  >= inside_prec - !inside_unsignedp
    3962              : )
    3963              :                                         {
    3964              :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1054;
    3965              :                                           {
    3966              :                                             tree res_op0;
    3967              :                                             res_op0 = captures[1];
    3968              :                                             tree _r;
    3969              :                                             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3970              :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 841, __FILE__, __LINE__, true);
    3971              :                                             return _r;
    3972              :                                           }
    3973              : next_after_fail1054:;
    3974              :                                         }
    3975              :                                     }
    3976              :                                 }
    3977              :                             }
    3978              :                         }
    3979              :                     }
    3980              :                 }
    3981              :           }
    3982              :         }
    3983      2618450 :         break;
    3984              :       }
    3985         3065 :     case FLOAT_EXPR:
    3986         3065 :       {
    3987         3065 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3988         3065 :         {
    3989         3065 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
    3990         3065 :           {
    3991         3065 :  tree inside_type = TREE_TYPE (captures[1]);
    3992         3065 :  tree inter_type = TREE_TYPE (captures[0]);
    3993         3065 :  int inside_int = INTEGRAL_TYPE_P (inside_type);
    3994         3065 :  int inside_ptr = POINTER_TYPE_P (inside_type);
    3995         3065 :  int inside_float = FLOAT_TYPE_P (inside_type);
    3996         3065 :  int inside_vec = VECTOR_TYPE_P (inside_type);
    3997         3065 :  unsigned int inside_prec = element_precision (inside_type);
    3998         3065 :  int inside_unsignedp = TYPE_UNSIGNED (inside_type);
    3999         3065 :  int inter_int = INTEGRAL_TYPE_P (inter_type);
    4000         3065 :  int inter_ptr = POINTER_TYPE_P (inter_type);
    4001         3065 :  int inter_float = FLOAT_TYPE_P (inter_type);
    4002         3065 :  int inter_vec = VECTOR_TYPE_P (inter_type);
    4003         3065 :  unsigned int inter_prec = element_precision (inter_type);
    4004         3065 :  int inter_unsignedp = TYPE_UNSIGNED (inter_type);
    4005         3065 :  int final_int = INTEGRAL_TYPE_P (type);
    4006         3065 :  int final_ptr = POINTER_TYPE_P (type);
    4007         3065 :  int final_float = FLOAT_TYPE_P (type);
    4008         3065 :  int final_vec = VECTOR_TYPE_P (type);
    4009         3065 :  unsigned int final_prec = element_precision (type);
    4010         3065 :  int final_unsignedp = TYPE_UNSIGNED (type);
    4011         3065 :               if (((
    4012              : 
    4013              :  && useless_type_conversion_p (type, inside_type))
    4014              :  || (
    4015              : 1
    4016         3065 :  && TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (inside_type)))
    4017            0 :  && (((inter_int || inter_ptr) && final_int)
    4018            0 :  || (inter_float && final_float))
    4019         3065 :  && inter_prec >= final_prec
    4020              : )
    4021              :                 {
    4022            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1055;
    4023            0 :                   {
    4024            0 :                     tree res_op0;
    4025            0 :                     res_op0 = captures[1];
    4026            0 :                     tree _r;
    4027            0 :                     _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4028            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 835, __FILE__, __LINE__, true);
    4029            0 :                     return _r;
    4030              :                   }
    4031            0 : next_after_fail1055:;
    4032              :                 }
    4033              :               else
    4034              :                 {
    4035         3065 :                   if (((inter_int && inside_int) || (inter_float && inside_float))
    4036            0 :  && (final_int || final_float)
    4037            0 :  && inter_prec >= inside_prec
    4038            0 :  && (inter_float || inter_unsignedp == inside_unsignedp)
    4039              : )
    4040              :                     {
    4041            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1056;
    4042            0 :                       {
    4043            0 :                         tree res_op0;
    4044            0 :                         res_op0 = captures[1];
    4045            0 :                         tree _r;
    4046            0 :                         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4047            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 836, __FILE__, __LINE__, true);
    4048            0 :                         return _r;
    4049              :                       }
    4050            0 : next_after_fail1056:;
    4051            0 :                     }
    4052              :                   else
    4053              :                     {
    4054         3065 :                       if (inside_int && inter_int && final_int
    4055            0 :  && ((inside_prec < inter_prec && inter_prec < final_prec
    4056            0 :  && inside_unsignedp && !inter_unsignedp)
    4057            0 :  || final_prec == inter_prec
    4058            0 :  || (inside_prec < inter_prec && inter_prec > final_prec
    4059            0 :  && !inside_unsignedp && inter_unsignedp))
    4060              : )
    4061              :                         {
    4062            0 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1057;
    4063            0 :                           {
    4064            0 :                             tree res_op0;
    4065            0 :                             res_op0 = captures[1];
    4066            0 :                             tree _r;
    4067            0 :                             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4068            0 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 837, __FILE__, __LINE__, true);
    4069            0 :                             return _r;
    4070              :                           }
    4071            0 : next_after_fail1057:;
    4072            0 :                         }
    4073              :                       else
    4074              :                         {
    4075         3065 :                           if (! inside_float && ! inter_float && ! final_float
    4076              :  && ! inside_vec && ! inter_vec && ! final_vec
    4077            0 :  && (inter_prec >= inside_prec || inter_prec >= final_prec)
    4078            0 :  && ! (inside_int && inter_int
    4079            0 :  && inter_unsignedp != inside_unsignedp
    4080            0 :  && inter_prec < final_prec)
    4081            0 :  && ((inter_unsignedp && inter_prec > inside_prec)
    4082            0 :  == (final_unsignedp && final_prec > inter_prec))
    4083            0 :  && ! (inside_ptr && inter_prec != final_prec)
    4084            0 :  && ! (final_ptr && inside_prec != inter_prec)
    4085              : )
    4086              :                             {
    4087            0 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1058;
    4088            0 :                               {
    4089            0 :                                 tree res_op0;
    4090            0 :                                 res_op0 = captures[1];
    4091            0 :                                 tree _r;
    4092            0 :                                 _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4093            0 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 838, __FILE__, __LINE__, true);
    4094            0 :                                 return _r;
    4095              :                               }
    4096            0 : next_after_fail1058:;
    4097            0 :                             }
    4098              :                           else
    4099              :                             {
    4100         3065 :                               if (inside_int && inter_int && final_int
    4101            0 :  && final_prec <= inside_prec
    4102            0 :  && inter_prec >= inside_prec
    4103              : )
    4104              :                                 {
    4105            0 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1059;
    4106            0 :                                   {
    4107            0 :                                     tree res_op0;
    4108            0 :                                     res_op0 = captures[1];
    4109            0 :                                     tree _r;
    4110            0 :                                     _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4111            0 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 839, __FILE__, __LINE__, true);
    4112            0 :                                     return _r;
    4113              :                                   }
    4114            0 : next_after_fail1059:;
    4115            0 :                                 }
    4116              :                               else
    4117              :                                 {
    4118              :                                   if (0
    4119              :  && final_int && inter_int && inside_int
    4120              :  && final_prec >= inside_prec
    4121              :  && inside_prec > inter_prec
    4122              :  && inter_unsignedp
    4123              : )
    4124              :                                     {
    4125              :                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1060;
    4126              :                                       {
    4127              :                                         tree res_op0;
    4128              :                                         {
    4129              :                                           tree _o1[2], _r1;
    4130              :                                           _o1[0] = captures[1];
    4131              :                                           _o1[1] =  wide_int_to_tree
    4132              :  (inside_type,
    4133              :  wi::mask (inter_prec, false,
    4134              :  TYPE_PRECISION (inside_type)));
    4135              :                                           _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    4136              :                                           res_op0 = _r1;
    4137              :                                         }
    4138              :                                         tree _r;
    4139              :                                         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4140              :                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 840, __FILE__, __LINE__, true);
    4141              :                                         return _r;
    4142              :                                       }
    4143              : next_after_fail1060:;
    4144              :                                     }
    4145              :                                   else
    4146              :                                     {
    4147              :                                       if (0
    4148              :  && inside_int && inter_float && final_int &&
    4149              :  (unsigned) significand_size (TYPE_MODE (inter_type))
    4150              :  >= inside_prec - !inside_unsignedp
    4151              : )
    4152              :                                         {
    4153              :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1061;
    4154              :                                           {
    4155              :                                             tree res_op0;
    4156              :                                             res_op0 = captures[1];
    4157              :                                             tree _r;
    4158              :                                             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4159              :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 841, __FILE__, __LINE__, true);
    4160              :                                             return _r;
    4161              :                                           }
    4162              : next_after_fail1061:;
    4163              :                                         }
    4164              :                                     }
    4165              :                                 }
    4166              :                             }
    4167              :                         }
    4168              :                     }
    4169              :                 }
    4170              :           }
    4171              :         }
    4172         3065 :         break;
    4173              :       }
    4174       836951 :     case BIT_AND_EXPR:
    4175       836951 :       {
    4176       836951 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4177       836951 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4178       836951 :         switch (TREE_CODE (_q21))
    4179              :           {
    4180       210730 :           case INTEGER_CST:
    4181       210730 :             {
    4182       210730 :               {
    4183       210730 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    4184       210730 :                 if (INTEGRAL_TYPE_P (type)
    4185       210222 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    4186       210222 :  && TYPE_PRECISION (type) <= TYPE_PRECISION (TREE_TYPE (captures[0]))
    4187       355070 :  && operand_equal_p (captures[1], build_low_bits_mask (TREE_TYPE (captures[1]),
    4188       144340 :  TYPE_PRECISION (type)), 0)
    4189              : )
    4190              :                   {
    4191        12477 :                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1062;
    4192        12477 :                     {
    4193        12477 :                       tree res_op0;
    4194        12477 :                       res_op0 = captures[0];
    4195        12477 :                       tree _r;
    4196        12477 :                       _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4197        12477 :                       if (TREE_SIDE_EFFECTS (captures[1]))
    4198            0 :                         _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    4199        12477 :                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 842, __FILE__, __LINE__, true);
    4200        12477 :                       return _r;
    4201              :                     }
    4202            0 : next_after_fail1062:;
    4203              :                   }
    4204              :               }
    4205       198253 :               break;
    4206              :             }
    4207              :           default:;
    4208              :           }
    4209              :         break;
    4210              :       }
    4211            5 :     case VEC_COND_EXPR:
    4212            5 :       {
    4213            5 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4214            5 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4215            5 :         tree _q22 = TREE_OPERAND (_p0, 2);
    4216            5 :         {
    4217            5 :           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
    4218            5 :           if (VECTOR_TYPE_P (type)
    4219            0 :  && types_match (TREE_TYPE (captures[1]), truth_type_for (type))
    4220            5 :  && (expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    4221            0 :  || !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1])))
    4222              : )
    4223              :             {
    4224            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1063;
    4225            0 :               {
    4226            0 :                 tree res_op0;
    4227            0 :                 res_op0 = captures[1];
    4228            0 :                 tree res_op1;
    4229            0 :                 {
    4230            0 :                   tree _o1[1], _r1;
    4231            0 :                   _o1[0] = captures[2];
    4232            0 :                   if (TREE_TYPE (_o1[0]) != type)
    4233              :                     {
    4234            0 :                       _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    4235            0 :                       if (EXPR_P (_r1))
    4236            0 :                         goto next_after_fail1063;
    4237              :                     }
    4238              :                   else
    4239              :                     _r1 = _o1[0];
    4240            0 :                   res_op1 = _r1;
    4241              :                 }
    4242            0 :                 tree res_op2;
    4243            0 :                 {
    4244            0 :                   tree _o1[1], _r1;
    4245            0 :                   _o1[0] = captures[3];
    4246            0 :                   if (TREE_TYPE (_o1[0]) != type)
    4247              :                     {
    4248            0 :                       _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    4249            0 :                       if (EXPR_P (_r1))
    4250            0 :                         goto next_after_fail1063;
    4251              :                     }
    4252              :                   else
    4253              :                     _r1 = _o1[0];
    4254            0 :                   res_op2 = _r1;
    4255              :                 }
    4256            0 :                 tree _r;
    4257            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    4258            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 843, __FILE__, __LINE__, true);
    4259            0 :                 return _r;
    4260              :               }
    4261            5 : next_after_fail1063:;
    4262              :             }
    4263              :         }
    4264            5 :         break;
    4265              :       }
    4266       611470 :     case COND_EXPR:
    4267       611470 :       {
    4268       611470 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4269       611470 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4270       611470 :         tree _q22 = TREE_OPERAND (_p0, 2);
    4271       611470 :         switch (TREE_CODE (_q21))
    4272              :           {
    4273       176369 :           case INTEGER_CST:
    4274       176369 :             {
    4275       176369 :               switch (TREE_CODE (_q22))
    4276              :                 {
    4277       111075 :                 case INTEGER_CST:
    4278       111075 :                   {
    4279       111075 :                     {
    4280       111075 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
    4281       111075 :                       if (INTEGRAL_TYPE_P (type)
    4282       111075 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    4283              : )
    4284              :                         {
    4285       111075 :                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1064;
    4286       111075 :                           if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1064;
    4287       111075 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1064;
    4288       111075 :                           {
    4289       111075 :                             tree res_op0;
    4290       111075 :                             res_op0 = captures[1];
    4291       111075 :                             tree res_op1;
    4292       111075 :                             {
    4293       111075 :                               tree _o1[1], _r1;
    4294       111075 :                               _o1[0] = captures[2];
    4295       111075 :                               if (TREE_TYPE (_o1[0]) != type)
    4296              :                                 {
    4297       111075 :                                   _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    4298              :                                 }
    4299              :                               else
    4300              :                                 _r1 = _o1[0];
    4301       111075 :                               res_op1 = _r1;
    4302              :                             }
    4303       111075 :                             tree res_op2;
    4304       111075 :                             {
    4305       111075 :                               tree _o1[1], _r1;
    4306       111075 :                               _o1[0] = captures[3];
    4307       111075 :                               if (TREE_TYPE (_o1[0]) != type)
    4308              :                                 {
    4309       111075 :                                   _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    4310              :                                 }
    4311              :                               else
    4312              :                                 _r1 = _o1[0];
    4313       111075 :                               res_op2 = _r1;
    4314              :                             }
    4315       111075 :                             tree _r;
    4316       111075 :                             _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
    4317       111075 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 844, __FILE__, __LINE__, true);
    4318       111075 :                             return _r;
    4319              :                           }
    4320            0 : next_after_fail1064:;
    4321              :                         }
    4322              :                     }
    4323            0 :                     break;
    4324              :                   }
    4325              :                 default:;
    4326              :                 }
    4327              :               break;
    4328              :             }
    4329              :           default:;
    4330              :           }
    4331              :         break;
    4332              :       }
    4333     11609409 :     case PLUS_EXPR:
    4334     11609409 :       {
    4335     11609409 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4336     11609409 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4337     11609409 :         switch (TREE_CODE (_q20))
    4338              :           {
    4339      4511639 :           CASE_CONVERT:
    4340      4511639 :             {
    4341      4511639 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4342      4511639 :               switch (TREE_CODE (_q21))
    4343              :                 {
    4344       344896 :                 CASE_CONVERT:
    4345       344896 :                   {
    4346       344896 :                     tree _q50 = TREE_OPERAND (_q21, 0);
    4347       344896 :                     {
    4348       344896 :                       tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50 };
    4349       344896 :                       tree res = generic_simplify_432 (loc, type, _p0, captures, PLUS_EXPR);
    4350       344896 :                       if (res) return res;
    4351              :                     }
    4352       344840 :                     break;
    4353              :                   }
    4354      4511583 :                 default:;
    4355              :                 }
    4356      4511583 :               {
    4357      4511583 :                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q21 };
    4358      4511583 :                 tree res = generic_simplify_433 (loc, type, _p0, captures, PLUS_EXPR);
    4359      4511583 :                 if (res) return res;
    4360              :               }
    4361      4498624 :               break;
    4362              :             }
    4363     11596394 :           default:;
    4364              :           }
    4365     11596394 :         switch (TREE_CODE (_q21))
    4366              :           {
    4367      1496617 :           CASE_CONVERT:
    4368      1496617 :             {
    4369      1496617 :               tree _q40 = TREE_OPERAND (_q21, 0);
    4370      1496617 :               {
    4371      1496617 :                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q20, _q21, _q40 };
    4372      1496617 :                 tree res = generic_simplify_434 (loc, type, _p0, captures, PLUS_EXPR);
    4373      1496617 :                 if (res) return res;
    4374              :               }
    4375      1496617 :               break;
    4376              :             }
    4377     11596394 :           default:;
    4378              :           }
    4379     11596394 :         {
    4380     11596394 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q20, _q21, _q21 };
    4381     11596394 :           tree res = generic_simplify_435 (loc, type, _p0, captures, PLUS_EXPR);
    4382     11596394 :           if (res) return res;
    4383              :         }
    4384     11596360 :         break;
    4385              :       }
    4386       917795 :     case MINUS_EXPR:
    4387       917795 :       {
    4388       917795 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4389       917795 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4390       917795 :         switch (TREE_CODE (_q20))
    4391              :           {
    4392       349218 :           CASE_CONVERT:
    4393       349218 :             {
    4394       349218 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4395       349218 :               switch (TREE_CODE (_q21))
    4396              :                 {
    4397       197529 :                 CASE_CONVERT:
    4398       197529 :                   {
    4399       197529 :                     tree _q50 = TREE_OPERAND (_q21, 0);
    4400       197529 :                     {
    4401       197529 :                       tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50 };
    4402       197529 :                       tree res = generic_simplify_432 (loc, type, _p0, captures, MINUS_EXPR);
    4403       197529 :                       if (res) return res;
    4404              :                     }
    4405       197500 :                     break;
    4406              :                   }
    4407       349189 :                 default:;
    4408              :                 }
    4409       349189 :               {
    4410       349189 :                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q21 };
    4411       349189 :                 tree res = generic_simplify_433 (loc, type, _p0, captures, MINUS_EXPR);
    4412       349189 :                 if (res) return res;
    4413              :               }
    4414       348069 :               break;
    4415              :             }
    4416       916646 :           default:;
    4417              :           }
    4418       916646 :         switch (TREE_CODE (_q21))
    4419              :           {
    4420       255975 :           CASE_CONVERT:
    4421       255975 :             {
    4422       255975 :               tree _q40 = TREE_OPERAND (_q21, 0);
    4423       255975 :               {
    4424       255975 :                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q20, _q21, _q40 };
    4425       255975 :                 tree res = generic_simplify_434 (loc, type, _p0, captures, MINUS_EXPR);
    4426       255975 :                 if (res) return res;
    4427              :               }
    4428       255965 :               break;
    4429              :             }
    4430       916636 :           default:;
    4431              :           }
    4432       916636 :         {
    4433       916636 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q20, _q21, _q21 };
    4434       916636 :           tree res = generic_simplify_435 (loc, type, _p0, captures, MINUS_EXPR);
    4435       916636 :           if (res) return res;
    4436              :         }
    4437       916604 :         break;
    4438              :       }
    4439      8864387 :     case MULT_EXPR:
    4440      8864387 :       {
    4441      8864387 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4442      8864387 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4443      8864387 :         switch (TREE_CODE (_q20))
    4444              :           {
    4445      4007349 :           CASE_CONVERT:
    4446      4007349 :             {
    4447      4007349 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4448      4007349 :               switch (TREE_CODE (_q21))
    4449              :                 {
    4450       318807 :                 CASE_CONVERT:
    4451       318807 :                   {
    4452       318807 :                     tree _q50 = TREE_OPERAND (_q21, 0);
    4453       318807 :                     {
    4454       318807 :                       tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50 };
    4455       318807 :                       tree res = generic_simplify_432 (loc, type, _p0, captures, MULT_EXPR);
    4456       318807 :                       if (res) return res;
    4457              :                     }
    4458       318807 :                     break;
    4459              :                   }
    4460      4007349 :                 default:;
    4461              :                 }
    4462      4007349 :               {
    4463      4007349 :                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q21 };
    4464      4007349 :                 tree res = generic_simplify_433 (loc, type, _p0, captures, MULT_EXPR);
    4465      4007349 :                 if (res) return res;
    4466              :               }
    4467      4007228 :               break;
    4468              :             }
    4469      8864266 :           default:;
    4470              :           }
    4471      8864266 :         switch (TREE_CODE (_q21))
    4472              :           {
    4473       685617 :           CASE_CONVERT:
    4474       685617 :             {
    4475       685617 :               tree _q40 = TREE_OPERAND (_q21, 0);
    4476       685617 :               {
    4477       685617 :                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q20, _q21, _q40 };
    4478       685617 :                 tree res = generic_simplify_434 (loc, type, _p0, captures, MULT_EXPR);
    4479       685617 :                 if (res) return res;
    4480              :               }
    4481       685617 :               break;
    4482              :             }
    4483      8864266 :           default:;
    4484              :           }
    4485      8864266 :         {
    4486      8864266 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q20, _q21, _q21 };
    4487      8864266 :           tree res = generic_simplify_435 (loc, type, _p0, captures, MULT_EXPR);
    4488      8864266 :           if (res) return res;
    4489              :         }
    4490      8864233 :         break;
    4491              :       }
    4492         3070 :     case RDIV_EXPR:
    4493         3070 :       {
    4494         3070 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4495         3070 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4496         3070 :         switch (TREE_CODE (_q20))
    4497              :           {
    4498          972 :           CASE_CONVERT:
    4499          972 :             {
    4500          972 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4501          972 :               switch (TREE_CODE (_q21))
    4502              :                 {
    4503          668 :                 CASE_CONVERT:
    4504          668 :                   {
    4505          668 :                     tree _q50 = TREE_OPERAND (_q21, 0);
    4506          668 :                     {
    4507          668 :                       tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q50 };
    4508          668 :                       tree res = generic_simplify_432 (loc, type, _p0, captures, RDIV_EXPR);
    4509          668 :                       if (res) return res;
    4510              :                     }
    4511          667 :                     break;
    4512              :                   }
    4513          971 :                 default:;
    4514              :                 }
    4515          971 :               {
    4516          971 :                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q21, _q21 };
    4517          971 :                 tree res = generic_simplify_433 (loc, type, _p0, captures, RDIV_EXPR);
    4518          971 :                 if (res) return res;
    4519              :               }
    4520          969 :               break;
    4521              :             }
    4522         3067 :           default:;
    4523              :           }
    4524         3067 :         switch (TREE_CODE (_q21))
    4525              :           {
    4526         1657 :           CASE_CONVERT:
    4527         1657 :             {
    4528         1657 :               tree _q40 = TREE_OPERAND (_q21, 0);
    4529         1657 :               {
    4530         1657 :                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q20, _q21, _q40 };
    4531         1657 :                 tree res = generic_simplify_434 (loc, type, _p0, captures, RDIV_EXPR);
    4532         1657 :                 if (res) return res;
    4533              :               }
    4534         1012 :               break;
    4535              :             }
    4536         2422 :           default:;
    4537              :           }
    4538         2422 :         {
    4539         2422 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q20, _q21, _q21 };
    4540         2422 :           tree res = generic_simplify_435 (loc, type, _p0, captures, RDIV_EXPR);
    4541         2422 :           if (res) return res;
    4542              :         }
    4543         2380 :         break;
    4544              :       }
    4545       688488 :     case NEGATE_EXPR:
    4546       688488 :       {
    4547       688488 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4548       688488 :         {
    4549       688488 :           tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    4550       688488 :           tree res = generic_simplify_436 (loc, type, _p0, captures);
    4551       688488 :           if (res) return res;
    4552              :         }
    4553       688466 :         break;
    4554              :       }
    4555              :     default:;
    4556              :     }
    4557              :   return NULL_TREE;
    4558              : }
    4559              : 
    4560              : tree
    4561         7008 : generic_simplify_CEIL_DIV_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
    4562              : {
    4563         7008 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    4564         7008 :   if (integer_onep (_p1))
    4565              :     {
    4566         1755 :       {
    4567         1755 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4568         1755 :         tree res = generic_simplify_181 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
    4569         1755 :         if (res) return res;
    4570              :       }
    4571              :     }
    4572         5253 :   if (integer_zerop (_p0))
    4573              :     {
    4574            0 :       {
    4575            0 :         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    4576            0 :         tree res = generic_simplify_311 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
    4577            0 :         if (res) return res;
    4578              :       }
    4579              :     }
    4580         5253 :   switch (TREE_CODE (_p1))
    4581              :     {
    4582           34 :     case SSA_NAME:
    4583           34 :       {
    4584           34 :         {
    4585           34 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    4586           34 :           tree res = generic_simplify_313 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
    4587           34 :           if (res) return res;
    4588              :         }
    4589           34 :         break;
    4590              :       }
    4591         5253 :     default:;
    4592              :     }
    4593         5253 : if (integer_minus_onep (_p1))
    4594              :   {
    4595            0 :     {
    4596            0 :       tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    4597            0 :       tree res = generic_simplify_312 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
    4598            0 :       if (res) return res;
    4599              :     }
    4600              :   }
    4601         5253 :   if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    4602              :     {
    4603            0 :       {
    4604            0 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4605            0 :         tree res = generic_simplify_314 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
    4606            0 :         if (res) return res;
    4607              :       }
    4608              :     }
    4609         5253 :   switch (TREE_CODE (_p1))
    4610              :     {
    4611            0 :     case ABS_EXPR:
    4612            0 :       {
    4613            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    4614            0 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    4615              :           {
    4616            0 :             {
    4617            0 :               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4618            0 :               tree res = generic_simplify_315 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
    4619            0 :               if (res) return res;
    4620              :             }
    4621              :           }
    4622              :         break;
    4623              :       }
    4624         5253 :     default:;
    4625              :     }
    4626         5253 :   switch (TREE_CODE (_p0))
    4627              :     {
    4628            0 :     case ABS_EXPR:
    4629            0 :       {
    4630            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4631            0 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    4632              :           {
    4633            0 :             {
    4634            0 :               tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    4635            0 :               tree res = generic_simplify_315 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
    4636            0 :               if (res) return res;
    4637              :             }
    4638              :           }
    4639              :         break;
    4640              :       }
    4641         5253 :     default:;
    4642              :     }
    4643         5253 :   switch (TREE_CODE (_p1))
    4644              :     {
    4645            0 :     case NEGATE_EXPR:
    4646            0 :       {
    4647            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    4648            0 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    4649              :           {
    4650            0 :             {
    4651            0 :               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4652            0 :               tree res = generic_simplify_316 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
    4653            0 :               if (res) return res;
    4654              :             }
    4655              :           }
    4656              :         break;
    4657              :       }
    4658         5253 :     default:;
    4659              :     }
    4660         5253 :   switch (TREE_CODE (_p0))
    4661              :     {
    4662            0 :     case NEGATE_EXPR:
    4663            0 :       {
    4664            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4665            0 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    4666              :           {
    4667            0 :             {
    4668            0 :               tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    4669            0 :               tree res = generic_simplify_316 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
    4670            0 :               if (res) return res;
    4671              :             }
    4672              :           }
    4673              :         break;
    4674              :       }
    4675          536 :     CASE_CONVERT:
    4676          536 :       {
    4677          536 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4678          536 :         switch (TREE_CODE (_q20))
    4679              :           {
    4680            0 :           case BIT_AND_EXPR:
    4681            0 :             {
    4682            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4683            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4684            0 :               switch (TREE_CODE (_q31))
    4685              :                 {
    4686            0 :                 case INTEGER_CST:
    4687            0 :                   {
    4688            0 :                     switch (TREE_CODE (_p1))
    4689              :                       {
    4690            0 :                       case INTEGER_CST:
    4691            0 :                         {
    4692            0 :                           {
    4693            0 :                             tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
    4694            0 :                             tree res = generic_simplify_318 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
    4695            0 :                             if (res) return res;
    4696              :                           }
    4697            0 :                           break;
    4698              :                         }
    4699              :                       default:;
    4700              :                       }
    4701              :                     break;
    4702              :                   }
    4703              :                 default:;
    4704              :                 }
    4705              :               break;
    4706              :             }
    4707              :           default:;
    4708              :           }
    4709              :         break;
    4710              :       }
    4711            0 :     case BIT_AND_EXPR:
    4712            0 :       {
    4713            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4714            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4715            0 :         switch (TREE_CODE (_q21))
    4716              :           {
    4717            0 :           case INTEGER_CST:
    4718            0 :             {
    4719            0 :               switch (TREE_CODE (_p1))
    4720              :                 {
    4721            0 :                 case INTEGER_CST:
    4722            0 :                   {
    4723            0 :                     {
    4724            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    4725            0 :                       tree res = generic_simplify_318 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
    4726            0 :                       if (res) return res;
    4727              :                     }
    4728            0 :                     break;
    4729              :                   }
    4730              :                 default:;
    4731              :                 }
    4732              :               break;
    4733              :             }
    4734              :           default:;
    4735              :           }
    4736              :         break;
    4737              :       }
    4738            0 :     case MULT_EXPR:
    4739            0 :       {
    4740            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4741            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4742            0 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    4743              :           {
    4744            0 :             {
    4745            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    4746            0 :               tree res = generic_simplify_320 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
    4747            0 :               if (res) return res;
    4748              :             }
    4749              :           }
    4750            0 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    4751              :           {
    4752            0 :             {
    4753            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
    4754            0 :               tree res = generic_simplify_320 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
    4755            0 :               if (res) return res;
    4756              :             }
    4757              :           }
    4758            0 :         switch (TREE_CODE (_q21))
    4759              :           {
    4760            0 :           case INTEGER_CST:
    4761            0 :             {
    4762            0 :               switch (TREE_CODE (_p1))
    4763              :                 {
    4764            0 :                 case MULT_EXPR:
    4765            0 :                   {
    4766            0 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    4767            0 :                     tree _q51 = TREE_OPERAND (_p1, 1);
    4768            0 :                     if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    4769              :                       {
    4770            0 :                         switch (TREE_CODE (_q51))
    4771              :                           {
    4772            0 :                           case INTEGER_CST:
    4773            0 :                             {
    4774            0 :                               {
    4775            0 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
    4776            0 :                                 tree res = generic_simplify_321 (loc, type, _p0, _p1, captures, CEIL_DIV_EXPR);
    4777            0 :                                 if (res) return res;
    4778              :                               }
    4779            0 :                               break;
    4780              :                             }
    4781              :                           default:;
    4782              :                           }
    4783              :                       }
    4784              :                     break;
    4785              :                   }
    4786              :                 default:;
    4787              :                 }
    4788              :               break;
    4789              :             }
    4790              :           default:;
    4791              :           }
    4792              :         break;
    4793              :       }
    4794            0 :     case VEC_COND_EXPR:
    4795            0 :       {
    4796            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4797            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4798            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
    4799            0 :         switch (TREE_CODE (_p1))
    4800              :           {
    4801            0 :           case VEC_COND_EXPR:
    4802            0 :             {
    4803            0 :               tree _q60 = TREE_OPERAND (_p1, 0);
    4804            0 :               tree _q61 = TREE_OPERAND (_p1, 1);
    4805            0 :               tree _q62 = TREE_OPERAND (_p1, 2);
    4806            0 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    4807              :                 {
    4808            0 :                   {
    4809            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
    4810            0 :                     if (VECTOR_TYPE_P (type)
    4811            0 :  && (TREE_CODE_CLASS (CEIL_DIV_EXPR) != tcc_comparison
    4812              :  || types_match (type, TREE_TYPE (captures[2]))
    4813              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    4814              :  || (optimize_vectors_before_lowering_p ()
    4815              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    4816              : )
    4817              :                       {
    4818            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1578;
    4819            0 :                         {
    4820            0 :                           tree res_op0;
    4821            0 :                           res_op0 = captures[1];
    4822            0 :                           tree res_op1;
    4823            0 :                           {
    4824            0 :                             tree _o1[2], _r1;
    4825            0 :                             _o1[0] = captures[2];
    4826            0 :                             _o1[1] = captures[5];
    4827            0 :                             _r1 = fold_build2_loc (loc, CEIL_DIV_EXPR, type, _o1[0], _o1[1]);
    4828            0 :                             if (EXPR_P (_r1))
    4829            0 :                               goto next_after_fail1578;
    4830            0 :                             res_op1 = _r1;
    4831              :                           }
    4832            0 :                           tree res_op2;
    4833            0 :                           {
    4834            0 :                             tree _o1[2], _r1;
    4835            0 :                             _o1[0] = captures[3];
    4836            0 :                             _o1[1] = captures[6];
    4837            0 :                             _r1 = fold_build2_loc (loc, CEIL_DIV_EXPR, type, _o1[0], _o1[1]);
    4838            0 :                             if (EXPR_P (_r1))
    4839            0 :                               goto next_after_fail1578;
    4840            0 :                             res_op2 = _r1;
    4841              :                           }
    4842            0 :                           tree _r;
    4843            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    4844            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
    4845            0 :                           return _r;
    4846              :                         }
    4847            0 : next_after_fail1578:;
    4848              :                       }
    4849              :                   }
    4850              :                 }
    4851              :               break;
    4852              :             }
    4853            0 :           default:;
    4854              :           }
    4855            0 :         {
    4856            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
    4857            0 :           if (VECTOR_TYPE_P (type)
    4858            0 :  && (TREE_CODE_CLASS (CEIL_DIV_EXPR) != tcc_comparison
    4859              :  || types_match (type, TREE_TYPE (captures[2]))
    4860              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    4861              :  || (optimize_vectors_before_lowering_p ()
    4862              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    4863              : )
    4864              :             {
    4865            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1579;
    4866            0 :               {
    4867            0 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1579;
    4868            0 :                 tree res_op0;
    4869            0 :                 res_op0 = captures[1];
    4870            0 :                 tree res_op1;
    4871            0 :                 {
    4872            0 :                   tree _o1[2], _r1;
    4873            0 :                   _o1[0] = captures[2];
    4874            0 :                   _o1[1] = unshare_expr (captures[4]);
    4875            0 :                   _r1 = fold_build2_loc (loc, CEIL_DIV_EXPR, type, _o1[0], _o1[1]);
    4876            0 :                   if (EXPR_P (_r1))
    4877            0 :                     goto next_after_fail1579;
    4878            0 :                   res_op1 = _r1;
    4879              :                 }
    4880            0 :                 tree res_op2;
    4881            0 :                 {
    4882            0 :                   tree _o1[2], _r1;
    4883            0 :                   _o1[0] = captures[3];
    4884            0 :                   _o1[1] = captures[4];
    4885            0 :                   _r1 = fold_build2_loc (loc, CEIL_DIV_EXPR, type, _o1[0], _o1[1]);
    4886            0 :                   if (EXPR_P (_r1))
    4887            0 :                     goto next_after_fail1579;
    4888            0 :                   res_op2 = _r1;
    4889              :                 }
    4890            0 :                 tree _r;
    4891            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    4892            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
    4893            0 :                 return _r;
    4894              :               }
    4895            0 : next_after_fail1579:;
    4896              :             }
    4897              :         }
    4898            0 :         break;
    4899              :       }
    4900         5253 :     default:;
    4901              :     }
    4902         5253 :   switch (TREE_CODE (_p1))
    4903              :     {
    4904            0 :     case VEC_COND_EXPR:
    4905            0 :       {
    4906            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    4907            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
    4908            0 :         tree _q32 = TREE_OPERAND (_p1, 2);
    4909            0 :         {
    4910            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
    4911            0 :           if (VECTOR_TYPE_P (type)
    4912            0 :  && (TREE_CODE_CLASS (CEIL_DIV_EXPR) != tcc_comparison
    4913              :  || types_match (type, TREE_TYPE (captures[3]))
    4914              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
    4915              :  || (optimize_vectors_before_lowering_p ()
    4916              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
    4917              : )
    4918              :             {
    4919            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1580;
    4920            0 :               {
    4921            0 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1580;
    4922            0 :                 tree res_op0;
    4923            0 :                 res_op0 = captures[2];
    4924            0 :                 tree res_op1;
    4925            0 :                 {
    4926            0 :                   tree _o1[2], _r1;
    4927            0 :                   _o1[0] = unshare_expr (captures[0]);
    4928            0 :                   _o1[1] = captures[3];
    4929            0 :                   _r1 = fold_build2_loc (loc, CEIL_DIV_EXPR, type, _o1[0], _o1[1]);
    4930            0 :                   if (EXPR_P (_r1))
    4931            0 :                     goto next_after_fail1580;
    4932            0 :                   res_op1 = _r1;
    4933              :                 }
    4934            0 :                 tree res_op2;
    4935            0 :                 {
    4936            0 :                   tree _o1[2], _r1;
    4937            0 :                   _o1[0] = captures[0];
    4938            0 :                   _o1[1] = captures[4];
    4939            0 :                   _r1 = fold_build2_loc (loc, CEIL_DIV_EXPR, type, _o1[0], _o1[1]);
    4940            0 :                   if (EXPR_P (_r1))
    4941            0 :                     goto next_after_fail1580;
    4942            0 :                   res_op2 = _r1;
    4943              :                 }
    4944            0 :                 tree _r;
    4945            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    4946            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
    4947            0 :                 return _r;
    4948              :               }
    4949            0 : next_after_fail1580:;
    4950              :             }
    4951              :         }
    4952            0 :         break;
    4953              :       }
    4954              :     default:;
    4955              :     }
    4956              :   return NULL_TREE;
    4957              : }
    4958              : 
    4959              : tree
    4960      3371566 : generic_simplify_EXACT_DIV_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
    4961              : {
    4962      3371566 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    4963      3371566 :   if (integer_onep (_p1))
    4964              :     {
    4965      2023233 :       {
    4966      2023233 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4967      2023233 :         tree res = generic_simplify_181 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
    4968      2023233 :         if (res) return res;
    4969              :       }
    4970              :     }
    4971      1348333 :   switch (TREE_CODE (_p0))
    4972              :     {
    4973         8831 :     CASE_CONVERT:
    4974         8831 :       {
    4975         8831 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4976         8831 :         switch (TREE_CODE (_p1))
    4977              :           {
    4978            0 :           CASE_CONVERT:
    4979            0 :             {
    4980            0 :               tree _q40 = TREE_OPERAND (_p1, 0);
    4981            0 :               switch (TREE_CODE (_q40))
    4982              :                 {
    4983            0 :                 case LSHIFT_EXPR:
    4984            0 :                   {
    4985            0 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    4986            0 :                     tree _q51 = TREE_OPERAND (_q40, 1);
    4987            0 :                     if (integer_onep (_q50))
    4988              :                       {
    4989            0 :                         {
    4990            0 :                           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q50, _q51 };
    4991            0 :                           tree res = generic_simplify_309 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
    4992            0 :                           if (res) return res;
    4993              :                         }
    4994              :                       }
    4995              :                     break;
    4996              :                   }
    4997              :                 default:;
    4998              :                 }
    4999              :               break;
    5000              :             }
    5001            0 :           case LSHIFT_EXPR:
    5002            0 :             {
    5003            0 :               tree _q40 = TREE_OPERAND (_p1, 0);
    5004            0 :               tree _q41 = TREE_OPERAND (_p1, 1);
    5005            0 :               if (integer_onep (_q40))
    5006              :                 {
    5007            0 :                   {
    5008            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q40, _q41 };
    5009            0 :                     tree res = generic_simplify_309 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
    5010            0 :                     if (res) return res;
    5011              :                   }
    5012              :                 }
    5013              :               break;
    5014              :             }
    5015              :           default:;
    5016              :           }
    5017              :         break;
    5018              :       }
    5019      1348333 :     default:;
    5020              :     }
    5021      1348333 :   switch (TREE_CODE (_p1))
    5022              :     {
    5023            2 :     CASE_CONVERT:
    5024            2 :       {
    5025            2 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5026            2 :         switch (TREE_CODE (_q30))
    5027              :           {
    5028            0 :           case LSHIFT_EXPR:
    5029            0 :             {
    5030            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    5031            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    5032            0 :               if (integer_onep (_q40))
    5033              :                 {
    5034            0 :                   {
    5035            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q40, _q41 };
    5036            0 :                     tree res = generic_simplify_310 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
    5037            0 :                     if (res) return res;
    5038              :                   }
    5039              :                 }
    5040              :               break;
    5041              :             }
    5042              :           default:;
    5043              :           }
    5044              :         break;
    5045              :       }
    5046            0 :     case LSHIFT_EXPR:
    5047            0 :       {
    5048            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5049            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
    5050            0 :         if (integer_onep (_q30))
    5051              :           {
    5052            0 :             {
    5053            0 :               tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q30, _q31 };
    5054            0 :               tree res = generic_simplify_310 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
    5055            0 :               if (res) return res;
    5056              :             }
    5057              :           }
    5058              :         break;
    5059              :       }
    5060      1348333 :     default:;
    5061              :     }
    5062      1348333 :   if (integer_zerop (_p0))
    5063              :     {
    5064            0 :       {
    5065            0 :         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    5066            0 :         tree res = generic_simplify_311 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
    5067            0 :         if (res) return res;
    5068              :       }
    5069              :     }
    5070      1348333 :   switch (TREE_CODE (_p1))
    5071              :     {
    5072            0 :     case SSA_NAME:
    5073            0 :       {
    5074            0 :         {
    5075            0 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    5076            0 :           tree res = generic_simplify_313 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
    5077            0 :           if (res) return res;
    5078              :         }
    5079            0 :         break;
    5080              :       }
    5081      1348333 :     default:;
    5082              :     }
    5083      1348333 : if (integer_minus_onep (_p1))
    5084              :   {
    5085            0 :     {
    5086            0 :       tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    5087            0 :       tree res = generic_simplify_312 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
    5088            0 :       if (res) return res;
    5089              :     }
    5090              :   }
    5091      1348333 :   if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    5092              :     {
    5093            0 :       {
    5094            0 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5095            0 :         tree res = generic_simplify_314 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
    5096            0 :         if (res) return res;
    5097              :       }
    5098              :     }
    5099      1348333 :   switch (TREE_CODE (_p1))
    5100              :     {
    5101            0 :     case ABS_EXPR:
    5102            0 :       {
    5103            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5104            0 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    5105              :           {
    5106            0 :             {
    5107            0 :               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5108            0 :               tree res = generic_simplify_315 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
    5109            0 :               if (res) return res;
    5110              :             }
    5111              :           }
    5112              :         break;
    5113              :       }
    5114      1348333 :     default:;
    5115              :     }
    5116      1348333 :   switch (TREE_CODE (_p0))
    5117              :     {
    5118            0 :     case ABS_EXPR:
    5119            0 :       {
    5120            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5121            0 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    5122              :           {
    5123            0 :             {
    5124            0 :               tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    5125            0 :               tree res = generic_simplify_315 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
    5126            0 :               if (res) return res;
    5127              :             }
    5128              :           }
    5129              :         break;
    5130              :       }
    5131      1348333 :     default:;
    5132              :     }
    5133      1348333 :   switch (TREE_CODE (_p1))
    5134              :     {
    5135            0 :     case NEGATE_EXPR:
    5136            0 :       {
    5137            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5138            0 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    5139              :           {
    5140            0 :             {
    5141            0 :               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5142            0 :               tree res = generic_simplify_316 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
    5143            0 :               if (res) return res;
    5144              :             }
    5145              :           }
    5146              :         break;
    5147              :       }
    5148      1348333 :     default:;
    5149              :     }
    5150      1348333 :   switch (TREE_CODE (_p0))
    5151              :     {
    5152         1193 :     case NEGATE_EXPR:
    5153         1193 :       {
    5154         1193 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5155         1193 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    5156              :           {
    5157            0 :             {
    5158            0 :               tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    5159            0 :               tree res = generic_simplify_316 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
    5160            0 :               if (res) return res;
    5161              :             }
    5162              :           }
    5163              :         break;
    5164              :       }
    5165            0 :     case EXACT_DIV_EXPR:
    5166            0 :       {
    5167            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5168            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5169            0 :         switch (TREE_CODE (_q21))
    5170              :           {
    5171            0 :           case INTEGER_CST:
    5172            0 :             {
    5173            0 :               switch (TREE_CODE (_p1))
    5174              :                 {
    5175            0 :                 case INTEGER_CST:
    5176            0 :                   {
    5177            0 :                     {
    5178            0 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    5179            0 :                       tree res = generic_simplify_317 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
    5180            0 :                       if (res) return res;
    5181              :                     }
    5182            0 :                     break;
    5183              :                   }
    5184              :                 default:;
    5185              :                 }
    5186              :               break;
    5187              :             }
    5188              :           default:;
    5189              :           }
    5190              :         break;
    5191              :       }
    5192         8831 :     CASE_CONVERT:
    5193         8831 :       {
    5194         8831 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5195         8831 :         switch (TREE_CODE (_q20))
    5196              :           {
    5197            0 :           case BIT_AND_EXPR:
    5198            0 :             {
    5199            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5200            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5201            0 :               switch (TREE_CODE (_q31))
    5202              :                 {
    5203            0 :                 case INTEGER_CST:
    5204            0 :                   {
    5205            0 :                     switch (TREE_CODE (_p1))
    5206              :                       {
    5207            0 :                       case INTEGER_CST:
    5208            0 :                         {
    5209            0 :                           {
    5210            0 :                             tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
    5211            0 :                             tree res = generic_simplify_318 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
    5212            0 :                             if (res) return res;
    5213              :                           }
    5214            0 :                           break;
    5215              :                         }
    5216              :                       default:;
    5217              :                       }
    5218              :                     break;
    5219              :                   }
    5220              :                 default:;
    5221              :                 }
    5222              :               break;
    5223              :             }
    5224              :           default:;
    5225              :           }
    5226              :         break;
    5227              :       }
    5228            0 :     case BIT_AND_EXPR:
    5229            0 :       {
    5230            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5231            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5232            0 :         switch (TREE_CODE (_q21))
    5233              :           {
    5234            0 :           case INTEGER_CST:
    5235            0 :             {
    5236            0 :               switch (TREE_CODE (_p1))
    5237              :                 {
    5238            0 :                 case INTEGER_CST:
    5239            0 :                   {
    5240            0 :                     {
    5241            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    5242            0 :                       tree res = generic_simplify_318 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
    5243            0 :                       if (res) return res;
    5244              :                     }
    5245            0 :                     break;
    5246              :                   }
    5247              :                 default:;
    5248              :                 }
    5249              :               break;
    5250              :             }
    5251              :           default:;
    5252              :           }
    5253              :         break;
    5254              :       }
    5255        18688 :     case MULT_EXPR:
    5256        18688 :       {
    5257        18688 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5258        18688 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5259        18688 :         if (integer_pow2p (_q21))
    5260              :           {
    5261        17579 :             if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5262              :               {
    5263        17551 :                 {
    5264        17551 :                   tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    5265        17551 :                   tree res = generic_simplify_319 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
    5266        17551 :                   if (res) return res;
    5267              :                 }
    5268              :               }
    5269              :           }
    5270         1144 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5271              :           {
    5272            7 :             {
    5273            7 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    5274            7 :               tree res = generic_simplify_320 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
    5275            7 :               if (res) return res;
    5276              :             }
    5277              :           }
    5278         1137 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    5279              :           {
    5280            0 :             {
    5281            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
    5282            0 :               tree res = generic_simplify_320 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
    5283            0 :               if (res) return res;
    5284              :             }
    5285              :           }
    5286         1137 :         switch (TREE_CODE (_q21))
    5287              :           {
    5288         1137 :           case INTEGER_CST:
    5289         1137 :             {
    5290         1137 :               switch (TREE_CODE (_p1))
    5291              :                 {
    5292            0 :                 case MULT_EXPR:
    5293            0 :                   {
    5294            0 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    5295            0 :                     tree _q51 = TREE_OPERAND (_p1, 1);
    5296            0 :                     if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5297              :                       {
    5298            0 :                         switch (TREE_CODE (_q51))
    5299              :                           {
    5300            0 :                           case INTEGER_CST:
    5301            0 :                             {
    5302            0 :                               {
    5303            0 :                                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
    5304            0 :                                 tree res = generic_simplify_321 (loc, type, _p0, _p1, captures, EXACT_DIV_EXPR);
    5305            0 :                                 if (res) return res;
    5306              :                               }
    5307            0 :                               break;
    5308              :                             }
    5309              :                           default:;
    5310              :                           }
    5311              :                       }
    5312              :                     break;
    5313              :                   }
    5314              :                 default:;
    5315              :                 }
    5316              :               break;
    5317              :             }
    5318              :           default:;
    5319              :           }
    5320              :         break;
    5321              :       }
    5322            0 :     case VEC_COND_EXPR:
    5323            0 :       {
    5324            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5325            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5326            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
    5327            0 :         switch (TREE_CODE (_p1))
    5328              :           {
    5329            0 :           case VEC_COND_EXPR:
    5330            0 :             {
    5331            0 :               tree _q60 = TREE_OPERAND (_p1, 0);
    5332            0 :               tree _q61 = TREE_OPERAND (_p1, 1);
    5333            0 :               tree _q62 = TREE_OPERAND (_p1, 2);
    5334            0 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    5335              :                 {
    5336            0 :                   {
    5337            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
    5338            0 :                     if (VECTOR_TYPE_P (type)
    5339            0 :  && (TREE_CODE_CLASS (EXACT_DIV_EXPR) != tcc_comparison
    5340              :  || types_match (type, TREE_TYPE (captures[2]))
    5341              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    5342              :  || (optimize_vectors_before_lowering_p ()
    5343              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    5344              : )
    5345              :                       {
    5346            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1587;
    5347            0 :                         {
    5348            0 :                           tree res_op0;
    5349            0 :                           res_op0 = captures[1];
    5350            0 :                           tree res_op1;
    5351            0 :                           {
    5352            0 :                             tree _o1[2], _r1;
    5353            0 :                             _o1[0] = captures[2];
    5354            0 :                             _o1[1] = captures[5];
    5355            0 :                             _r1 = fold_build2_loc (loc, EXACT_DIV_EXPR, type, _o1[0], _o1[1]);
    5356            0 :                             if (EXPR_P (_r1))
    5357            0 :                               goto next_after_fail1587;
    5358            0 :                             res_op1 = _r1;
    5359              :                           }
    5360            0 :                           tree res_op2;
    5361            0 :                           {
    5362            0 :                             tree _o1[2], _r1;
    5363            0 :                             _o1[0] = captures[3];
    5364            0 :                             _o1[1] = captures[6];
    5365            0 :                             _r1 = fold_build2_loc (loc, EXACT_DIV_EXPR, type, _o1[0], _o1[1]);
    5366            0 :                             if (EXPR_P (_r1))
    5367            0 :                               goto next_after_fail1587;
    5368            0 :                             res_op2 = _r1;
    5369              :                           }
    5370            0 :                           tree _r;
    5371            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    5372            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
    5373            0 :                           return _r;
    5374              :                         }
    5375            0 : next_after_fail1587:;
    5376              :                       }
    5377              :                   }
    5378              :                 }
    5379              :               break;
    5380              :             }
    5381            0 :           default:;
    5382              :           }
    5383            0 :         {
    5384            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
    5385            0 :           if (VECTOR_TYPE_P (type)
    5386            0 :  && (TREE_CODE_CLASS (EXACT_DIV_EXPR) != tcc_comparison
    5387              :  || types_match (type, TREE_TYPE (captures[2]))
    5388              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    5389              :  || (optimize_vectors_before_lowering_p ()
    5390              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    5391              : )
    5392              :             {
    5393            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1588;
    5394            0 :               {
    5395            0 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1588;
    5396            0 :                 tree res_op0;
    5397            0 :                 res_op0 = captures[1];
    5398            0 :                 tree res_op1;
    5399            0 :                 {
    5400            0 :                   tree _o1[2], _r1;
    5401            0 :                   _o1[0] = captures[2];
    5402            0 :                   _o1[1] = unshare_expr (captures[4]);
    5403            0 :                   _r1 = fold_build2_loc (loc, EXACT_DIV_EXPR, type, _o1[0], _o1[1]);
    5404            0 :                   if (EXPR_P (_r1))
    5405            0 :                     goto next_after_fail1588;
    5406            0 :                   res_op1 = _r1;
    5407              :                 }
    5408            0 :                 tree res_op2;
    5409            0 :                 {
    5410            0 :                   tree _o1[2], _r1;
    5411            0 :                   _o1[0] = captures[3];
    5412            0 :                   _o1[1] = captures[4];
    5413            0 :                   _r1 = fold_build2_loc (loc, EXACT_DIV_EXPR, type, _o1[0], _o1[1]);
    5414            0 :                   if (EXPR_P (_r1))
    5415            0 :                     goto next_after_fail1588;
    5416            0 :                   res_op2 = _r1;
    5417              :                 }
    5418            0 :                 tree _r;
    5419            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    5420            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
    5421            0 :                 return _r;
    5422              :               }
    5423            0 : next_after_fail1588:;
    5424              :             }
    5425              :         }
    5426            0 :         break;
    5427              :       }
    5428      1330782 :     default:;
    5429              :     }
    5430      1330782 :   switch (TREE_CODE (_p1))
    5431              :     {
    5432            0 :     case VEC_COND_EXPR:
    5433            0 :       {
    5434            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5435            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
    5436            0 :         tree _q32 = TREE_OPERAND (_p1, 2);
    5437            0 :         {
    5438            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
    5439            0 :           if (VECTOR_TYPE_P (type)
    5440            0 :  && (TREE_CODE_CLASS (EXACT_DIV_EXPR) != tcc_comparison
    5441              :  || types_match (type, TREE_TYPE (captures[3]))
    5442              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
    5443              :  || (optimize_vectors_before_lowering_p ()
    5444              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
    5445              : )
    5446              :             {
    5447            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1589;
    5448            0 :               {
    5449            0 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1589;
    5450            0 :                 tree res_op0;
    5451            0 :                 res_op0 = captures[2];
    5452            0 :                 tree res_op1;
    5453            0 :                 {
    5454            0 :                   tree _o1[2], _r1;
    5455            0 :                   _o1[0] = unshare_expr (captures[0]);
    5456            0 :                   _o1[1] = captures[3];
    5457            0 :                   _r1 = fold_build2_loc (loc, EXACT_DIV_EXPR, type, _o1[0], _o1[1]);
    5458            0 :                   if (EXPR_P (_r1))
    5459            0 :                     goto next_after_fail1589;
    5460            0 :                   res_op1 = _r1;
    5461              :                 }
    5462            0 :                 tree res_op2;
    5463            0 :                 {
    5464            0 :                   tree _o1[2], _r1;
    5465            0 :                   _o1[0] = captures[0];
    5466            0 :                   _o1[1] = captures[4];
    5467            0 :                   _r1 = fold_build2_loc (loc, EXACT_DIV_EXPR, type, _o1[0], _o1[1]);
    5468            0 :                   if (EXPR_P (_r1))
    5469            0 :                     goto next_after_fail1589;
    5470            0 :                   res_op2 = _r1;
    5471              :                 }
    5472            0 :                 tree _r;
    5473            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    5474            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
    5475            0 :                 return _r;
    5476              :               }
    5477            0 : next_after_fail1589:;
    5478              :             }
    5479              :         }
    5480            0 :         break;
    5481              :       }
    5482              :     default:;
    5483              :     }
    5484              :   return NULL_TREE;
    5485              : }
    5486              : 
    5487              : tree
    5488      9309746 : generic_simplify_LE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
    5489              : {
    5490      9309746 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    5491      9309746 :   switch (TREE_CODE (_p0))
    5492              :     {
    5493         2318 :     case RDIV_EXPR:
    5494         2318 :       {
    5495         2318 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5496         2318 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5497         2318 :         switch (TREE_CODE (_q20))
    5498              :           {
    5499          548 :           case REAL_CST:
    5500          548 :             {
    5501          548 :               if (real_zerop (_p1))
    5502              :                 {
    5503            2 :                   {
    5504            2 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    5505            2 :                     tree res = generic_simplify_375 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
    5506            2 :                     if (res) return res;
    5507              :                   }
    5508              :                 }
    5509              :               break;
    5510              :             }
    5511              :           default:;
    5512              :           }
    5513              :         break;
    5514              :       }
    5515      9309744 :     default:;
    5516              :     }
    5517      9309744 :   switch (TREE_CODE (_p1))
    5518              :     {
    5519            7 :     case TRUNC_MOD_EXPR:
    5520            7 :       {
    5521            7 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5522            7 :         tree _q31 = TREE_OPERAND (_p1, 1);
    5523            7 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    5524              :           {
    5525            0 :             {
    5526            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
    5527            0 :               tree res = generic_simplify_376 (loc, type, _p0, _p1, captures, GE_EXPR);
    5528            0 :               if (res) return res;
    5529              :             }
    5530              :           }
    5531              :         break;
    5532              :       }
    5533      9309744 :     default:;
    5534              :     }
    5535      9309744 :   switch (TREE_CODE (_p0))
    5536              :     {
    5537        63064 :     case MULT_EXPR:
    5538        63064 :       {
    5539        63064 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5540        63064 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5541        63064 :         switch (TREE_CODE (_p1))
    5542              :           {
    5543         2714 :           case MULT_EXPR:
    5544         2714 :             {
    5545         2714 :               tree _q50 = TREE_OPERAND (_p1, 0);
    5546         2714 :               tree _q51 = TREE_OPERAND (_p1, 1);
    5547         2714 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    5548              :                 {
    5549         1863 :                   {
    5550         1863 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    5551         1863 :                     tree res = generic_simplify_377 (loc, type, _p0, _p1, captures, LE_EXPR);
    5552         1863 :                     if (res) return res;
    5553              :                   }
    5554              :                 }
    5555         1733 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    5556              :                 {
    5557            1 :                   {
    5558            1 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
    5559            1 :                     tree res = generic_simplify_377 (loc, type, _p0, _p1, captures, LE_EXPR);
    5560            1 :                     if (res) return res;
    5561              :                   }
    5562              :                 }
    5563         1733 :               if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    5564              :                 {
    5565            4 :                   {
    5566            4 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
    5567            4 :                     tree res = generic_simplify_377 (loc, type, _p0, _p1, captures, LE_EXPR);
    5568            4 :                     if (res) return res;
    5569              :                   }
    5570              :                 }
    5571         1733 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5572              :                 {
    5573          315 :                   {
    5574          315 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
    5575          315 :                     tree res = generic_simplify_377 (loc, type, _p0, _p1, captures, LE_EXPR);
    5576          315 :                     if (res) return res;
    5577              :                   }
    5578              :                 }
    5579              :               break;
    5580              :             }
    5581              :           default:;
    5582              :           }
    5583              :         break;
    5584              :       }
    5585      1610519 :     case PLUS_EXPR:
    5586      1610519 :       {
    5587      1610519 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5588      1610519 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5589      1610519 :         if (integer_minus_onep (_q21))
    5590              :           {
    5591       533003 :             switch (TREE_CODE (_p1))
    5592              :               {
    5593       329940 :               case INTEGER_CST:
    5594       329940 :                 {
    5595       329940 :                   {
    5596       329940 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    5597       329940 :                     tree res = generic_simplify_405 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
    5598       329940 :                     if (res) return res;
    5599              :                   }
    5600       329938 :                   break;
    5601              :                 }
    5602              :               default:;
    5603              :               }
    5604              :           }
    5605      1610517 :         switch (TREE_CODE (_p1))
    5606              :           {
    5607        87435 :           case PLUS_EXPR:
    5608        87435 :             {
    5609        87435 :               tree _q50 = TREE_OPERAND (_p1, 0);
    5610        87435 :               tree _q51 = TREE_OPERAND (_p1, 1);
    5611        87435 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    5612              :                 {
    5613         7252 :                   {
    5614         7252 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    5615         7252 :                     tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, LE_EXPR);
    5616         7252 :                     if (res) return res;
    5617              :                   }
    5618              :                 }
    5619        83272 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    5620              :                 {
    5621           13 :                   {
    5622           13 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
    5623           13 :                     tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, LE_EXPR);
    5624           13 :                     if (res) return res;
    5625              :                   }
    5626              :                 }
    5627        83272 :               if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    5628              :                 {
    5629          205 :                   {
    5630          205 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q50 };
    5631          205 :                     tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, LE_EXPR);
    5632          205 :                     if (res) return res;
    5633              :                   }
    5634              :                 }
    5635        83264 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5636              :                 {
    5637         6993 :                   {
    5638         6993 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q21, _q20, _q51 };
    5639         6993 :                     tree res = generic_simplify_378 (loc, type, _p0, _p1, captures, LE_EXPR);
    5640         6993 :                     if (res) return res;
    5641              :                   }
    5642              :                 }
    5643              :               break;
    5644              :             }
    5645      1605824 :           default:;
    5646              :           }
    5647      1605824 :         switch (TREE_CODE (_q21))
    5648              :           {
    5649      1484565 :           case INTEGER_CST:
    5650      1484565 :             {
    5651      1484565 :               switch (TREE_CODE (_p1))
    5652              :                 {
    5653        80692 :                 case PLUS_EXPR:
    5654        80692 :                   {
    5655        80692 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    5656        80692 :                     tree _q51 = TREE_OPERAND (_p1, 1);
    5657        80692 :                     if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    5658              :                       {
    5659         3031 :                         {
    5660         3031 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    5661         3031 :                           tree res = generic_simplify_379 (loc, type, _p0, _p1, captures, LE_EXPR);
    5662         3031 :                           if (res) return res;
    5663              :                         }
    5664              :                       }
    5665              :                     break;
    5666              :                   }
    5667              :                 default:;
    5668              :                 }
    5669              :               break;
    5670              :             }
    5671      1605824 :           default:;
    5672              :           }
    5673      1605824 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5674              :           {
    5675        73047 :             {
    5676        73047 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    5677        73047 :               tree res = generic_simplify_380 (loc, type, _p0, _p1, captures, LE_EXPR);
    5678        73047 :               if (res) return res;
    5679              :             }
    5680              :           }
    5681      1563819 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    5682              :           {
    5683         3115 :             {
    5684         3115 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
    5685         3115 :               tree res = generic_simplify_380 (loc, type, _p0, _p1, captures, LE_EXPR);
    5686         3115 :               if (res) return res;
    5687              :             }
    5688              :           }
    5689              :         break;
    5690              :       }
    5691      1675426 :     CASE_CONVERT:
    5692      1675426 :       {
    5693      1675426 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5694      1675426 :         switch (TREE_CODE (_q20))
    5695              :           {
    5696            0 :           case EXACT_DIV_EXPR:
    5697            0 :             {
    5698            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5699            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5700            0 :               switch (TREE_CODE (_q31))
    5701              :                 {
    5702            0 :                 case INTEGER_CST:
    5703            0 :                   {
    5704            0 :                     switch (TREE_CODE (_p1))
    5705              :                       {
    5706            0 :                       CASE_CONVERT:
    5707            0 :                         {
    5708            0 :                           tree _q60 = TREE_OPERAND (_p1, 0);
    5709            0 :                           switch (TREE_CODE (_q60))
    5710              :                             {
    5711            0 :                             case EXACT_DIV_EXPR:
    5712            0 :                               {
    5713            0 :                                 tree _q70 = TREE_OPERAND (_q60, 0);
    5714            0 :                                 tree _q71 = TREE_OPERAND (_q60, 1);
    5715            0 :                                 if ((_q71 == _q31 && ! TREE_SIDE_EFFECTS (_q71)) || (operand_equal_p (_q71, _q31, 0) && types_match (_q71, _q31)))
    5716              :                                   {
    5717            0 :                                     {
    5718            0 :                                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q70 };
    5719            0 :                                       tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, LE_EXPR);
    5720            0 :                                       if (res) return res;
    5721              :                                     }
    5722              :                                   }
    5723              :                                 break;
    5724              :                               }
    5725              :                             default:;
    5726              :                             }
    5727              :                           break;
    5728              :                         }
    5729              :                       default:;
    5730              :                       }
    5731              :                     break;
    5732              :                   }
    5733              :                 default:;
    5734              :                 }
    5735              :               break;
    5736              :             }
    5737              :           default:;
    5738              :           }
    5739              :         break;
    5740              :       }
    5741          432 :     case EXACT_DIV_EXPR:
    5742          432 :       {
    5743          432 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5744          432 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5745          432 :         switch (TREE_CODE (_q21))
    5746              :           {
    5747          432 :           case INTEGER_CST:
    5748          432 :             {
    5749          432 :               switch (TREE_CODE (_p1))
    5750              :                 {
    5751            0 :                 case EXACT_DIV_EXPR:
    5752            0 :                   {
    5753            0 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    5754            0 :                     tree _q51 = TREE_OPERAND (_p1, 1);
    5755            0 :                     if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    5756              :                       {
    5757            0 :                         {
    5758            0 :                           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
    5759            0 :                           tree res = generic_simplify_207 (loc, type, _p0, _p1, captures, LE_EXPR);
    5760            0 :                           if (res) return res;
    5761              :                         }
    5762              :                       }
    5763              :                     break;
    5764              :                   }
    5765              :                 default:;
    5766              :                 }
    5767              :               break;
    5768              :             }
    5769              :           default:;
    5770              :           }
    5771              :         break;
    5772              :       }
    5773        10955 :     case TRUNC_DIV_EXPR:
    5774        10955 :       {
    5775        10955 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5776        10955 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5777        10955 :         switch (TREE_CODE (_q21))
    5778              :           {
    5779         2814 :           case INTEGER_CST:
    5780         2814 :             {
    5781         2814 :               switch (TREE_CODE (_p1))
    5782              :                 {
    5783         1387 :                 case INTEGER_CST:
    5784         1387 :                   {
    5785         1387 :                     {
    5786         1387 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    5787         1387 :                       tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, LE_EXPR);
    5788         1387 :                       if (res) return res;
    5789              :                     }
    5790          679 :                     break;
    5791              :                   }
    5792              :                 default:;
    5793              :                 }
    5794              :               break;
    5795              :             }
    5796              :           default:;
    5797              :           }
    5798              :         break;
    5799              :       }
    5800        65122 :     case MINUS_EXPR:
    5801        65122 :       {
    5802        65122 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5803        65122 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5804        65122 :         switch (TREE_CODE (_p1))
    5805              :           {
    5806          489 :           case MINUS_EXPR:
    5807          489 :             {
    5808          489 :               tree _q50 = TREE_OPERAND (_p1, 0);
    5809          489 :               tree _q51 = TREE_OPERAND (_p1, 1);
    5810          489 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    5811              :                 {
    5812           54 :                   {
    5813           54 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q50 };
    5814           54 :                     tree res = generic_simplify_381 (loc, type, _p0, _p1, captures, LE_EXPR);
    5815           54 :                     if (res) return res;
    5816              :                   }
    5817              :                 }
    5818          489 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5819              :                 {
    5820           26 :                   {
    5821           26 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q51 };
    5822           26 :                     tree res = generic_simplify_382 (loc, type, _p0, _p1, captures, LE_EXPR);
    5823           26 :                     if (res) return res;
    5824              :                   }
    5825              :                 }
    5826              :               break;
    5827              :             }
    5828              :           default:;
    5829              :           }
    5830              :         break;
    5831              :       }
    5832         5362 :     case POINTER_DIFF_EXPR:
    5833         5362 :       {
    5834         5362 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5835         5362 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5836         5362 :         switch (TREE_CODE (_p1))
    5837              :           {
    5838          223 :           case POINTER_DIFF_EXPR:
    5839          223 :             {
    5840          223 :               tree _q50 = TREE_OPERAND (_p1, 0);
    5841          223 :               tree _q51 = TREE_OPERAND (_p1, 1);
    5842          223 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    5843              :                 {
    5844            0 :                   {
    5845            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q50 };
    5846            0 :                     tree res = generic_simplify_220 (loc, type, _p0, _p1, captures, LE_EXPR);
    5847            0 :                     if (res) return res;
    5848              :                   }
    5849              :                 }
    5850          223 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5851              :                 {
    5852            0 :                   {
    5853            0 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q51 };
    5854            0 :                     tree res = generic_simplify_221 (loc, type, _p0, _p1, captures, LE_EXPR);
    5855            0 :                     if (res) return res;
    5856              :                   }
    5857              :                 }
    5858              :               break;
    5859              :             }
    5860              :           default:;
    5861              :           }
    5862              :         break;
    5863              :       }
    5864      9261047 :     default:;
    5865              :     }
    5866      9261047 :   switch (TREE_CODE (_p1))
    5867              :     {
    5868       118487 :     case PLUS_EXPR:
    5869       118487 :       {
    5870       118487 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5871       118487 :         tree _q31 = TREE_OPERAND (_p1, 1);
    5872       118487 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    5873              :           {
    5874            0 :             {
    5875            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    5876            0 :               tree res = generic_simplify_380 (loc, type, _p0, _p1, captures, GE_EXPR);
    5877            0 :               if (res) return res;
    5878              :             }
    5879              :           }
    5880       118487 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    5881              :           {
    5882           57 :             {
    5883           57 :               tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q31, _p0 };
    5884           57 :               tree res = generic_simplify_380 (loc, type, _p0, _p1, captures, GE_EXPR);
    5885           57 :               if (res) return res;
    5886              :             }
    5887              :           }
    5888              :         break;
    5889              :       }
    5890         1208 :     case MINUS_EXPR:
    5891         1208 :       {
    5892         1208 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5893         1208 :         tree _q31 = TREE_OPERAND (_p1, 1);
    5894         1208 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    5895              :           {
    5896            0 :             {
    5897            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
    5898            0 :               tree res = generic_simplify_219 (loc, type, _p0, _p1, captures, LE_EXPR);
    5899            0 :               if (res) return res;
    5900              :             }
    5901              :           }
    5902              :         break;
    5903              :       }
    5904      9261020 :     default:;
    5905              :     }
    5906      9261020 :   switch (TREE_CODE (_p0))
    5907              :     {
    5908        65122 :     case MINUS_EXPR:
    5909        65122 :       {
    5910        65122 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5911        65122 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5912        65122 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    5913              :           {
    5914         2509 :             {
    5915         2509 :               tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
    5916         2509 :               tree res = generic_simplify_219 (loc, type, _p0, _p1, captures, GE_EXPR);
    5917         2509 :               if (res) return res;
    5918              :             }
    5919              :           }
    5920              :         break;
    5921              :       }
    5922         5251 :     case BIT_AND_EXPR:
    5923         5251 :       {
    5924         5251 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5925         5251 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5926         5251 :         if (tree_expr_nonnegative_p (_q20))
    5927              :           {
    5928         4447 :             if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    5929              :               {
    5930            0 :                 {
    5931            0 :                   tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    5932            0 :                   tree res = generic_simplify_383 (loc, type, _p0, _p1, captures, LE_EXPR, BIT_AND_EXPR);
    5933            0 :                   if (res) return res;
    5934              :                 }
    5935              :               }
    5936              :           }
    5937         5251 :         if (tree_expr_nonnegative_p (_q21))
    5938              :           {
    5939         4857 :             if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5940              :               {
    5941            0 :                 {
    5942            0 :                   tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    5943            0 :                   tree res = generic_simplify_383 (loc, type, _p0, _p1, captures, LE_EXPR, BIT_AND_EXPR);
    5944            0 :                   if (res) return res;
    5945              :                 }
    5946              :               }
    5947              :           }
    5948              :         break;
    5949              :       }
    5950      9261020 :     default:;
    5951              :     }
    5952      9261020 :   switch (TREE_CODE (_p1))
    5953              :     {
    5954           46 :     case BIT_IOR_EXPR:
    5955           46 :       {
    5956           46 :         tree _q30 = TREE_OPERAND (_p1, 0);
    5957           46 :         tree _q31 = TREE_OPERAND (_p1, 1);
    5958           46 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    5959              :           {
    5960            0 :             if (tree_expr_nonnegative_p (_q30))
    5961              :               {
    5962            0 :                 {
    5963            0 :                   tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    5964            0 :                   tree res = generic_simplify_383 (loc, type, _p0, _p1, captures, GE_EXPR, BIT_IOR_EXPR);
    5965            0 :                   if (res) return res;
    5966              :                 }
    5967              :               }
    5968              :           }
    5969           46 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    5970              :           {
    5971            0 :             if (tree_expr_nonnegative_p (_q31))
    5972              :               {
    5973            0 :                 {
    5974            0 :                   tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
    5975            0 :                   tree res = generic_simplify_383 (loc, type, _p0, _p1, captures, GE_EXPR, BIT_IOR_EXPR);
    5976            0 :                   if (res) return res;
    5977              :                 }
    5978              :               }
    5979              :           }
    5980              :         break;
    5981              :       }
    5982      9261020 :     default:;
    5983              :     }
    5984      9261020 :   switch (TREE_CODE (_p0))
    5985              :     {
    5986        10192 :     case MIN_EXPR:
    5987        10192 :       {
    5988        10192 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5989        10192 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5990        10192 :         switch (TREE_CODE (_p1))
    5991              :           {
    5992            4 :           case MAX_EXPR:
    5993            4 :             {
    5994            4 :               tree _q50 = TREE_OPERAND (_p1, 0);
    5995            4 :               tree _q51 = TREE_OPERAND (_p1, 1);
    5996            4 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    5997              :                 {
    5998            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    5999              :                     {
    6000            0 :                       {
    6001            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6002            0 :                         tree res = generic_simplify_384 (loc, type, _p0, _p1, captures, LE_EXPR);
    6003            0 :                         if (res) return res;
    6004              :                       }
    6005              :                     }
    6006              :                 }
    6007              :               break;
    6008              :             }
    6009              :           default:;
    6010              :           }
    6011              :         break;
    6012              :       }
    6013         4359 :     case MAX_EXPR:
    6014         4359 :       {
    6015         4359 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6016         4359 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6017         4359 :         switch (TREE_CODE (_p1))
    6018              :           {
    6019            4 :           case MIN_EXPR:
    6020            4 :             {
    6021            4 :               tree _q50 = TREE_OPERAND (_p1, 0);
    6022            4 :               tree _q51 = TREE_OPERAND (_p1, 1);
    6023            4 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    6024              :                 {
    6025            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    6026              :                     {
    6027            0 :                       {
    6028            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6029            0 :                         tree res = generic_simplify_385 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
    6030            0 :                         if (res) return res;
    6031              :                       }
    6032              :                     }
    6033              :                 }
    6034              :               break;
    6035              :             }
    6036         4359 :           default:;
    6037              :           }
    6038         4359 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    6039              :           {
    6040            0 :             {
    6041            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6042            0 :               tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, MAX_EXPR, LE_EXPR, GE_EXPR);
    6043            0 :               if (res) return res;
    6044              :             }
    6045              :           }
    6046         4359 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    6047              :           {
    6048            1 :             {
    6049            1 :               tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    6050            1 :               tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, MAX_EXPR, LE_EXPR, GE_EXPR);
    6051            1 :               if (res) return res;
    6052              :             }
    6053              :           }
    6054              :         break;
    6055              :       }
    6056      9261019 :     default:;
    6057              :     }
    6058      9261019 :   switch (TREE_CODE (_p1))
    6059              :     {
    6060          298 :     case MIN_EXPR:
    6061          298 :       {
    6062          298 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6063          298 :         tree _q31 = TREE_OPERAND (_p1, 1);
    6064          298 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    6065              :           {
    6066            0 :             {
    6067            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    6068            0 :               tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, MIN_EXPR, GE_EXPR, LE_EXPR);
    6069            0 :               if (res) return res;
    6070              :             }
    6071              :           }
    6072          298 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    6073              :           {
    6074            0 :             {
    6075            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
    6076            0 :               tree res = generic_simplify_229 (loc, type, _p0, _p1, captures, MIN_EXPR, GE_EXPR, LE_EXPR);
    6077            0 :               if (res) return res;
    6078              :             }
    6079              :           }
    6080              :         break;
    6081              :       }
    6082           13 :     case MAX_EXPR:
    6083           13 :       {
    6084           13 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6085           13 :         tree _q31 = TREE_OPERAND (_p1, 1);
    6086           13 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    6087              :           {
    6088            0 :             {
    6089            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    6090            0 :               tree res = generic_simplify_386 (loc, type, _p0, _p1, captures, MAX_EXPR, LE_EXPR);
    6091            0 :               if (res) return res;
    6092              :             }
    6093              :           }
    6094           13 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    6095              :           {
    6096            0 :             {
    6097            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q30 };
    6098            0 :               tree res = generic_simplify_386 (loc, type, _p0, _p1, captures, MAX_EXPR, LE_EXPR);
    6099            0 :               if (res) return res;
    6100              :             }
    6101              :           }
    6102              :         break;
    6103              :       }
    6104      9261019 :     default:;
    6105              :     }
    6106      9261019 :   switch (TREE_CODE (_p0))
    6107              :     {
    6108        10192 :     case MIN_EXPR:
    6109        10192 :       {
    6110        10192 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6111        10192 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6112        10192 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    6113              :           {
    6114            0 :             {
    6115            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6116            0 :               tree res = generic_simplify_386 (loc, type, _p0, _p1, captures, MIN_EXPR, GE_EXPR);
    6117            0 :               if (res) return res;
    6118              :             }
    6119              :           }
    6120        10192 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    6121              :           {
    6122            0 :             {
    6123            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    6124            0 :               tree res = generic_simplify_386 (loc, type, _p0, _p1, captures, MIN_EXPR, GE_EXPR);
    6125            0 :               if (res) return res;
    6126              :             }
    6127              :           }
    6128        10192 :         switch (TREE_CODE (_q21))
    6129              :           {
    6130          939 :           case INTEGER_CST:
    6131          939 :             {
    6132          939 :               switch (TREE_CODE (_p1))
    6133              :                 {
    6134            0 :                 case INTEGER_CST:
    6135            0 :                   {
    6136            0 :                     {
    6137            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    6138            0 :                       tree res = generic_simplify_387 (loc, type, _p0, _p1, captures, MIN_EXPR, LE_EXPR, BIT_IOR_EXPR);
    6139            0 :                       if (res) return res;
    6140              :                     }
    6141            0 :                     break;
    6142              :                   }
    6143              :                 default:;
    6144              :                 }
    6145              :               break;
    6146              :             }
    6147              :           default:;
    6148              :           }
    6149              :         break;
    6150              :       }
    6151         4358 :     case MAX_EXPR:
    6152         4358 :       {
    6153         4358 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6154         4358 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6155         4358 :         switch (TREE_CODE (_q21))
    6156              :           {
    6157         4124 :           case INTEGER_CST:
    6158         4124 :             {
    6159         4124 :               switch (TREE_CODE (_p1))
    6160              :                 {
    6161            0 :                 case INTEGER_CST:
    6162            0 :                   {
    6163            0 :                     {
    6164            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    6165            0 :                       tree res = generic_simplify_387 (loc, type, _p0, _p1, captures, MAX_EXPR, LE_EXPR, BIT_AND_EXPR);
    6166            0 :                       if (res) return res;
    6167              :                     }
    6168            0 :                     break;
    6169              :                   }
    6170              :                 default:;
    6171              :                 }
    6172              :               break;
    6173              :             }
    6174              :           default:;
    6175              :           }
    6176              :         break;
    6177              :       }
    6178            9 :     case VEC_COND_EXPR:
    6179            9 :       {
    6180            9 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6181            9 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6182            9 :         tree _q22 = TREE_OPERAND (_p0, 2);
    6183            9 :         switch (TREE_CODE (_p1))
    6184              :           {
    6185            2 :           case VEC_COND_EXPR:
    6186            2 :             {
    6187            2 :               tree _q60 = TREE_OPERAND (_p1, 0);
    6188            2 :               tree _q61 = TREE_OPERAND (_p1, 1);
    6189            2 :               tree _q62 = TREE_OPERAND (_p1, 2);
    6190            2 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    6191              :                 {
    6192            0 :                   {
    6193            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
    6194            0 :                     if (VECTOR_TYPE_P (type)
    6195            0 :  && (TREE_CODE_CLASS (LE_EXPR) != tcc_comparison
    6196            0 :  || types_match (type, TREE_TYPE (captures[2]))
    6197            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    6198              :  || (optimize_vectors_before_lowering_p ()
    6199            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    6200              : )
    6201              :                       {
    6202            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1635;
    6203            0 :                         {
    6204            0 :                           tree res_op0;
    6205            0 :                           res_op0 = captures[1];
    6206            0 :                           tree res_op1;
    6207            0 :                           {
    6208            0 :                             tree _o1[2], _r1;
    6209            0 :                             _o1[0] = captures[2];
    6210            0 :                             _o1[1] = captures[5];
    6211            0 :                             _r1 = fold_build2_loc (loc, LE_EXPR, type, _o1[0], _o1[1]);
    6212            0 :                             if (EXPR_P (_r1))
    6213            0 :                               goto next_after_fail1635;
    6214            0 :                             res_op1 = _r1;
    6215              :                           }
    6216            0 :                           tree res_op2;
    6217            0 :                           {
    6218            0 :                             tree _o1[2], _r1;
    6219            0 :                             _o1[0] = captures[3];
    6220            0 :                             _o1[1] = captures[6];
    6221            0 :                             _r1 = fold_build2_loc (loc, LE_EXPR, type, _o1[0], _o1[1]);
    6222            0 :                             if (EXPR_P (_r1))
    6223            0 :                               goto next_after_fail1635;
    6224            0 :                             res_op2 = _r1;
    6225              :                           }
    6226            0 :                           tree _r;
    6227            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    6228            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
    6229            0 :                           return _r;
    6230              :                         }
    6231            0 : next_after_fail1635:;
    6232              :                       }
    6233              :                   }
    6234              :                 }
    6235              :               break;
    6236              :             }
    6237            9 :           default:;
    6238              :           }
    6239            9 :         {
    6240            9 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
    6241            9 :           if (VECTOR_TYPE_P (type)
    6242            9 :  && (TREE_CODE_CLASS (LE_EXPR) != tcc_comparison
    6243            9 :  || types_match (type, TREE_TYPE (captures[2]))
    6244            9 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    6245              :  || (optimize_vectors_before_lowering_p ()
    6246            1 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    6247              : )
    6248              :             {
    6249            9 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1636;
    6250            9 :               {
    6251            9 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1636;
    6252            7 :                 tree res_op0;
    6253            7 :                 res_op0 = captures[1];
    6254            7 :                 tree res_op1;
    6255            7 :                 {
    6256            7 :                   tree _o1[2], _r1;
    6257            7 :                   _o1[0] = captures[2];
    6258            7 :                   _o1[1] = unshare_expr (captures[4]);
    6259            7 :                   _r1 = fold_build2_loc (loc, LE_EXPR, type, _o1[0], _o1[1]);
    6260            7 :                   if (EXPR_P (_r1))
    6261            0 :                     goto next_after_fail1636;
    6262            7 :                   res_op1 = _r1;
    6263              :                 }
    6264            7 :                 tree res_op2;
    6265            7 :                 {
    6266            7 :                   tree _o1[2], _r1;
    6267            7 :                   _o1[0] = captures[3];
    6268            7 :                   _o1[1] = captures[4];
    6269            7 :                   _r1 = fold_build2_loc (loc, LE_EXPR, type, _o1[0], _o1[1]);
    6270            7 :                   if (EXPR_P (_r1))
    6271            0 :                     goto next_after_fail1636;
    6272            7 :                   res_op2 = _r1;
    6273              :                 }
    6274            7 :                 tree _r;
    6275            7 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    6276            7 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
    6277            7 :                 return _r;
    6278              :               }
    6279            2 : next_after_fail1636:;
    6280              :             }
    6281              :         }
    6282            2 :         break;
    6283              :       }
    6284      9261012 :     default:;
    6285              :     }
    6286      9261012 :   switch (TREE_CODE (_p1))
    6287              :     {
    6288            2 :     case VEC_COND_EXPR:
    6289            2 :       {
    6290            2 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6291            2 :         tree _q31 = TREE_OPERAND (_p1, 1);
    6292            2 :         tree _q32 = TREE_OPERAND (_p1, 2);
    6293            2 :         {
    6294            2 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
    6295            2 :           if (VECTOR_TYPE_P (type)
    6296            2 :  && (TREE_CODE_CLASS (LE_EXPR) != tcc_comparison
    6297            2 :  || types_match (type, TREE_TYPE (captures[3]))
    6298            2 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
    6299              :  || (optimize_vectors_before_lowering_p ()
    6300            1 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
    6301              : )
    6302              :             {
    6303            2 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1637;
    6304            2 :               {
    6305            2 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1637;
    6306            0 :                 tree res_op0;
    6307            0 :                 res_op0 = captures[2];
    6308            0 :                 tree res_op1;
    6309            0 :                 {
    6310            0 :                   tree _o1[2], _r1;
    6311            0 :                   _o1[0] = unshare_expr (captures[0]);
    6312            0 :                   _o1[1] = captures[3];
    6313            0 :                   _r1 = fold_build2_loc (loc, LE_EXPR, type, _o1[0], _o1[1]);
    6314            0 :                   if (EXPR_P (_r1))
    6315            0 :                     goto next_after_fail1637;
    6316            0 :                   res_op1 = _r1;
    6317              :                 }
    6318            0 :                 tree res_op2;
    6319            0 :                 {
    6320            0 :                   tree _o1[2], _r1;
    6321            0 :                   _o1[0] = captures[0];
    6322            0 :                   _o1[1] = captures[4];
    6323            0 :                   _r1 = fold_build2_loc (loc, LE_EXPR, type, _o1[0], _o1[1]);
    6324            0 :                   if (EXPR_P (_r1))
    6325            0 :                     goto next_after_fail1637;
    6326            0 :                   res_op2 = _r1;
    6327              :                 }
    6328            0 :                 tree _r;
    6329            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    6330            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
    6331            0 :                 return _r;
    6332              :               }
    6333            2 : next_after_fail1637:;
    6334              :             }
    6335              :         }
    6336            2 :         break;
    6337              :       }
    6338      9261012 :     default:;
    6339              :     }
    6340      9261012 : if (uniform_integer_cst_p (_p1))
    6341              :   {
    6342      6782730 :     {
    6343      6782730 :       tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    6344      6782730 :       tree res = generic_simplify_406 (loc, type, _p0, _p1, captures, LE_EXPR, LT_EXPR);
    6345      6782730 :       if (res) return res;
    6346              :     }
    6347              :   }
    6348      9163638 :   switch (TREE_CODE (_p0))
    6349              :     {
    6350        61662 :     case MULT_EXPR:
    6351        61662 :       {
    6352        61662 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6353        61662 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6354        61662 :         switch (TREE_CODE (_q21))
    6355              :           {
    6356        54214 :           case INTEGER_CST:
    6357        54214 :             {
    6358        54214 :               if (integer_zerop (_p1))
    6359              :                 {
    6360          987 :                   {
    6361          987 :                     tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    6362          987 :                     tree res = generic_simplify_249 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
    6363          987 :                     if (res) return res;
    6364              :                   }
    6365              :                 }
    6366              :               break;
    6367              :             }
    6368              :           default:;
    6369              :           }
    6370              :         break;
    6371              :       }
    6372      9162854 :     default:;
    6373              :     }
    6374      9162854 :   if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    6375              :     {
    6376         4973 :       {
    6377         4973 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    6378         4973 :         tree res = generic_simplify_251 (loc, type, _p0, _p1, captures, LE_EXPR);
    6379         4973 :         if (res) return res;
    6380              :       }
    6381              :     }
    6382      9157923 :   switch (TREE_CODE (_p0))
    6383              :     {
    6384         2584 :     case BIT_NOT_EXPR:
    6385         2584 :       {
    6386         2584 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6387         2584 :         switch (TREE_CODE (_p1))
    6388              :           {
    6389            0 :           case BIT_NOT_EXPR:
    6390            0 :             {
    6391            0 :               tree _q40 = TREE_OPERAND (_p1, 0);
    6392            0 :               {
    6393            0 :                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _p1, _q40 };
    6394            0 :                 tree res = generic_simplify_255 (loc, type, _p0, _p1, captures, LE_EXPR);
    6395            0 :                 if (res) return res;
    6396              :               }
    6397            0 :               break;
    6398              :             }
    6399         2584 :           default:;
    6400              :           }
    6401         2584 :       {
    6402         2584 :         tree _p1_pops[1];
    6403         2584 :         if (tree_nop_convert (_p1, _p1_pops))
    6404              :           {
    6405            0 :             tree _q40 = _p1_pops[0];
    6406            0 :             switch (TREE_CODE (_q40))
    6407              :               {
    6408            0 :               case BIT_NOT_EXPR:
    6409            0 :                 {
    6410            0 :                   tree _q50 = TREE_OPERAND (_q40, 0);
    6411            0 :                   {
    6412            0 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q40, _q50 };
    6413            0 :                     tree res = generic_simplify_255 (loc, type, _p0, _p1, captures, LE_EXPR);
    6414            0 :                     if (res) return res;
    6415              :                   }
    6416            0 :                   break;
    6417              :                 }
    6418              :               default:;
    6419              :               }
    6420              :           }
    6421              :       }
    6422         2584 :       if (CONSTANT_CLASS_P (_p1))
    6423              :         {
    6424         2292 :           {
    6425         2292 :             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    6426         2292 :             tree res = generic_simplify_254 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
    6427         2292 :             if (res) return res;
    6428              :           }
    6429              :         }
    6430              :         break;
    6431              :       }
    6432      9155631 :     default:;
    6433              :     }
    6434      9155631 : {
    6435      9155631 :   tree _p0_pops[1];
    6436      9155631 :   if (tree_nop_convert (_p0, _p0_pops))
    6437              :     {
    6438       839108 :       tree _q20 = _p0_pops[0];
    6439       839108 :       switch (TREE_CODE (_q20))
    6440              :         {
    6441            0 :         case BIT_NOT_EXPR:
    6442            0 :           {
    6443            0 :             tree _q30 = TREE_OPERAND (_q20, 0);
    6444            0 :             switch (TREE_CODE (_p1))
    6445              :               {
    6446            0 :               case BIT_NOT_EXPR:
    6447            0 :                 {
    6448            0 :                   tree _q50 = TREE_OPERAND (_p1, 0);
    6449            0 :                   {
    6450            0 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _p1, _q50 };
    6451            0 :                     tree res = generic_simplify_253 (loc, type, _p0, _p1, captures, LE_EXPR);
    6452            0 :                     if (res) return res;
    6453              :                   }
    6454            0 :                   break;
    6455              :                 }
    6456            0 :               default:;
    6457              :               }
    6458            0 :           {
    6459            0 :             tree _p1_pops[1];
    6460            0 :             if (tree_nop_convert (_p1, _p1_pops))
    6461              :               {
    6462            0 :                 tree _q50 = _p1_pops[0];
    6463            0 :                 switch (TREE_CODE (_q50))
    6464              :                   {
    6465            0 :                   case BIT_NOT_EXPR:
    6466            0 :                     {
    6467            0 :                       tree _q60 = TREE_OPERAND (_q50, 0);
    6468            0 :                       {
    6469            0 :                         tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q50, _q60 };
    6470            0 :                         tree res = generic_simplify_253 (loc, type, _p0, _p1, captures, LE_EXPR);
    6471            0 :                         if (res) return res;
    6472              :                       }
    6473            0 :                       break;
    6474              :                     }
    6475              :                   default:;
    6476              :                   }
    6477              :               }
    6478              :           }
    6479            0 :           if (CONSTANT_CLASS_P (_p1))
    6480              :             {
    6481            0 :               {
    6482            0 :                 tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
    6483            0 :                 tree res = generic_simplify_254 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
    6484            0 :                 if (res) return res;
    6485              :               }
    6486              :             }
    6487              :             break;
    6488              :           }
    6489              :         default:;
    6490              :         }
    6491              :     }
    6492              : }
    6493      9155631 :   switch (TREE_CODE (_p1))
    6494              :     {
    6495       188353 :     case REAL_CST:
    6496       188353 :       {
    6497       188353 :         {
    6498       188353 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    6499       188353 :           tree res = generic_simplify_256 (loc, type, _p0, _p1, captures, LE_EXPR);
    6500       188353 :           if (res) return res;
    6501              :         }
    6502       188290 :         break;
    6503              :       }
    6504      9155568 :     default:;
    6505              :     }
    6506      9155568 :   switch (TREE_CODE (_p0))
    6507              :     {
    6508      1562194 :     case PLUS_EXPR:
    6509      1562194 :       {
    6510      1562194 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6511      1562194 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6512      1562194 :         switch (TREE_CODE (_q21))
    6513              :           {
    6514           86 :           case REAL_CST:
    6515           86 :             {
    6516           86 :               switch (TREE_CODE (_p1))
    6517              :                 {
    6518           81 :                 case REAL_CST:
    6519           81 :                   {
    6520           81 :                     {
    6521           81 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    6522           81 :                       tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, PLUS_EXPR, LE_EXPR);
    6523           81 :                       if (res) return res;
    6524              :                     }
    6525           81 :                     break;
    6526              :                   }
    6527              :                 default:;
    6528              :                 }
    6529              :               break;
    6530              :             }
    6531      1461679 :           case INTEGER_CST:
    6532      1461679 :             {
    6533      1461679 :               if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    6534              :                 {
    6535         1968 :                   {
    6536         1968 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q20, _q21 };
    6537         1968 :                     tree res = generic_simplify_390 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
    6538         1968 :                     if (res) return res;
    6539              :                   }
    6540              :                 }
    6541              :               break;
    6542              :             }
    6543              :           default:;
    6544              :           }
    6545              :         break;
    6546              :       }
    6547        59487 :     case MINUS_EXPR:
    6548        59487 :       {
    6549        59487 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6550        59487 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6551        59487 :         switch (TREE_CODE (_q21))
    6552              :           {
    6553         1225 :           case REAL_CST:
    6554         1225 :             {
    6555         1225 :               switch (TREE_CODE (_p1))
    6556              :                 {
    6557         1202 :                 case REAL_CST:
    6558         1202 :                   {
    6559         1202 :                     {
    6560         1202 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    6561         1202 :                       tree res = generic_simplify_257 (loc, type, _p0, _p1, captures, MINUS_EXPR, LE_EXPR);
    6562         1202 :                       if (res) return res;
    6563              :                     }
    6564         1202 :                     break;
    6565              :                   }
    6566              :                 default:;
    6567              :                 }
    6568              :               break;
    6569              :             }
    6570        59487 :           default:;
    6571              :           }
    6572        59487 :         switch (TREE_CODE (_q20))
    6573              :           {
    6574            2 :           case REAL_CST:
    6575            2 :             {
    6576            2 :               switch (TREE_CODE (_p1))
    6577              :                 {
    6578            0 :                 case REAL_CST:
    6579            0 :                   {
    6580            0 :                     {
    6581            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    6582            0 :                       tree res = generic_simplify_258 (loc, type, _p0, _p1, captures, LE_EXPR);
    6583            0 :                       if (res) return res;
    6584              :                     }
    6585            0 :                     break;
    6586              :                   }
    6587              :                 default:;
    6588              :                 }
    6589              :               break;
    6590              :             }
    6591              :           default:;
    6592              :           }
    6593              :         break;
    6594              :       }
    6595        11856 :     case FLOAT_EXPR:
    6596        11856 :       {
    6597        11856 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6598        11856 :         switch (TREE_CODE (_p1))
    6599              :           {
    6600            0 :           case FLOAT_EXPR:
    6601            0 :             {
    6602            0 :               tree _q40 = TREE_OPERAND (_p1, 0);
    6603            0 :               {
    6604            0 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
    6605            0 :                 tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, LE_EXPR, LE_EXPR);
    6606            0 :                 if (res) return res;
    6607              :               }
    6608            0 :               break;
    6609              :             }
    6610          235 :           case REAL_CST:
    6611          235 :             {
    6612          235 :               {
    6613          235 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    6614          235 :                 tree res = generic_simplify_262 (loc, type, _p0, _p1, captures, LE_EXPR, LE_EXPR);
    6615          235 :                 if (res) return res;
    6616              :               }
    6617          156 :               break;
    6618              :             }
    6619              :           default:;
    6620              :           }
    6621              :         break;
    6622              :       }
    6623          432 :     case EXACT_DIV_EXPR:
    6624          432 :       {
    6625          432 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6626          432 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6627          432 :         switch (TREE_CODE (_q21))
    6628              :           {
    6629          432 :           case INTEGER_CST:
    6630          432 :             {
    6631          432 :               switch (TREE_CODE (_p1))
    6632              :                 {
    6633          355 :                 case INTEGER_CST:
    6634          355 :                   {
    6635          355 :                     {
    6636          355 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    6637          355 :                       tree res = generic_simplify_391 (loc, type, _p0, _p1, captures, LE_EXPR);
    6638          355 :                       if (res) return res;
    6639              :                     }
    6640            0 :                     break;
    6641              :                   }
    6642              :                 default:;
    6643              :                 }
    6644              :               break;
    6645              :             }
    6646              :           default:;
    6647              :           }
    6648              :         break;
    6649              :       }
    6650      1672195 :     CASE_CONVERT:
    6651      1672195 :       {
    6652      1672195 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6653      1672195 :         switch (TREE_CODE (_q20))
    6654              :           {
    6655            0 :           case EXACT_DIV_EXPR:
    6656            0 :             {
    6657            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6658            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    6659            0 :               switch (TREE_CODE (_q31))
    6660              :                 {
    6661            0 :                 case INTEGER_CST:
    6662            0 :                   {
    6663            0 :                     switch (TREE_CODE (_p1))
    6664              :                       {
    6665            0 :                       case INTEGER_CST:
    6666            0 :                         {
    6667            0 :                           {
    6668            0 :                             tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
    6669            0 :                             tree res = generic_simplify_392 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
    6670            0 :                             if (res) return res;
    6671              :                           }
    6672            0 :                           break;
    6673              :                         }
    6674              :                       default:;
    6675              :                       }
    6676              :                     break;
    6677              :                   }
    6678              :                 default:;
    6679              :                 }
    6680              :               break;
    6681              :             }
    6682      1672195 :           default:;
    6683              :           }
    6684      1672195 :         switch (TREE_CODE (_p1))
    6685              :           {
    6686        77604 :           CASE_CONVERT:
    6687        77604 :             {
    6688        77604 :               tree _q40 = TREE_OPERAND (_p1, 0);
    6689        77604 :               {
    6690        77604 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    6691        77604 :                 tree res = generic_simplify_266 (loc, type, _p0, _p1, captures, LE_EXPR);
    6692        77604 :                 if (res) return res;
    6693              :               }
    6694        28985 :               break;
    6695              :             }
    6696      1623576 :           default:;
    6697              :           }
    6698      1623576 :         {
    6699      1623576 :           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
    6700      1623576 :           tree res = generic_simplify_267 (loc, type, _p0, _p1, captures, LE_EXPR);
    6701      1623576 :           if (res) return res;
    6702              :         }
    6703       941016 :         switch (TREE_CODE (_q20))
    6704              :           {
    6705         5801 :           case ADDR_EXPR:
    6706         5801 :             {
    6707         5801 :               switch (TREE_CODE (_p1))
    6708              :                 {
    6709         5485 :                 CASE_CONVERT:
    6710         5485 :                   {
    6711         5485 :                     tree _q40 = TREE_OPERAND (_p1, 0);
    6712         5485 :                     switch (TREE_CODE (_q40))
    6713              :                       {
    6714         5485 :                       case ADDR_EXPR:
    6715         5485 :                         {
    6716         5485 :                           {
    6717         5485 :                             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
    6718         5485 :                             tree res = generic_simplify_285 (loc, type, _p0, _p1, captures, LE_EXPR);
    6719         5485 :                             if (res) return res;
    6720              :                           }
    6721          160 :                           break;
    6722              :                         }
    6723              :                       default:;
    6724              :                       }
    6725              :                     break;
    6726              :                   }
    6727            7 :                 case ADDR_EXPR:
    6728            7 :                   {
    6729            7 :                     {
    6730            7 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    6731            7 :                       tree res = generic_simplify_285 (loc, type, _p0, _p1, captures, LE_EXPR);
    6732            7 :                       if (res) return res;
    6733              :                     }
    6734            0 :                     break;
    6735              :                   }
    6736              :                 default:;
    6737              :                 }
    6738              :               break;
    6739              :             }
    6740       935684 :           default:;
    6741              :           }
    6742       935684 :         if (uniform_integer_cst_p (_p1))
    6743              :           {
    6744       486368 :             {
    6745       486368 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    6746       486368 :               tree res = generic_simplify_393 (loc, type, _p0, _p1, captures, LE_EXPR);
    6747       486368 :               if (res) return res;
    6748              :             }
    6749              :           }
    6750              :         break;
    6751              :       }
    6752         5251 :     case BIT_AND_EXPR:
    6753         5251 :       {
    6754         5251 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6755         5251 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6756         5251 :         switch (TREE_CODE (_q21))
    6757              :           {
    6758         4769 :           case INTEGER_CST:
    6759         4769 :             {
    6760         4769 :               switch (TREE_CODE (_p1))
    6761              :                 {
    6762         2710 :                 case INTEGER_CST:
    6763         2710 :                   {
    6764         2710 :                     {
    6765         2710 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    6766         2710 :                       tree res = generic_simplify_407 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
    6767         2710 :                       if (res) return res;
    6768              :                     }
    6769         2663 :                     break;
    6770              :                   }
    6771              :                 default:;
    6772              :                 }
    6773              :               break;
    6774              :             }
    6775              :           default:;
    6776              :           }
    6777              :         break;
    6778              :       }
    6779         5494 :     case NEGATE_EXPR:
    6780         5494 :       {
    6781         5494 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6782         5494 :         switch (TREE_CODE (_p1))
    6783              :           {
    6784           32 :           case NEGATE_EXPR:
    6785           32 :             {
    6786           32 :               tree _q40 = TREE_OPERAND (_p1, 0);
    6787           32 :               {
    6788           32 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    6789           32 :                 tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
    6790           32 :                 if (res) return res;
    6791              :               }
    6792           32 :               break;
    6793              :             }
    6794         5494 :           default:;
    6795              :           }
    6796         5494 :       if (CONSTANT_CLASS_P (_p1))
    6797              :         {
    6798          461 :           {
    6799          461 :             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    6800          461 :             tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
    6801          461 :             if (res) return res;
    6802              :           }
    6803              :         }
    6804              :         break;
    6805              :       }
    6806         1498 :     case ADDR_EXPR:
    6807         1498 :       {
    6808         1498 :         switch (TREE_CODE (_p1))
    6809              :           {
    6810           19 :           CASE_CONVERT:
    6811           19 :             {
    6812           19 :               tree _q30 = TREE_OPERAND (_p1, 0);
    6813           19 :               switch (TREE_CODE (_q30))
    6814              :                 {
    6815           19 :                 case ADDR_EXPR:
    6816           19 :                   {
    6817           19 :                     {
    6818           19 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q30 };
    6819           19 :                       tree res = generic_simplify_286 (loc, type, _p0, _p1, captures, LE_EXPR);
    6820           19 :                       if (res) return res;
    6821              :                     }
    6822            0 :                     break;
    6823              :                   }
    6824              :                 default:;
    6825              :                 }
    6826              :               break;
    6827              :             }
    6828          659 :           case ADDR_EXPR:
    6829          659 :             {
    6830          659 :               {
    6831          659 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
    6832          659 :                 tree res = generic_simplify_286 (loc, type, _p0, _p1, captures, LE_EXPR);
    6833          659 :                 if (res) return res;
    6834              :               }
    6835          300 :               break;
    6836              :             }
    6837              :           default:;
    6838              :           }
    6839              :         break;
    6840              :       }
    6841       125273 :     case CALL_EXPR:
    6842       125273 :       switch (get_call_combined_fn (_p0))
    6843              :         {
    6844            2 :         case CFN_BUILT_IN_SQRTF:
    6845            2 :           if (call_expr_nargs (_p0) == 1)
    6846              :     {
    6847            2 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    6848            2 :               switch (TREE_CODE (_p1))
    6849              :                 {
    6850            2 :                 case REAL_CST:
    6851            2 :                   {
    6852            2 :                     {
    6853            2 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    6854            2 :                       tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, LE_EXPR);
    6855            2 :                       if (res) return res;
    6856              :                     }
    6857            0 :                     break;
    6858              :                   }
    6859            0 :                 case CALL_EXPR:
    6860            0 :                   switch (get_call_combined_fn (_p1))
    6861              :                     {
    6862            0 :                     case CFN_BUILT_IN_SQRTF:
    6863            0 :                       if (call_expr_nargs (_p1) == 1)
    6864              :     {
    6865            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    6866            0 :                           {
    6867            0 :                             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    6868            0 :                             tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF, LE_EXPR);
    6869            0 :                             if (res) return res;
    6870              :                           }
    6871              :                         }
    6872              :                       break;
    6873              :                     default:;
    6874              :                     }
    6875              :                   break;
    6876              :                 default:;
    6877              :                 }
    6878              :             }
    6879              :           break;
    6880            0 :         case CFN_BUILT_IN_SQRTL:
    6881            0 :           if (call_expr_nargs (_p0) == 1)
    6882              :     {
    6883            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    6884            0 :               switch (TREE_CODE (_p1))
    6885              :                 {
    6886            0 :                 case REAL_CST:
    6887            0 :                   {
    6888            0 :                     {
    6889            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    6890            0 :                       tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, LE_EXPR);
    6891            0 :                       if (res) return res;
    6892              :                     }
    6893            0 :                     break;
    6894              :                   }
    6895            0 :                 case CALL_EXPR:
    6896            0 :                   switch (get_call_combined_fn (_p1))
    6897              :                     {
    6898            0 :                     case CFN_BUILT_IN_SQRTL:
    6899            0 :                       if (call_expr_nargs (_p1) == 1)
    6900              :     {
    6901            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    6902            0 :                           {
    6903            0 :                             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    6904            0 :                             tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL, LE_EXPR);
    6905            0 :                             if (res) return res;
    6906              :                           }
    6907              :                         }
    6908              :                       break;
    6909              :                     default:;
    6910              :                     }
    6911              :                   break;
    6912              :                 default:;
    6913              :                 }
    6914              :             }
    6915              :           break;
    6916            2 :         case CFN_BUILT_IN_SQRT:
    6917            2 :           if (call_expr_nargs (_p0) == 1)
    6918              :     {
    6919            2 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    6920            2 :               switch (TREE_CODE (_p1))
    6921              :                 {
    6922            2 :                 case REAL_CST:
    6923            2 :                   {
    6924            2 :                     {
    6925            2 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    6926            2 :                       tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, LE_EXPR);
    6927            2 :                       if (res) return res;
    6928              :                     }
    6929            2 :                     break;
    6930              :                   }
    6931            0 :                 case CALL_EXPR:
    6932            0 :                   switch (get_call_combined_fn (_p1))
    6933              :                     {
    6934            0 :                     case CFN_BUILT_IN_SQRT:
    6935            0 :                       if (call_expr_nargs (_p1) == 1)
    6936              :     {
    6937            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    6938            0 :                           {
    6939            0 :                             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    6940            0 :                             tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT, LE_EXPR);
    6941            0 :                             if (res) return res;
    6942              :                           }
    6943              :                         }
    6944              :                       break;
    6945              :                     default:;
    6946              :                     }
    6947              :                   break;
    6948              :                 default:;
    6949              :                 }
    6950              :             }
    6951              :           break;
    6952            0 :         case CFN_SQRT:
    6953            0 :           if (call_expr_nargs (_p0) == 1)
    6954              :     {
    6955            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    6956            0 :               switch (TREE_CODE (_p1))
    6957              :                 {
    6958            0 :                 case REAL_CST:
    6959            0 :                   {
    6960            0 :                     {
    6961            0 :                       tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    6962            0 :                       tree res = generic_simplify_259 (loc, type, _p0, _p1, captures, CFN_SQRT, LE_EXPR);
    6963            0 :                       if (res) return res;
    6964              :                     }
    6965            0 :                     break;
    6966              :                   }
    6967            0 :                 case CALL_EXPR:
    6968            0 :                   switch (get_call_combined_fn (_p1))
    6969              :                     {
    6970            0 :                     case CFN_SQRT:
    6971            0 :                       if (call_expr_nargs (_p1) == 1)
    6972              :     {
    6973            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    6974            0 :                           {
    6975            0 :                             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    6976            0 :                             tree res = generic_simplify_260 (loc, type, _p0, _p1, captures, CFN_SQRT, LE_EXPR);
    6977            0 :                             if (res) return res;
    6978              :                           }
    6979              :                         }
    6980              :                       break;
    6981              :                     default:;
    6982              :                     }
    6983              :                   break;
    6984              :                 default:;
    6985              :                 }
    6986              :             }
    6987              :           break;
    6988              :         default:;
    6989              :         }
    6990              :       break;
    6991      8393041 :     default:;
    6992              :     }
    6993      8393041 :   if (uniform_integer_cst_p (_p1))
    6994              :     {
    6995      5976237 :       {
    6996      5976237 :         tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _p1 };
    6997      5976237 :         tree res = generic_simplify_394 (loc, type, _p0, _p1, captures, LE_EXPR);
    6998      5976237 :         if (res) return res;
    6999              :       }
    7000              :     }
    7001      7984113 :   switch (TREE_CODE (_p0))
    7002              :     {
    7003       897102 :     CASE_CONVERT:
    7004       897102 :       {
    7005       897102 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7006       897102 :         switch (TREE_CODE (_q20))
    7007              :           {
    7008        96854 :           case PLUS_EXPR:
    7009        96854 :             {
    7010        96854 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7011        96854 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7012        96854 :               switch (TREE_CODE (_q30))
    7013              :                 {
    7014        82044 :                 CASE_CONVERT:
    7015        82044 :                   {
    7016        82044 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    7017        82044 :                     switch (TREE_CODE (_q31))
    7018              :                       {
    7019        81459 :                       case INTEGER_CST:
    7020        81459 :                         {
    7021        81459 :                           if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    7022              :                             {
    7023            4 :                               {
    7024            4 :                                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q40, _q31 };
    7025            4 :                                 tree res = generic_simplify_395 (loc, type, _p0, _p1, captures, LE_EXPR, GT_EXPR);
    7026            4 :                                 if (res) return res;
    7027              :                               }
    7028              :                             }
    7029              :                           break;
    7030              :                         }
    7031              :                       default:;
    7032              :                       }
    7033              :                     break;
    7034              :                   }
    7035              :                 default:;
    7036              :                 }
    7037              :               break;
    7038              :             }
    7039              :           default:;
    7040              :           }
    7041              :         break;
    7042              :       }
    7043      7984109 :     default:;
    7044              :     }
    7045      7984109 :   switch (TREE_CODE (_p1))
    7046              :     {
    7047       191830 :     CASE_CONVERT:
    7048       191830 :       {
    7049       191830 :         tree _q30 = TREE_OPERAND (_p1, 0);
    7050       191830 :         switch (TREE_CODE (_q30))
    7051              :           {
    7052         1889 :           case PLUS_EXPR:
    7053         1889 :             {
    7054         1889 :               tree _q40 = TREE_OPERAND (_q30, 0);
    7055         1889 :               tree _q41 = TREE_OPERAND (_q30, 1);
    7056         1889 :               switch (TREE_CODE (_q40))
    7057              :                 {
    7058          442 :                 CASE_CONVERT:
    7059          442 :                   {
    7060          442 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    7061          442 :                     if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    7062              :                       {
    7063            0 :                         switch (TREE_CODE (_q41))
    7064              :                           {
    7065            0 :                           case INTEGER_CST:
    7066            0 :                             {
    7067            0 :                               {
    7068            0 :                                 tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q30, _q40, _p0, _q41 };
    7069            0 :                                 tree res = generic_simplify_395 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
    7070            0 :                                 if (res) return res;
    7071              :                               }
    7072            0 :                               break;
    7073              :                             }
    7074              :                           default:;
    7075              :                           }
    7076              :                       }
    7077              :                     break;
    7078              :                   }
    7079              :                 default:;
    7080              :                 }
    7081              :               break;
    7082              :             }
    7083              :           default:;
    7084              :           }
    7085              :         break;
    7086              :       }
    7087       118144 :     case PLUS_EXPR:
    7088       118144 :       {
    7089       118144 :         tree _q30 = TREE_OPERAND (_p1, 0);
    7090       118144 :         tree _q31 = TREE_OPERAND (_p1, 1);
    7091       118144 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    7092              :           {
    7093           30 :             switch (TREE_CODE (_q31))
    7094              :               {
    7095           30 :               case INTEGER_CST:
    7096           30 :                 {
    7097           30 :                   {
    7098           30 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p1, _p1, _q30, _p0, _q31 };
    7099           30 :                     tree res = generic_simplify_390 (loc, type, _p0, _p1, captures, GE_EXPR, LE_EXPR);
    7100           30 :                     if (res) return res;
    7101              :                   }
    7102            0 :                   break;
    7103              :                 }
    7104              :               default:;
    7105              :               }
    7106              :           }
    7107              :         break;
    7108              :       }
    7109      7984079 :     default:;
    7110              :     }
    7111      7984079 :   switch (TREE_CODE (_p0))
    7112              :     {
    7113        57366 :     case MINUS_EXPR:
    7114        57366 :       {
    7115        57366 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7116        57366 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7117        57366 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    7118              :           {
    7119         2509 :             {
    7120         2509 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    7121         2509 :               tree res = generic_simplify_396 (loc, type, _p0, _p1, captures, LE_EXPR);
    7122         2509 :               if (res) return res;
    7123              :             }
    7124              :           }
    7125              :         break;
    7126              :       }
    7127      7983952 :     default:;
    7128              :     }
    7129      7983952 :   switch (TREE_CODE (_p1))
    7130              :     {
    7131       118114 :     case PLUS_EXPR:
    7132       118114 :       {
    7133       118114 :         tree _q30 = TREE_OPERAND (_p1, 0);
    7134       118114 :         tree _q31 = TREE_OPERAND (_p1, 1);
    7135       118114 :         switch (TREE_CODE (_q30))
    7136              :           {
    7137            4 :           case MINUS_EXPR:
    7138            4 :             {
    7139            4 :               tree _q40 = TREE_OPERAND (_q30, 0);
    7140            4 :               tree _q41 = TREE_OPERAND (_q30, 1);
    7141            4 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    7142              :                 {
    7143            0 :                   if (integer_minus_onep (_q31))
    7144              :                     {
    7145            0 :                       {
    7146            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
    7147            0 :                         tree res = generic_simplify_408 (loc, type, _p0, _p1, captures, GE_EXPR);
    7148            0 :                         if (res) return res;
    7149              :                       }
    7150              :                     }
    7151              :                 }
    7152              :               break;
    7153              :             }
    7154              :           default:;
    7155              :           }
    7156              :         break;
    7157              :       }
    7158      7983952 :     default:;
    7159              :     }
    7160      7983952 :   switch (TREE_CODE (_p0))
    7161              :     {
    7162           12 :     case REALPART_EXPR:
    7163           12 :       {
    7164           12 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7165           12 :         switch (TREE_CODE (_q20))
    7166              :           {
    7167            0 :           case CALL_EXPR:
    7168            0 :             switch (get_call_combined_fn (_q20))
    7169              :               {
    7170            0 :               case CFN_SUB_OVERFLOW:
    7171            0 :                 if (call_expr_nargs (_q20) == 2)
    7172              :     {
    7173            0 :                     tree _q30 = CALL_EXPR_ARG (_q20, 0);
    7174            0 :                     tree _q31 = CALL_EXPR_ARG (_q20, 1);
    7175            0 :                     if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    7176              :                       {
    7177            0 :                         {
    7178            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _q31 };
    7179            0 :                           tree res = generic_simplify_409 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR);
    7180            0 :                           if (res) return res;
    7181              :                         }
    7182              :                       }
    7183              :                   }
    7184              :                 break;
    7185              :               default:;
    7186              :               }
    7187              :             break;
    7188              :           default:;
    7189              :           }
    7190              :         break;
    7191              :       }
    7192      7983952 :     default:;
    7193              :     }
    7194      7983952 :   switch (TREE_CODE (_p1))
    7195              :     {
    7196            0 :     case REALPART_EXPR:
    7197            0 :       {
    7198            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    7199            0 :         switch (TREE_CODE (_q30))
    7200              :           {
    7201            0 :           case CALL_EXPR:
    7202            0 :             switch (get_call_combined_fn (_q30))
    7203              :               {
    7204            0 :               case CFN_ADD_OVERFLOW:
    7205            0 :                 if (call_expr_nargs (_q30) == 2)
    7206              :     {
    7207            0 :                     tree _q40 = CALL_EXPR_ARG (_q30, 0);
    7208            0 :                     tree _q41 = CALL_EXPR_ARG (_q30, 1);
    7209            0 :                     if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    7210              :                       {
    7211            0 :                         {
    7212            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _q41 };
    7213            0 :                           tree res = generic_simplify_410 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
    7214            0 :                           if (res) return res;
    7215              :                         }
    7216              :                       }
    7217            0 :                     if ((_q41 == _p0 && ! TREE_SIDE_EFFECTS (_q41)) || (operand_equal_p (_q41, _p0, 0) && types_match (_q41, _p0)))
    7218              :                       {
    7219            0 :                         {
    7220            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p0, _q40 };
    7221            0 :                           tree res = generic_simplify_410 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
    7222            0 :                           if (res) return res;
    7223              :                         }
    7224              :                       }
    7225              :                   }
    7226              :                 break;
    7227              :               default:;
    7228              :               }
    7229              :             break;
    7230              :           default:;
    7231              :           }
    7232              :         break;
    7233              :       }
    7234          335 :     case TRUNC_DIV_EXPR:
    7235          335 :       {
    7236          335 :         tree _q30 = TREE_OPERAND (_p1, 0);
    7237          335 :         tree _q31 = TREE_OPERAND (_p1, 1);
    7238          335 :         if (integer_all_onesp (_q30))
    7239              :           {
    7240            0 :             {
    7241            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q31, _p0 };
    7242            0 :               tree res = generic_simplify_411 (loc, type, _p0, _p1, captures, GE_EXPR, EQ_EXPR);
    7243            0 :               if (res) return res;
    7244              :             }
    7245              :           }
    7246              :         break;
    7247              :       }
    7248      7983952 :     default:;
    7249              :     }
    7250      7983952 :   switch (TREE_CODE (_p0))
    7251              :     {
    7252        58577 :     case MULT_EXPR:
    7253        58577 :       {
    7254        58577 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7255        58577 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7256        58577 :         switch (TREE_CODE (_q21))
    7257              :           {
    7258          812 :           case REAL_CST:
    7259          812 :             {
    7260          812 :               switch (TREE_CODE (_p1))
    7261              :                 {
    7262          544 :                 case REAL_CST:
    7263          544 :                   {
    7264          544 :                     {
    7265          544 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    7266          544 :                       tree res = generic_simplify_401 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
    7267          544 :                       if (res) return res;
    7268              :                     }
    7269          542 :                     break;
    7270              :                   }
    7271              :                 default:;
    7272              :                 }
    7273              :               break;
    7274              :             }
    7275              :           default:;
    7276              :           }
    7277              :         break;
    7278              :       }
    7279           22 :     case REAL_CST:
    7280           22 :       {
    7281           22 :         switch (TREE_CODE (_p1))
    7282              :           {
    7283            0 :           case CALL_EXPR:
    7284            0 :             switch (get_call_combined_fn (_p1))
    7285              :               {
    7286            0 :               case CFN_BUILT_IN_EXP:
    7287            0 :                 if (call_expr_nargs (_p1) == 1)
    7288              :     {
    7289            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7290            0 :                     {
    7291            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7292            0 :                       tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG, CFN_BUILT_IN_EXP, GE_EXPR);
    7293            0 :                       if (res) return res;
    7294              :                     }
    7295              :                   }
    7296              :                 break;
    7297            0 :               case CFN_BUILT_IN_LOG:
    7298            0 :                 if (call_expr_nargs (_p1) == 1)
    7299              :     {
    7300            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7301            0 :                     {
    7302            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7303            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG, CFN_BUILT_IN_EXP, GE_EXPR);
    7304            0 :                       if (res) return res;
    7305              :                     }
    7306              :                   }
    7307              :                 break;
    7308            0 :               case CFN_BUILT_IN_EXP10F:
    7309            0 :                 if (call_expr_nargs (_p1) == 1)
    7310              :     {
    7311            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7312            0 :                     {
    7313            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7314            0 :                       tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10F, CFN_BUILT_IN_EXP10F, GE_EXPR);
    7315            0 :                       if (res) return res;
    7316              :                     }
    7317              :                   }
    7318              :                 break;
    7319            0 :               case CFN_BUILT_IN_EXP10L:
    7320            0 :                 if (call_expr_nargs (_p1) == 1)
    7321              :     {
    7322            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7323            0 :                     {
    7324            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7325            0 :                       tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10L, CFN_BUILT_IN_EXP10L, GE_EXPR);
    7326            0 :                       if (res) return res;
    7327              :                     }
    7328              :                   }
    7329              :                 break;
    7330            0 :               case CFN_BUILT_IN_EXP2:
    7331            0 :                 if (call_expr_nargs (_p1) == 1)
    7332              :     {
    7333            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7334            0 :                     {
    7335            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7336            0 :                       tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2, CFN_BUILT_IN_EXP2, GE_EXPR);
    7337            0 :                       if (res) return res;
    7338              :                     }
    7339              :                   }
    7340              :                 break;
    7341            0 :               case CFN_BUILT_IN_EXPF:
    7342            0 :                 if (call_expr_nargs (_p1) == 1)
    7343              :     {
    7344            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7345            0 :                     {
    7346            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7347            0 :                       tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGF, CFN_BUILT_IN_EXPF, GE_EXPR);
    7348            0 :                       if (res) return res;
    7349              :                     }
    7350              :                   }
    7351              :                 break;
    7352            0 :               case CFN_BUILT_IN_EXPL:
    7353            0 :                 if (call_expr_nargs (_p1) == 1)
    7354              :     {
    7355            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7356            0 :                     {
    7357            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7358            0 :                       tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGL, CFN_BUILT_IN_EXPL, GE_EXPR);
    7359            0 :                       if (res) return res;
    7360              :                     }
    7361              :                   }
    7362              :                 break;
    7363            0 :               case CFN_BUILT_IN_LOG2:
    7364            0 :                 if (call_expr_nargs (_p1) == 1)
    7365              :     {
    7366            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7367            0 :                     {
    7368            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7369            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2, CFN_BUILT_IN_EXP2, GE_EXPR);
    7370            0 :                       if (res) return res;
    7371              :                     }
    7372              :                   }
    7373              :                 break;
    7374            0 :               case CFN_BUILT_IN_LOGF:
    7375            0 :                 if (call_expr_nargs (_p1) == 1)
    7376              :     {
    7377            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7378            0 :                     {
    7379            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7380            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGF, CFN_BUILT_IN_EXPF, GE_EXPR);
    7381            0 :                       if (res) return res;
    7382              :                     }
    7383              :                   }
    7384              :                 break;
    7385            0 :               case CFN_BUILT_IN_LOGL:
    7386            0 :                 if (call_expr_nargs (_p1) == 1)
    7387              :     {
    7388            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7389            0 :                     {
    7390            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7391            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGL, CFN_BUILT_IN_EXPL, GE_EXPR);
    7392            0 :                       if (res) return res;
    7393              :                     }
    7394              :                   }
    7395              :                 break;
    7396            0 :               case CFN_BUILT_IN_LOG10F:
    7397            0 :                 if (call_expr_nargs (_p1) == 1)
    7398              :     {
    7399            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7400            0 :                     {
    7401            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7402            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10F, CFN_BUILT_IN_EXP10F, GE_EXPR);
    7403            0 :                       if (res) return res;
    7404              :                     }
    7405              :                   }
    7406              :                 break;
    7407            0 :               case CFN_BUILT_IN_LOG10L:
    7408            0 :                 if (call_expr_nargs (_p1) == 1)
    7409              :     {
    7410            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7411            0 :                     {
    7412            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7413            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10L, CFN_BUILT_IN_EXP10L, GE_EXPR);
    7414            0 :                       if (res) return res;
    7415              :                     }
    7416              :                   }
    7417              :                 break;
    7418            0 :               case CFN_EXP:
    7419            0 :                 if (call_expr_nargs (_p1) == 1)
    7420              :     {
    7421            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7422            0 :                     {
    7423            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7424            0 :                       tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_LOG, CFN_EXP, GE_EXPR);
    7425            0 :                       if (res) return res;
    7426              :                     }
    7427              :                   }
    7428              :                 break;
    7429            0 :               case CFN_LOG:
    7430            0 :                 if (call_expr_nargs (_p1) == 1)
    7431              :     {
    7432            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7433            0 :                     {
    7434            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7435            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_LOG, CFN_EXP, GE_EXPR);
    7436            0 :                       if (res) return res;
    7437              :                     }
    7438              :                   }
    7439              :                 break;
    7440            0 :               case CFN_EXP2:
    7441            0 :                 if (call_expr_nargs (_p1) == 1)
    7442              :     {
    7443            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7444            0 :                     {
    7445            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7446            0 :                       tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_LOG2, CFN_EXP2, GE_EXPR);
    7447            0 :                       if (res) return res;
    7448              :                     }
    7449              :                   }
    7450              :                 break;
    7451            0 :               case CFN_LOG2:
    7452            0 :                 if (call_expr_nargs (_p1) == 1)
    7453              :     {
    7454            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7455            0 :                     {
    7456            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7457            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_LOG2, CFN_EXP2, GE_EXPR);
    7458            0 :                       if (res) return res;
    7459              :                     }
    7460              :                   }
    7461              :                 break;
    7462            0 :               case CFN_EXP10:
    7463            0 :                 if (call_expr_nargs (_p1) == 1)
    7464              :     {
    7465            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7466            0 :                     {
    7467            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7468            0 :                       tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_LOG10, CFN_EXP10, GE_EXPR);
    7469            0 :                       if (res) return res;
    7470              :                     }
    7471              :                   }
    7472              :                 break;
    7473            0 :               case CFN_LOG10:
    7474            0 :                 if (call_expr_nargs (_p1) == 1)
    7475              :     {
    7476            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7477            0 :                     {
    7478            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7479            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_LOG10, CFN_EXP10, GE_EXPR);
    7480            0 :                       if (res) return res;
    7481              :                     }
    7482              :                   }
    7483              :                 break;
    7484            0 :               case CFN_BUILT_IN_EXP10:
    7485            0 :                 if (call_expr_nargs (_p1) == 1)
    7486              :     {
    7487            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7488            0 :                     {
    7489            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7490            0 :                       tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10, CFN_BUILT_IN_EXP10, GE_EXPR);
    7491            0 :                       if (res) return res;
    7492              :                     }
    7493              :                   }
    7494              :                 break;
    7495            0 :               case CFN_BUILT_IN_EXP2F:
    7496            0 :                 if (call_expr_nargs (_p1) == 1)
    7497              :     {
    7498            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7499            0 :                     {
    7500            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7501            0 :                       tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2F, CFN_BUILT_IN_EXP2F, GE_EXPR);
    7502            0 :                       if (res) return res;
    7503              :                     }
    7504              :                   }
    7505              :                 break;
    7506            0 :               case CFN_BUILT_IN_EXP2L:
    7507            0 :                 if (call_expr_nargs (_p1) == 1)
    7508              :     {
    7509            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7510            0 :                     {
    7511            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7512            0 :                       tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2L, CFN_BUILT_IN_EXP2L, GE_EXPR);
    7513            0 :                       if (res) return res;
    7514              :                     }
    7515              :                   }
    7516              :                 break;
    7517            0 :               case CFN_BUILT_IN_LOG10:
    7518            0 :                 if (call_expr_nargs (_p1) == 1)
    7519              :     {
    7520            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7521            0 :                     {
    7522            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7523            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10, CFN_BUILT_IN_EXP10, GE_EXPR);
    7524            0 :                       if (res) return res;
    7525              :                     }
    7526              :                   }
    7527              :                 break;
    7528            0 :               case CFN_BUILT_IN_LOG2F:
    7529            0 :                 if (call_expr_nargs (_p1) == 1)
    7530              :     {
    7531            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7532            0 :                     {
    7533            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7534            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2F, CFN_BUILT_IN_EXP2F, GE_EXPR);
    7535            0 :                       if (res) return res;
    7536              :                     }
    7537              :                   }
    7538              :                 break;
    7539            0 :               case CFN_BUILT_IN_LOG2L:
    7540            0 :                 if (call_expr_nargs (_p1) == 1)
    7541              :     {
    7542            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    7543            0 :                     {
    7544            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _p0 };
    7545            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2L, CFN_BUILT_IN_EXP2L, GE_EXPR);
    7546            0 :                       if (res) return res;
    7547              :                     }
    7548              :                   }
    7549              :                 break;
    7550              :               default:;
    7551              :               }
    7552              :             break;
    7553              :           default:;
    7554              :           }
    7555              :         break;
    7556              :       }
    7557      1476946 :     case PLUS_EXPR:
    7558      1476946 :       {
    7559      1476946 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7560      1476946 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7561      1476946 :         switch (TREE_CODE (_q21))
    7562              :           {
    7563      1378935 :           case INTEGER_CST:
    7564      1378935 :             {
    7565      1378935 :               switch (TREE_CODE (_p1))
    7566              :                 {
    7567       859524 :                 case INTEGER_CST:
    7568       859524 :                   {
    7569       859524 :                     {
    7570       859524 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    7571       859524 :                       tree res = generic_simplify_402 (loc, type, _p0, _p1, captures, PLUS_EXPR, MINUS_EXPR, LE_EXPR, GE_EXPR);
    7572       859524 :                       if (res) return res;
    7573              :                     }
    7574       675860 :                     break;
    7575              :                   }
    7576              :                 default:;
    7577              :                 }
    7578              :               break;
    7579              :             }
    7580              :           default:;
    7581              :           }
    7582              :         break;
    7583              :       }
    7584        57239 :     case MINUS_EXPR:
    7585        57239 :       {
    7586        57239 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7587        57239 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7588        57239 :         switch (TREE_CODE (_q21))
    7589              :           {
    7590         2205 :           case INTEGER_CST:
    7591         2205 :             {
    7592         2205 :               switch (TREE_CODE (_p1))
    7593              :                 {
    7594         2205 :                 case INTEGER_CST:
    7595         2205 :                   {
    7596         2205 :                     {
    7597         2205 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    7598         2205 :                       tree res = generic_simplify_402 (loc, type, _p0, _p1, captures, MINUS_EXPR, PLUS_EXPR, LE_EXPR, GE_EXPR);
    7599         2205 :                       if (res) return res;
    7600              :                     }
    7601         2204 :                     break;
    7602              :                   }
    7603              :                 default:;
    7604              :                 }
    7605              :               break;
    7606              :             }
    7607        57238 :           default:;
    7608              :           }
    7609        57238 :         switch (TREE_CODE (_q20))
    7610              :           {
    7611         2041 :           case INTEGER_CST:
    7612         2041 :             {
    7613         2041 :               switch (TREE_CODE (_p1))
    7614              :                 {
    7615         1083 :                 case INTEGER_CST:
    7616         1083 :                   {
    7617         1083 :                     {
    7618         1083 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    7619         1083 :                       tree res = generic_simplify_292 (loc, type, _p0, _p1, captures, LE_EXPR, GE_EXPR);
    7620         1083 :                       if (res) return res;
    7621              :                     }
    7622            0 :                     break;
    7623              :                   }
    7624              :                 default:;
    7625              :                 }
    7626              :               break;
    7627              :             }
    7628              :           default:;
    7629              :           }
    7630              :         break;
    7631              :       }
    7632       124859 :     case CALL_EXPR:
    7633       124859 :       switch (get_call_combined_fn (_p0))
    7634              :         {
    7635           18 :         case CFN_BUILT_IN_CTZ:
    7636           18 :           if (call_expr_nargs (_p0) == 1)
    7637              :     {
    7638           18 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7639           18 :               switch (TREE_CODE (_p1))
    7640              :                 {
    7641           18 :                 case INTEGER_CST:
    7642           18 :                   {
    7643           18 :                     {
    7644           18 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7645           18 :                       tree res = generic_simplify_403 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR, CFN_BUILT_IN_CTZ);
    7646           18 :                       if (res) return res;
    7647              :                     }
    7648           16 :                     break;
    7649              :                   }
    7650              :                 default:;
    7651              :                 }
    7652              :             }
    7653              :           break;
    7654            0 :         case CFN_BUILT_IN_EXP:
    7655            0 :           if (call_expr_nargs (_p0) == 1)
    7656              :     {
    7657            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7658            0 :               switch (TREE_CODE (_p1))
    7659              :                 {
    7660            0 :                 case REAL_CST:
    7661            0 :                   {
    7662            0 :                     {
    7663            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7664            0 :                       tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG, CFN_BUILT_IN_EXP, LE_EXPR);
    7665            0 :                       if (res) return res;
    7666              :                     }
    7667            0 :                     break;
    7668              :                   }
    7669              :                 default:;
    7670              :                 }
    7671              :             }
    7672              :           break;
    7673            8 :         case CFN_BUILT_IN_FFS:
    7674            8 :           if (call_expr_nargs (_p0) == 1)
    7675              :     {
    7676            8 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7677            8 :               switch (TREE_CODE (_p1))
    7678              :                 {
    7679            8 :                 case INTEGER_CST:
    7680            8 :                   {
    7681            8 :                     {
    7682            8 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7683            8 :                       tree res = generic_simplify_414 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, NE_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_FFS);
    7684            8 :                       if (res) return res;
    7685              :                     }
    7686            2 :                     break;
    7687              :                   }
    7688              :                 default:;
    7689              :                 }
    7690              :             }
    7691              :           break;
    7692            0 :         case CFN_BUILT_IN_LOG:
    7693            0 :           if (call_expr_nargs (_p0) == 1)
    7694              :     {
    7695            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7696            0 :               switch (TREE_CODE (_p1))
    7697              :                 {
    7698            0 :                 case REAL_CST:
    7699            0 :                   {
    7700            0 :                     {
    7701            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7702            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG, CFN_BUILT_IN_EXP, LE_EXPR);
    7703            0 :                       if (res) return res;
    7704              :                     }
    7705            0 :                     break;
    7706              :                   }
    7707              :                 default:;
    7708              :                 }
    7709              :             }
    7710              :           break;
    7711            0 :         case CFN_BUILT_IN_FFSIMAX:
    7712            0 :           if (call_expr_nargs (_p0) == 1)
    7713              :     {
    7714            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7715            0 :               switch (TREE_CODE (_p1))
    7716              :                 {
    7717            0 :                 case INTEGER_CST:
    7718            0 :                   {
    7719            0 :                     {
    7720            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7721            0 :                       tree res = generic_simplify_414 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, NE_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_FFSIMAX);
    7722            0 :                       if (res) return res;
    7723              :                     }
    7724            0 :                     break;
    7725              :                   }
    7726              :                 default:;
    7727              :                 }
    7728              :             }
    7729              :           break;
    7730            0 :         case CFN_BUILT_IN_EXP10F:
    7731            0 :           if (call_expr_nargs (_p0) == 1)
    7732              :     {
    7733            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7734            0 :               switch (TREE_CODE (_p1))
    7735              :                 {
    7736            0 :                 case REAL_CST:
    7737            0 :                   {
    7738            0 :                     {
    7739            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7740            0 :                       tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10F, CFN_BUILT_IN_EXP10F, LE_EXPR);
    7741            0 :                       if (res) return res;
    7742              :                     }
    7743            0 :                     break;
    7744              :                   }
    7745              :                 default:;
    7746              :                 }
    7747              :             }
    7748              :           break;
    7749            0 :         case CFN_BUILT_IN_EXP10L:
    7750            0 :           if (call_expr_nargs (_p0) == 1)
    7751              :     {
    7752            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7753            0 :               switch (TREE_CODE (_p1))
    7754              :                 {
    7755            0 :                 case REAL_CST:
    7756            0 :                   {
    7757            0 :                     {
    7758            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7759            0 :                       tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10L, CFN_BUILT_IN_EXP10L, LE_EXPR);
    7760            0 :                       if (res) return res;
    7761              :                     }
    7762            0 :                     break;
    7763              :                   }
    7764              :                 default:;
    7765              :                 }
    7766              :             }
    7767              :           break;
    7768           37 :         case CFN_BUILT_IN_POPCOUNT:
    7769           37 :           if (call_expr_nargs (_p0) == 1)
    7770              :     {
    7771           37 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7772           37 :               if (integer_zerop (_p1))
    7773              :                 {
    7774            1 :                   {
    7775            1 :                     tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    7776            1 :                     tree res = generic_simplify_297 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNT);
    7777            1 :                     if (res) return res;
    7778              :                   }
    7779              :                 }
    7780              :             }
    7781              :           break;
    7782            0 :         case CFN_BUILT_IN_CTZL:
    7783            0 :           if (call_expr_nargs (_p0) == 1)
    7784              :     {
    7785            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7786            0 :               switch (TREE_CODE (_p1))
    7787              :                 {
    7788            0 :                 case INTEGER_CST:
    7789            0 :                   {
    7790            0 :                     {
    7791            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7792            0 :                       tree res = generic_simplify_403 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR, CFN_BUILT_IN_CTZL);
    7793            0 :                       if (res) return res;
    7794              :                     }
    7795            0 :                     break;
    7796              :                   }
    7797              :                 default:;
    7798              :                 }
    7799              :             }
    7800              :           break;
    7801            0 :         case CFN_BUILT_IN_EXP2:
    7802            0 :           if (call_expr_nargs (_p0) == 1)
    7803              :     {
    7804            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7805            0 :               switch (TREE_CODE (_p1))
    7806              :                 {
    7807            0 :                 case REAL_CST:
    7808            0 :                   {
    7809            0 :                     {
    7810            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7811            0 :                       tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2, CFN_BUILT_IN_EXP2, LE_EXPR);
    7812            0 :                       if (res) return res;
    7813              :                     }
    7814            0 :                     break;
    7815              :                   }
    7816              :                 default:;
    7817              :                 }
    7818              :             }
    7819              :           break;
    7820            0 :         case CFN_BUILT_IN_EXPF:
    7821            0 :           if (call_expr_nargs (_p0) == 1)
    7822              :     {
    7823            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7824            0 :               switch (TREE_CODE (_p1))
    7825              :                 {
    7826            0 :                 case REAL_CST:
    7827            0 :                   {
    7828            0 :                     {
    7829            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7830            0 :                       tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGF, CFN_BUILT_IN_EXPF, LE_EXPR);
    7831            0 :                       if (res) return res;
    7832              :                     }
    7833            0 :                     break;
    7834              :                   }
    7835              :                 default:;
    7836              :                 }
    7837              :             }
    7838              :           break;
    7839            0 :         case CFN_BUILT_IN_EXPL:
    7840            0 :           if (call_expr_nargs (_p0) == 1)
    7841              :     {
    7842            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7843            0 :               switch (TREE_CODE (_p1))
    7844              :                 {
    7845            0 :                 case REAL_CST:
    7846            0 :                   {
    7847            0 :                     {
    7848            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7849            0 :                       tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGL, CFN_BUILT_IN_EXPL, LE_EXPR);
    7850            0 :                       if (res) return res;
    7851              :                     }
    7852            0 :                     break;
    7853              :                   }
    7854              :                 default:;
    7855              :                 }
    7856              :             }
    7857              :           break;
    7858            3 :         case CFN_BUILT_IN_FFSL:
    7859            3 :           if (call_expr_nargs (_p0) == 1)
    7860              :     {
    7861            3 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7862            3 :               switch (TREE_CODE (_p1))
    7863              :                 {
    7864            3 :                 case INTEGER_CST:
    7865            3 :                   {
    7866            3 :                     {
    7867            3 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7868            3 :                       tree res = generic_simplify_414 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, NE_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_FFSL);
    7869            3 :                       if (res) return res;
    7870              :                     }
    7871            0 :                     break;
    7872              :                   }
    7873              :                 default:;
    7874              :                 }
    7875              :             }
    7876              :           break;
    7877            0 :         case CFN_BUILT_IN_LOG2:
    7878            0 :           if (call_expr_nargs (_p0) == 1)
    7879              :     {
    7880            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7881            0 :               switch (TREE_CODE (_p1))
    7882              :                 {
    7883            0 :                 case REAL_CST:
    7884            0 :                   {
    7885            0 :                     {
    7886            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7887            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2, CFN_BUILT_IN_EXP2, LE_EXPR);
    7888            0 :                       if (res) return res;
    7889              :                     }
    7890            0 :                     break;
    7891              :                   }
    7892              :                 default:;
    7893              :                 }
    7894              :             }
    7895              :           break;
    7896            0 :         case CFN_BUILT_IN_LOGF:
    7897            0 :           if (call_expr_nargs (_p0) == 1)
    7898              :     {
    7899            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7900            0 :               switch (TREE_CODE (_p1))
    7901              :                 {
    7902            0 :                 case REAL_CST:
    7903            0 :                   {
    7904            0 :                     {
    7905            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7906            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGF, CFN_BUILT_IN_EXPF, LE_EXPR);
    7907            0 :                       if (res) return res;
    7908              :                     }
    7909            0 :                     break;
    7910              :                   }
    7911              :                 default:;
    7912              :                 }
    7913              :             }
    7914              :           break;
    7915            0 :         case CFN_BUILT_IN_LOGL:
    7916            0 :           if (call_expr_nargs (_p0) == 1)
    7917              :     {
    7918            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7919            0 :               switch (TREE_CODE (_p1))
    7920              :                 {
    7921            0 :                 case REAL_CST:
    7922            0 :                   {
    7923            0 :                     {
    7924            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7925            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOGL, CFN_BUILT_IN_EXPL, LE_EXPR);
    7926            0 :                       if (res) return res;
    7927              :                     }
    7928            0 :                     break;
    7929              :                   }
    7930              :                 default:;
    7931              :                 }
    7932              :             }
    7933              :           break;
    7934            1 :         case CFN_BUILT_IN_POPCOUNTLL:
    7935            1 :           if (call_expr_nargs (_p0) == 1)
    7936              :     {
    7937            1 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7938            1 :               if (integer_zerop (_p1))
    7939              :                 {
    7940            1 :                   {
    7941            1 :                     tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    7942            1 :                     tree res = generic_simplify_297 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTLL);
    7943            1 :                     if (res) return res;
    7944              :                   }
    7945              :                 }
    7946              :             }
    7947              :           break;
    7948            0 :         case CFN_BUILT_IN_LOG10F:
    7949            0 :           if (call_expr_nargs (_p0) == 1)
    7950              :     {
    7951            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7952            0 :               switch (TREE_CODE (_p1))
    7953              :                 {
    7954            0 :                 case REAL_CST:
    7955            0 :                   {
    7956            0 :                     {
    7957            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7958            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10F, CFN_BUILT_IN_EXP10F, LE_EXPR);
    7959            0 :                       if (res) return res;
    7960              :                     }
    7961            0 :                     break;
    7962              :                   }
    7963              :                 default:;
    7964              :                 }
    7965              :             }
    7966              :           break;
    7967            0 :         case CFN_BUILT_IN_LOG10L:
    7968            0 :           if (call_expr_nargs (_p0) == 1)
    7969              :     {
    7970            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7971            0 :               switch (TREE_CODE (_p1))
    7972              :                 {
    7973            0 :                 case REAL_CST:
    7974            0 :                   {
    7975            0 :                     {
    7976            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7977            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10L, CFN_BUILT_IN_EXP10L, LE_EXPR);
    7978            0 :                       if (res) return res;
    7979              :                     }
    7980            0 :                     break;
    7981              :                   }
    7982              :                 default:;
    7983              :                 }
    7984              :             }
    7985              :           break;
    7986            0 :         case CFN_BUILT_IN_CTZIMAX:
    7987            0 :           if (call_expr_nargs (_p0) == 1)
    7988              :     {
    7989            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    7990            0 :               switch (TREE_CODE (_p1))
    7991              :                 {
    7992            0 :                 case INTEGER_CST:
    7993            0 :                   {
    7994            0 :                     {
    7995            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    7996            0 :                       tree res = generic_simplify_403 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR, CFN_BUILT_IN_CTZIMAX);
    7997            0 :                       if (res) return res;
    7998              :                     }
    7999            0 :                     break;
    8000              :                   }
    8001              :                 default:;
    8002              :                 }
    8003              :             }
    8004              :           break;
    8005            0 :         case CFN_POPCOUNT:
    8006            0 :           if (call_expr_nargs (_p0) == 1)
    8007              :     {
    8008            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8009            0 :               if (integer_zerop (_p1))
    8010              :                 {
    8011            0 :                   {
    8012            0 :                     tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    8013            0 :                     tree res = generic_simplify_297 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, CFN_POPCOUNT);
    8014            0 :                     if (res) return res;
    8015              :                   }
    8016              :                 }
    8017              :             }
    8018              :           break;
    8019            0 :         case CFN_CTZ:
    8020            0 :           if (call_expr_nargs (_p0) == 2)
    8021              :     {
    8022            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8023            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    8024            0 :               switch (TREE_CODE (_p1))
    8025              :                 {
    8026            0 :                 case INTEGER_CST:
    8027            0 :                   {
    8028            0 :                     {
    8029            0 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    8030            0 :                       tree res = generic_simplify_404 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR);
    8031            0 :                       if (res) return res;
    8032              :                     }
    8033            0 :                     break;
    8034              :                   }
    8035              :                 default:;
    8036              :                 }
    8037              :             }
    8038            0 :           if (call_expr_nargs (_p0) == 1)
    8039              :     {
    8040            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8041            0 :               switch (TREE_CODE (_p1))
    8042              :                 {
    8043            0 :                 case INTEGER_CST:
    8044            0 :                   {
    8045            0 :                     {
    8046            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    8047            0 :                       tree res = generic_simplify_403 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR, CFN_CTZ);
    8048            0 :                       if (res) return res;
    8049              :                     }
    8050            0 :                     break;
    8051              :                   }
    8052              :                 default:;
    8053              :                 }
    8054              :             }
    8055              :           break;
    8056            0 :         case CFN_EXP:
    8057            0 :           if (call_expr_nargs (_p0) == 1)
    8058              :     {
    8059            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8060            0 :               switch (TREE_CODE (_p1))
    8061              :                 {
    8062            0 :                 case REAL_CST:
    8063            0 :                   {
    8064            0 :                     {
    8065            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    8066            0 :                       tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_LOG, CFN_EXP, LE_EXPR);
    8067            0 :                       if (res) return res;
    8068              :                     }
    8069            0 :                     break;
    8070              :                   }
    8071              :                 default:;
    8072              :                 }
    8073              :             }
    8074              :           break;
    8075            0 :         case CFN_FFS:
    8076            0 :           if (call_expr_nargs (_p0) == 1)
    8077              :     {
    8078            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8079            0 :               switch (TREE_CODE (_p1))
    8080              :                 {
    8081            0 :                 case INTEGER_CST:
    8082            0 :                   {
    8083            0 :                     {
    8084            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    8085            0 :                       tree res = generic_simplify_414 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, NE_EXPR, BIT_IOR_EXPR, CFN_FFS);
    8086            0 :                       if (res) return res;
    8087              :                     }
    8088            0 :                     break;
    8089              :                   }
    8090              :                 default:;
    8091              :                 }
    8092              :             }
    8093              :           break;
    8094            0 :         case CFN_LOG:
    8095            0 :           if (call_expr_nargs (_p0) == 1)
    8096              :     {
    8097            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8098            0 :               switch (TREE_CODE (_p1))
    8099              :                 {
    8100            0 :                 case REAL_CST:
    8101            0 :                   {
    8102            0 :                     {
    8103            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    8104            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_LOG, CFN_EXP, LE_EXPR);
    8105            0 :                       if (res) return res;
    8106              :                     }
    8107            0 :                     break;
    8108              :                   }
    8109              :                 default:;
    8110              :                 }
    8111              :             }
    8112              :           break;
    8113            0 :         case CFN_BUILT_IN_POPCOUNTIMAX:
    8114            0 :           if (call_expr_nargs (_p0) == 1)
    8115              :     {
    8116            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8117            0 :               if (integer_zerop (_p1))
    8118              :                 {
    8119            0 :                   {
    8120            0 :                     tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    8121            0 :                     tree res = generic_simplify_297 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTIMAX);
    8122            0 :                     if (res) return res;
    8123              :                   }
    8124              :                 }
    8125              :             }
    8126              :           break;
    8127            0 :         case CFN_EXP2:
    8128            0 :           if (call_expr_nargs (_p0) == 1)
    8129              :     {
    8130            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8131            0 :               switch (TREE_CODE (_p1))
    8132              :                 {
    8133            0 :                 case REAL_CST:
    8134            0 :                   {
    8135            0 :                     {
    8136            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    8137            0 :                       tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_LOG2, CFN_EXP2, LE_EXPR);
    8138            0 :                       if (res) return res;
    8139              :                     }
    8140            0 :                     break;
    8141              :                   }
    8142              :                 default:;
    8143              :                 }
    8144              :             }
    8145              :           break;
    8146            0 :         case CFN_LOG2:
    8147            0 :           if (call_expr_nargs (_p0) == 1)
    8148              :     {
    8149            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8150            0 :               switch (TREE_CODE (_p1))
    8151              :                 {
    8152            0 :                 case REAL_CST:
    8153            0 :                   {
    8154            0 :                     {
    8155            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    8156            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_LOG2, CFN_EXP2, LE_EXPR);
    8157            0 :                       if (res) return res;
    8158              :                     }
    8159            0 :                     break;
    8160              :                   }
    8161              :                 default:;
    8162              :                 }
    8163              :             }
    8164              :           break;
    8165            0 :         case CFN_EXP10:
    8166            0 :           if (call_expr_nargs (_p0) == 1)
    8167              :     {
    8168            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8169            0 :               switch (TREE_CODE (_p1))
    8170              :                 {
    8171            0 :                 case REAL_CST:
    8172            0 :                   {
    8173            0 :                     {
    8174            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    8175            0 :                       tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_LOG10, CFN_EXP10, LE_EXPR);
    8176            0 :                       if (res) return res;
    8177              :                     }
    8178            0 :                     break;
    8179              :                   }
    8180              :                 default:;
    8181              :                 }
    8182              :             }
    8183              :           break;
    8184            1 :         case CFN_BUILT_IN_POPCOUNTL:
    8185            1 :           if (call_expr_nargs (_p0) == 1)
    8186              :     {
    8187            1 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8188            1 :               if (integer_zerop (_p1))
    8189              :                 {
    8190            1 :                   {
    8191            1 :                     tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    8192            1 :                     tree res = generic_simplify_297 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, CFN_BUILT_IN_POPCOUNTL);
    8193            1 :                     if (res) return res;
    8194              :                   }
    8195              :                 }
    8196              :             }
    8197              :           break;
    8198            0 :         case CFN_BUILT_IN_CTZLL:
    8199            0 :           if (call_expr_nargs (_p0) == 1)
    8200              :     {
    8201            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8202            0 :               switch (TREE_CODE (_p1))
    8203              :                 {
    8204            0 :                 case INTEGER_CST:
    8205            0 :                   {
    8206            0 :                     {
    8207            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    8208            0 :                       tree res = generic_simplify_403 (loc, type, _p0, _p1, captures, LE_EXPR, NE_EXPR, CFN_BUILT_IN_CTZLL);
    8209            0 :                       if (res) return res;
    8210              :                     }
    8211            0 :                     break;
    8212              :                   }
    8213              :                 default:;
    8214              :                 }
    8215              :             }
    8216              :           break;
    8217            0 :         case CFN_LOG10:
    8218            0 :           if (call_expr_nargs (_p0) == 1)
    8219              :     {
    8220            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8221            0 :               switch (TREE_CODE (_p1))
    8222              :                 {
    8223            0 :                 case REAL_CST:
    8224            0 :                   {
    8225            0 :                     {
    8226            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    8227            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_LOG10, CFN_EXP10, LE_EXPR);
    8228            0 :                       if (res) return res;
    8229              :                     }
    8230            0 :                     break;
    8231              :                   }
    8232              :                 default:;
    8233              :                 }
    8234              :             }
    8235              :           break;
    8236            0 :         case CFN_BUILT_IN_EXP10:
    8237            0 :           if (call_expr_nargs (_p0) == 1)
    8238              :     {
    8239            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8240            0 :               switch (TREE_CODE (_p1))
    8241              :                 {
    8242            0 :                 case REAL_CST:
    8243            0 :                   {
    8244            0 :                     {
    8245            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    8246            0 :                       tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10, CFN_BUILT_IN_EXP10, LE_EXPR);
    8247            0 :                       if (res) return res;
    8248              :                     }
    8249            0 :                     break;
    8250              :                   }
    8251              :                 default:;
    8252              :                 }
    8253              :             }
    8254              :           break;
    8255            0 :         case CFN_BUILT_IN_EXP2F:
    8256            0 :           if (call_expr_nargs (_p0) == 1)
    8257              :     {
    8258            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8259            0 :               switch (TREE_CODE (_p1))
    8260              :                 {
    8261            0 :                 case REAL_CST:
    8262            0 :                   {
    8263            0 :                     {
    8264            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    8265            0 :                       tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2F, CFN_BUILT_IN_EXP2F, LE_EXPR);
    8266            0 :                       if (res) return res;
    8267              :                     }
    8268            0 :                     break;
    8269              :                   }
    8270              :                 default:;
    8271              :                 }
    8272              :             }
    8273              :           break;
    8274            0 :         case CFN_BUILT_IN_EXP2L:
    8275            0 :           if (call_expr_nargs (_p0) == 1)
    8276              :     {
    8277            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8278            0 :               switch (TREE_CODE (_p1))
    8279              :                 {
    8280            0 :                 case REAL_CST:
    8281            0 :                   {
    8282            0 :                     {
    8283            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    8284            0 :                       tree res = generic_simplify_413 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2L, CFN_BUILT_IN_EXP2L, LE_EXPR);
    8285            0 :                       if (res) return res;
    8286              :                     }
    8287            0 :                     break;
    8288              :                   }
    8289              :                 default:;
    8290              :                 }
    8291              :             }
    8292              :           break;
    8293            3 :         case CFN_BUILT_IN_FFSLL:
    8294            3 :           if (call_expr_nargs (_p0) == 1)
    8295              :     {
    8296            3 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8297            3 :               switch (TREE_CODE (_p1))
    8298              :                 {
    8299            3 :                 case INTEGER_CST:
    8300            3 :                   {
    8301            3 :                     {
    8302            3 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    8303            3 :                       tree res = generic_simplify_414 (loc, type, _p0, _p1, captures, LE_EXPR, EQ_EXPR, NE_EXPR, BIT_IOR_EXPR, CFN_BUILT_IN_FFSLL);
    8304            3 :                       if (res) return res;
    8305              :                     }
    8306            0 :                     break;
    8307              :                   }
    8308              :                 default:;
    8309              :                 }
    8310              :             }
    8311              :           break;
    8312            0 :         case CFN_BUILT_IN_LOG10:
    8313            0 :           if (call_expr_nargs (_p0) == 1)
    8314              :     {
    8315            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8316            0 :               switch (TREE_CODE (_p1))
    8317              :                 {
    8318            0 :                 case REAL_CST:
    8319            0 :                   {
    8320            0 :                     {
    8321            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    8322            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG10, CFN_BUILT_IN_EXP10, LE_EXPR);
    8323            0 :                       if (res) return res;
    8324              :                     }
    8325            0 :                     break;
    8326              :                   }
    8327              :                 default:;
    8328              :                 }
    8329              :             }
    8330              :           break;
    8331            0 :         case CFN_BUILT_IN_LOG2F:
    8332            0 :           if (call_expr_nargs (_p0) == 1)
    8333              :     {
    8334            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8335            0 :               switch (TREE_CODE (_p1))
    8336              :                 {
    8337            0 :                 case REAL_CST:
    8338            0 :                   {
    8339            0 :                     {
    8340            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    8341            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2F, CFN_BUILT_IN_EXP2F, LE_EXPR);
    8342            0 :                       if (res) return res;
    8343              :                     }
    8344            0 :                     break;
    8345              :                   }
    8346              :                 default:;
    8347              :                 }
    8348              :             }
    8349              :           break;
    8350            0 :         case CFN_BUILT_IN_LOG2L:
    8351            0 :           if (call_expr_nargs (_p0) == 1)
    8352              :     {
    8353            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8354            0 :               switch (TREE_CODE (_p1))
    8355              :                 {
    8356            0 :                 case REAL_CST:
    8357            0 :                   {
    8358            0 :                     {
    8359            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    8360            0 :                       tree res = generic_simplify_412 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LOG2L, CFN_BUILT_IN_EXP2L, LE_EXPR);
    8361            0 :                       if (res) return res;
    8362              :                     }
    8363            0 :                     break;
    8364              :                   }
    8365              :                 default:;
    8366              :                 }
    8367              :             }
    8368              :           break;
    8369              :         default:;
    8370              :         }
    8371              :       break;
    8372              :     default:;
    8373              :     }
    8374              :   return NULL_TREE;
    8375              : }
    8376              : 
    8377              : tree
    8378         4140 : generic_simplify_CEIL_MOD_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
    8379              : {
    8380         4140 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    8381         4140 :   if (integer_zerop (_p0))
    8382              :     {
    8383            0 :       {
    8384            0 :         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    8385            0 :         tree res = generic_simplify_323 (loc, type, _p0, _p1, captures, CEIL_MOD_EXPR);
    8386            0 :         if (res) return res;
    8387              :       }
    8388              :     }
    8389         4140 :   if (integer_onep (_p1))
    8390              :     {
    8391            0 :       {
    8392            0 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    8393            0 :         tree res = generic_simplify_324 (loc, type, _p0, _p1, captures, CEIL_MOD_EXPR);
    8394            0 :         if (res) return res;
    8395              :       }
    8396              :     }
    8397         4140 :   if (integer_minus_onep (_p1))
    8398              :     {
    8399            0 :       {
    8400            0 :         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    8401            0 :         tree res = generic_simplify_325 (loc, type, _p0, _p1, captures, CEIL_MOD_EXPR);
    8402            0 :         if (res) return res;
    8403              :       }
    8404              :     }
    8405         4140 :   if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    8406              :     {
    8407            0 :       {
    8408            0 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    8409            0 :         tree res = generic_simplify_326 (loc, type, _p0, _p1, captures, CEIL_MOD_EXPR);
    8410            0 :         if (res) return res;
    8411              :       }
    8412              :     }
    8413         4140 :   switch (TREE_CODE (_p0))
    8414              :     {
    8415            0 :     case CEIL_MOD_EXPR:
    8416            0 :       {
    8417            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8418            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8419            0 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    8420              :           {
    8421            0 :             {
    8422            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8423            0 :               tree res = generic_simplify_327 (loc, type, _p0, _p1, captures, CEIL_MOD_EXPR);
    8424            0 :               if (res) return res;
    8425              :             }
    8426              :           }
    8427              :         break;
    8428              :       }
    8429            0 :     case MULT_EXPR:
    8430            0 :       {
    8431            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8432            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8433            0 :         switch (TREE_CODE (_q21))
    8434              :           {
    8435            0 :           case INTEGER_CST:
    8436            0 :             {
    8437            0 :               switch (TREE_CODE (_p1))
    8438              :                 {
    8439            0 :                 case INTEGER_CST:
    8440            0 :                   {
    8441            0 :                     {
    8442            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    8443            0 :                       tree res = generic_simplify_328 (loc, type, _p0, _p1, captures, CEIL_MOD_EXPR);
    8444            0 :                       if (res) return res;
    8445              :                     }
    8446            0 :                     break;
    8447              :                   }
    8448              :                 default:;
    8449              :                 }
    8450              :               break;
    8451              :             }
    8452              :           default:;
    8453              :           }
    8454              :         break;
    8455              :       }
    8456            0 :     case VEC_COND_EXPR:
    8457            0 :       {
    8458            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8459            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8460            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
    8461            0 :         switch (TREE_CODE (_p1))
    8462              :           {
    8463            0 :           case VEC_COND_EXPR:
    8464            0 :             {
    8465            0 :               tree _q60 = TREE_OPERAND (_p1, 0);
    8466            0 :               tree _q61 = TREE_OPERAND (_p1, 1);
    8467            0 :               tree _q62 = TREE_OPERAND (_p1, 2);
    8468            0 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    8469              :                 {
    8470            0 :                   {
    8471            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
    8472            0 :                     if (VECTOR_TYPE_P (type)
    8473            0 :  && (TREE_CODE_CLASS (CEIL_MOD_EXPR) != tcc_comparison
    8474              :  || types_match (type, TREE_TYPE (captures[2]))
    8475              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    8476              :  || (optimize_vectors_before_lowering_p ()
    8477              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    8478              : )
    8479              :                       {
    8480            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1645;
    8481            0 :                         {
    8482            0 :                           tree res_op0;
    8483            0 :                           res_op0 = captures[1];
    8484            0 :                           tree res_op1;
    8485            0 :                           {
    8486            0 :                             tree _o1[2], _r1;
    8487            0 :                             _o1[0] = captures[2];
    8488            0 :                             _o1[1] = captures[5];
    8489            0 :                             _r1 = fold_build2_loc (loc, CEIL_MOD_EXPR, type, _o1[0], _o1[1]);
    8490            0 :                             if (EXPR_P (_r1))
    8491            0 :                               goto next_after_fail1645;
    8492            0 :                             res_op1 = _r1;
    8493              :                           }
    8494            0 :                           tree res_op2;
    8495            0 :                           {
    8496            0 :                             tree _o1[2], _r1;
    8497            0 :                             _o1[0] = captures[3];
    8498            0 :                             _o1[1] = captures[6];
    8499            0 :                             _r1 = fold_build2_loc (loc, CEIL_MOD_EXPR, type, _o1[0], _o1[1]);
    8500            0 :                             if (EXPR_P (_r1))
    8501            0 :                               goto next_after_fail1645;
    8502            0 :                             res_op2 = _r1;
    8503              :                           }
    8504            0 :                           tree _r;
    8505            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    8506            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
    8507            0 :                           return _r;
    8508              :                         }
    8509            0 : next_after_fail1645:;
    8510              :                       }
    8511              :                   }
    8512              :                 }
    8513              :               break;
    8514              :             }
    8515            0 :           default:;
    8516              :           }
    8517            0 :         {
    8518            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
    8519            0 :           if (VECTOR_TYPE_P (type)
    8520            0 :  && (TREE_CODE_CLASS (CEIL_MOD_EXPR) != tcc_comparison
    8521              :  || types_match (type, TREE_TYPE (captures[2]))
    8522              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    8523              :  || (optimize_vectors_before_lowering_p ()
    8524              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    8525              : )
    8526              :             {
    8527            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1646;
    8528            0 :               {
    8529            0 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1646;
    8530            0 :                 tree res_op0;
    8531            0 :                 res_op0 = captures[1];
    8532            0 :                 tree res_op1;
    8533            0 :                 {
    8534            0 :                   tree _o1[2], _r1;
    8535            0 :                   _o1[0] = captures[2];
    8536            0 :                   _o1[1] = unshare_expr (captures[4]);
    8537            0 :                   _r1 = fold_build2_loc (loc, CEIL_MOD_EXPR, type, _o1[0], _o1[1]);
    8538            0 :                   if (EXPR_P (_r1))
    8539            0 :                     goto next_after_fail1646;
    8540            0 :                   res_op1 = _r1;
    8541              :                 }
    8542            0 :                 tree res_op2;
    8543            0 :                 {
    8544            0 :                   tree _o1[2], _r1;
    8545            0 :                   _o1[0] = captures[3];
    8546            0 :                   _o1[1] = captures[4];
    8547            0 :                   _r1 = fold_build2_loc (loc, CEIL_MOD_EXPR, type, _o1[0], _o1[1]);
    8548            0 :                   if (EXPR_P (_r1))
    8549            0 :                     goto next_after_fail1646;
    8550            0 :                   res_op2 = _r1;
    8551              :                 }
    8552            0 :                 tree _r;
    8553            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    8554            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
    8555            0 :                 return _r;
    8556              :               }
    8557            0 : next_after_fail1646:;
    8558              :             }
    8559              :         }
    8560            0 :         break;
    8561              :       }
    8562         4140 :     default:;
    8563              :     }
    8564         4140 :   switch (TREE_CODE (_p1))
    8565              :     {
    8566            0 :     case VEC_COND_EXPR:
    8567            0 :       {
    8568            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    8569            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
    8570            0 :         tree _q32 = TREE_OPERAND (_p1, 2);
    8571            0 :         {
    8572            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
    8573            0 :           if (VECTOR_TYPE_P (type)
    8574            0 :  && (TREE_CODE_CLASS (CEIL_MOD_EXPR) != tcc_comparison
    8575              :  || types_match (type, TREE_TYPE (captures[3]))
    8576              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
    8577              :  || (optimize_vectors_before_lowering_p ()
    8578              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
    8579              : )
    8580              :             {
    8581            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1647;
    8582            0 :               {
    8583            0 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1647;
    8584            0 :                 tree res_op0;
    8585            0 :                 res_op0 = captures[2];
    8586            0 :                 tree res_op1;
    8587            0 :                 {
    8588            0 :                   tree _o1[2], _r1;
    8589            0 :                   _o1[0] = unshare_expr (captures[0]);
    8590            0 :                   _o1[1] = captures[3];
    8591            0 :                   _r1 = fold_build2_loc (loc, CEIL_MOD_EXPR, type, _o1[0], _o1[1]);
    8592            0 :                   if (EXPR_P (_r1))
    8593            0 :                     goto next_after_fail1647;
    8594            0 :                   res_op1 = _r1;
    8595              :                 }
    8596            0 :                 tree res_op2;
    8597            0 :                 {
    8598            0 :                   tree _o1[2], _r1;
    8599            0 :                   _o1[0] = captures[0];
    8600            0 :                   _o1[1] = captures[4];
    8601            0 :                   _r1 = fold_build2_loc (loc, CEIL_MOD_EXPR, type, _o1[0], _o1[1]);
    8602            0 :                   if (EXPR_P (_r1))
    8603            0 :                     goto next_after_fail1647;
    8604            0 :                   res_op2 = _r1;
    8605              :                 }
    8606            0 :                 tree _r;
    8607            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    8608            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
    8609            0 :                 return _r;
    8610              :               }
    8611            0 : next_after_fail1647:;
    8612              :             }
    8613              :         }
    8614            0 :         break;
    8615              :       }
    8616              :     default:;
    8617              :     }
    8618              :   return NULL_TREE;
    8619              : }
    8620              : 
    8621              : tree
    8622            0 : generic_simplify_ROUND_MOD_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
    8623              : {
    8624            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    8625            0 :   if (integer_zerop (_p0))
    8626              :     {
    8627            0 :       {
    8628            0 :         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    8629            0 :         tree res = generic_simplify_323 (loc, type, _p0, _p1, captures, ROUND_MOD_EXPR);
    8630            0 :         if (res) return res;
    8631              :       }
    8632              :     }
    8633            0 :   if (integer_onep (_p1))
    8634              :     {
    8635            0 :       {
    8636            0 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    8637            0 :         tree res = generic_simplify_324 (loc, type, _p0, _p1, captures, ROUND_MOD_EXPR);
    8638            0 :         if (res) return res;
    8639              :       }
    8640              :     }
    8641            0 :   if (integer_minus_onep (_p1))
    8642              :     {
    8643            0 :       {
    8644            0 :         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    8645            0 :         tree res = generic_simplify_325 (loc, type, _p0, _p1, captures, ROUND_MOD_EXPR);
    8646            0 :         if (res) return res;
    8647              :       }
    8648              :     }
    8649            0 :   if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    8650              :     {
    8651            0 :       {
    8652            0 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    8653            0 :         tree res = generic_simplify_326 (loc, type, _p0, _p1, captures, ROUND_MOD_EXPR);
    8654            0 :         if (res) return res;
    8655              :       }
    8656              :     }
    8657            0 :   switch (TREE_CODE (_p0))
    8658              :     {
    8659            0 :     case ROUND_MOD_EXPR:
    8660            0 :       {
    8661            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8662            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8663            0 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    8664              :           {
    8665            0 :             {
    8666            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8667            0 :               tree res = generic_simplify_327 (loc, type, _p0, _p1, captures, ROUND_MOD_EXPR);
    8668            0 :               if (res) return res;
    8669              :             }
    8670              :           }
    8671              :         break;
    8672              :       }
    8673            0 :     case MULT_EXPR:
    8674            0 :       {
    8675            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8676            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8677            0 :         switch (TREE_CODE (_q21))
    8678              :           {
    8679            0 :           case INTEGER_CST:
    8680            0 :             {
    8681            0 :               switch (TREE_CODE (_p1))
    8682              :                 {
    8683            0 :                 case INTEGER_CST:
    8684            0 :                   {
    8685            0 :                     {
    8686            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    8687            0 :                       tree res = generic_simplify_328 (loc, type, _p0, _p1, captures, ROUND_MOD_EXPR);
    8688            0 :                       if (res) return res;
    8689              :                     }
    8690            0 :                     break;
    8691              :                   }
    8692              :                 default:;
    8693              :                 }
    8694              :               break;
    8695              :             }
    8696              :           default:;
    8697              :           }
    8698              :         break;
    8699              :       }
    8700            0 :     case VEC_COND_EXPR:
    8701            0 :       {
    8702            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8703            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8704            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
    8705            0 :         switch (TREE_CODE (_p1))
    8706              :           {
    8707            0 :           case VEC_COND_EXPR:
    8708            0 :             {
    8709            0 :               tree _q60 = TREE_OPERAND (_p1, 0);
    8710            0 :               tree _q61 = TREE_OPERAND (_p1, 1);
    8711            0 :               tree _q62 = TREE_OPERAND (_p1, 2);
    8712            0 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    8713              :                 {
    8714            0 :                   {
    8715            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
    8716            0 :                     if (VECTOR_TYPE_P (type)
    8717            0 :  && (TREE_CODE_CLASS (ROUND_MOD_EXPR) != tcc_comparison
    8718              :  || types_match (type, TREE_TYPE (captures[2]))
    8719              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    8720              :  || (optimize_vectors_before_lowering_p ()
    8721              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    8722              : )
    8723              :                       {
    8724            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1648;
    8725            0 :                         {
    8726            0 :                           tree res_op0;
    8727            0 :                           res_op0 = captures[1];
    8728            0 :                           tree res_op1;
    8729            0 :                           {
    8730            0 :                             tree _o1[2], _r1;
    8731            0 :                             _o1[0] = captures[2];
    8732            0 :                             _o1[1] = captures[5];
    8733            0 :                             _r1 = fold_build2_loc (loc, ROUND_MOD_EXPR, type, _o1[0], _o1[1]);
    8734            0 :                             if (EXPR_P (_r1))
    8735            0 :                               goto next_after_fail1648;
    8736            0 :                             res_op1 = _r1;
    8737              :                           }
    8738            0 :                           tree res_op2;
    8739            0 :                           {
    8740            0 :                             tree _o1[2], _r1;
    8741            0 :                             _o1[0] = captures[3];
    8742            0 :                             _o1[1] = captures[6];
    8743            0 :                             _r1 = fold_build2_loc (loc, ROUND_MOD_EXPR, type, _o1[0], _o1[1]);
    8744            0 :                             if (EXPR_P (_r1))
    8745            0 :                               goto next_after_fail1648;
    8746            0 :                             res_op2 = _r1;
    8747              :                           }
    8748            0 :                           tree _r;
    8749            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    8750            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
    8751            0 :                           return _r;
    8752              :                         }
    8753            0 : next_after_fail1648:;
    8754              :                       }
    8755              :                   }
    8756              :                 }
    8757              :               break;
    8758              :             }
    8759            0 :           default:;
    8760              :           }
    8761            0 :         {
    8762            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
    8763            0 :           if (VECTOR_TYPE_P (type)
    8764            0 :  && (TREE_CODE_CLASS (ROUND_MOD_EXPR) != tcc_comparison
    8765              :  || types_match (type, TREE_TYPE (captures[2]))
    8766              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    8767              :  || (optimize_vectors_before_lowering_p ()
    8768              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    8769              : )
    8770              :             {
    8771            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1649;
    8772            0 :               {
    8773            0 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1649;
    8774            0 :                 tree res_op0;
    8775            0 :                 res_op0 = captures[1];
    8776            0 :                 tree res_op1;
    8777            0 :                 {
    8778            0 :                   tree _o1[2], _r1;
    8779            0 :                   _o1[0] = captures[2];
    8780            0 :                   _o1[1] = unshare_expr (captures[4]);
    8781            0 :                   _r1 = fold_build2_loc (loc, ROUND_MOD_EXPR, type, _o1[0], _o1[1]);
    8782            0 :                   if (EXPR_P (_r1))
    8783            0 :                     goto next_after_fail1649;
    8784            0 :                   res_op1 = _r1;
    8785              :                 }
    8786            0 :                 tree res_op2;
    8787            0 :                 {
    8788            0 :                   tree _o1[2], _r1;
    8789            0 :                   _o1[0] = captures[3];
    8790            0 :                   _o1[1] = captures[4];
    8791            0 :                   _r1 = fold_build2_loc (loc, ROUND_MOD_EXPR, type, _o1[0], _o1[1]);
    8792            0 :                   if (EXPR_P (_r1))
    8793            0 :                     goto next_after_fail1649;
    8794            0 :                   res_op2 = _r1;
    8795              :                 }
    8796            0 :                 tree _r;
    8797            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    8798            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
    8799            0 :                 return _r;
    8800              :               }
    8801            0 : next_after_fail1649:;
    8802              :             }
    8803              :         }
    8804            0 :         break;
    8805              :       }
    8806            0 :     default:;
    8807              :     }
    8808            0 :   switch (TREE_CODE (_p1))
    8809              :     {
    8810            0 :     case VEC_COND_EXPR:
    8811            0 :       {
    8812            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    8813            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
    8814            0 :         tree _q32 = TREE_OPERAND (_p1, 2);
    8815            0 :         {
    8816            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
    8817            0 :           if (VECTOR_TYPE_P (type)
    8818            0 :  && (TREE_CODE_CLASS (ROUND_MOD_EXPR) != tcc_comparison
    8819              :  || types_match (type, TREE_TYPE (captures[3]))
    8820              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
    8821              :  || (optimize_vectors_before_lowering_p ()
    8822              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
    8823              : )
    8824              :             {
    8825            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1650;
    8826            0 :               {
    8827            0 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1650;
    8828            0 :                 tree res_op0;
    8829            0 :                 res_op0 = captures[2];
    8830            0 :                 tree res_op1;
    8831            0 :                 {
    8832            0 :                   tree _o1[2], _r1;
    8833            0 :                   _o1[0] = unshare_expr (captures[0]);
    8834            0 :                   _o1[1] = captures[3];
    8835            0 :                   _r1 = fold_build2_loc (loc, ROUND_MOD_EXPR, type, _o1[0], _o1[1]);
    8836            0 :                   if (EXPR_P (_r1))
    8837            0 :                     goto next_after_fail1650;
    8838            0 :                   res_op1 = _r1;
    8839              :                 }
    8840            0 :                 tree res_op2;
    8841            0 :                 {
    8842            0 :                   tree _o1[2], _r1;
    8843            0 :                   _o1[0] = captures[0];
    8844            0 :                   _o1[1] = captures[4];
    8845            0 :                   _r1 = fold_build2_loc (loc, ROUND_MOD_EXPR, type, _o1[0], _o1[1]);
    8846            0 :                   if (EXPR_P (_r1))
    8847            0 :                     goto next_after_fail1650;
    8848            0 :                   res_op2 = _r1;
    8849              :                 }
    8850            0 :                 tree _r;
    8851            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    8852            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
    8853            0 :                 return _r;
    8854              :               }
    8855            0 : next_after_fail1650:;
    8856              :             }
    8857              :         }
    8858            0 :         break;
    8859              :       }
    8860              :     default:;
    8861              :     }
    8862              :   return NULL_TREE;
    8863              : }
    8864              : 
    8865              : tree
    8866      2059730 : generic_simplify_TRUNC_MOD_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
    8867              : {
    8868      2059730 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    8869      2059730 :   if (integer_zerop (_p0))
    8870              :     {
    8871          919 :       {
    8872          919 :         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    8873          919 :         tree res = generic_simplify_323 (loc, type, _p0, _p1, captures, TRUNC_MOD_EXPR);
    8874          919 :         if (res) return res;
    8875              :       }
    8876              :     }
    8877      2058945 :   if (integer_onep (_p1))
    8878              :     {
    8879       213396 :       {
    8880       213396 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    8881       213396 :         tree res = generic_simplify_324 (loc, type, _p0, _p1, captures, TRUNC_MOD_EXPR);
    8882       213396 :         if (res) return res;
    8883              :       }
    8884              :     }
    8885      1845549 :   if (integer_minus_onep (_p1))
    8886              :     {
    8887          529 :       {
    8888          529 :         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    8889          529 :         tree res = generic_simplify_325 (loc, type, _p0, _p1, captures, TRUNC_MOD_EXPR);
    8890          529 :         if (res) return res;
    8891              :       }
    8892              :     }
    8893      1845529 :   if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    8894              :     {
    8895          227 :       {
    8896          227 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    8897          227 :         tree res = generic_simplify_326 (loc, type, _p0, _p1, captures, TRUNC_MOD_EXPR);
    8898          227 :         if (res) return res;
    8899              :       }
    8900              :     }
    8901      1845436 :   switch (TREE_CODE (_p0))
    8902              :     {
    8903          107 :     case TRUNC_MOD_EXPR:
    8904          107 :       {
    8905          107 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8906          107 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8907          107 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    8908              :           {
    8909           52 :             {
    8910           52 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    8911           52 :               tree res = generic_simplify_327 (loc, type, _p0, _p1, captures, TRUNC_MOD_EXPR);
    8912           52 :               if (res) return res;
    8913              :             }
    8914              :           }
    8915              :         break;
    8916              :       }
    8917         7144 :     case MULT_EXPR:
    8918         7144 :       {
    8919         7144 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8920         7144 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8921         7144 :         switch (TREE_CODE (_q21))
    8922              :           {
    8923         7051 :           case INTEGER_CST:
    8924         7051 :             {
    8925         7051 :               switch (TREE_CODE (_p1))
    8926              :                 {
    8927         7029 :                 case INTEGER_CST:
    8928         7029 :                   {
    8929         7029 :                     {
    8930         7029 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    8931         7029 :                       tree res = generic_simplify_328 (loc, type, _p0, _p1, captures, TRUNC_MOD_EXPR);
    8932         7029 :                       if (res) return res;
    8933              :                     }
    8934         7029 :                     break;
    8935              :                   }
    8936              :                 default:;
    8937              :                 }
    8938              :               break;
    8939              :             }
    8940              :           default:;
    8941              :           }
    8942              :         break;
    8943              :       }
    8944      1845384 :     default:;
    8945              :     }
    8946      1845384 :   switch (TREE_CODE (_p1))
    8947              :     {
    8948      1574450 :     case INTEGER_CST:
    8949      1574450 :       {
    8950      1574450 :         {
    8951      1574450 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    8952      1574450 :           if (TYPE_SIGN (type) == SIGNED
    8953       279372 :  && !TREE_OVERFLOW (captures[1])
    8954      1574454 :  && wi::neg_p (wi::to_wide (captures[1]))
    8955          313 :  && !TYPE_OVERFLOW_TRAPS (type)
    8956      1574763 :  && !sign_bit_p (captures[1], captures[1])
    8957              : )
    8958              :             {
    8959          309 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1651;
    8960          309 :               {
    8961          309 :                 tree res_op0;
    8962          309 :                 res_op0 = captures[0];
    8963          309 :                 tree res_op1;
    8964          309 :                 {
    8965          309 :                   tree _o1[1], _r1;
    8966          309 :                   _o1[0] = captures[1];
    8967          309 :                   _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    8968          309 :                   res_op1 = _r1;
    8969              :                 }
    8970          309 :                 tree _r;
    8971          309 :                 _r = fold_build2_loc (loc, TRUNC_MOD_EXPR, type, res_op0, res_op1);
    8972          309 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1003, __FILE__, __LINE__, true);
    8973          309 :                 return _r;
    8974              :               }
    8975            0 : next_after_fail1651:;
    8976              :             }
    8977              :         }
    8978      1574141 :         break;
    8979              :       }
    8980        55282 :     CASE_CONVERT:
    8981        55282 :       {
    8982        55282 :         tree _q30 = TREE_OPERAND (_p1, 0);
    8983        55282 :         switch (TREE_CODE (_q30))
    8984              :           {
    8985            0 :           case NEGATE_EXPR:
    8986            0 :             {
    8987            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    8988            0 :               {
    8989            0 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q40 };
    8990            0 :                 tree res = generic_simplify_415 (loc, type, _p0, _p1, captures);
    8991            0 :                 if (res) return res;
    8992              :               }
    8993            0 :               break;
    8994              :             }
    8995        55282 :           default:;
    8996              :           }
    8997        55282 :       {
    8998        55282 :         tree _q30_pops[1];
    8999        55282 :         if (tree_power_of_two_cand (_q30, _q30_pops))
    9000              :           {
    9001            7 :             tree _q40 = _q30_pops[0];
    9002            7 :             {
    9003            7 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q40 };
    9004            7 :               tree res = generic_simplify_329 (loc, type, _p0, _p1, captures, TRUNC_MOD_EXPR);
    9005            7 :               if (res) return res;
    9006              :             }
    9007              :           }
    9008              :       }
    9009        55275 :         break;
    9010              :       }
    9011           94 :     case NEGATE_EXPR:
    9012           94 :       {
    9013           94 :         tree _q30 = TREE_OPERAND (_p1, 0);
    9014           94 :         {
    9015           94 :           tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
    9016           94 :           tree res = generic_simplify_415 (loc, type, _p0, _p1, captures);
    9017           94 :           if (res) return res;
    9018              :         }
    9019           94 :         break;
    9020              :       }
    9021      1845068 :     default:;
    9022              :     }
    9023      1845068 : {
    9024      1845068 :   tree _p1_pops[1];
    9025      1845068 :   if (tree_power_of_two_cand (_p1, _p1_pops))
    9026              :     {
    9027      1574150 :       tree _q30 = _p1_pops[0];
    9028      1574150 :       {
    9029      1574150 :         tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q30 };
    9030      1574150 :         tree res = generic_simplify_329 (loc, type, _p0, _p1, captures, TRUNC_MOD_EXPR);
    9031      1574150 :         if (res) return res;
    9032              :       }
    9033              :     }
    9034              : }
    9035       891634 :   switch (TREE_CODE (_p0))
    9036              :     {
    9037            0 :     case VEC_COND_EXPR:
    9038            0 :       {
    9039            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9040            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9041            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
    9042            0 :         switch (TREE_CODE (_p1))
    9043              :           {
    9044            0 :           case VEC_COND_EXPR:
    9045            0 :             {
    9046            0 :               tree _q60 = TREE_OPERAND (_p1, 0);
    9047            0 :               tree _q61 = TREE_OPERAND (_p1, 1);
    9048            0 :               tree _q62 = TREE_OPERAND (_p1, 2);
    9049            0 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    9050              :                 {
    9051            0 :                   {
    9052            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
    9053            0 :                     if (VECTOR_TYPE_P (type)
    9054            0 :  && (TREE_CODE_CLASS (TRUNC_MOD_EXPR) != tcc_comparison
    9055              :  || types_match (type, TREE_TYPE (captures[2]))
    9056              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    9057              :  || (optimize_vectors_before_lowering_p ()
    9058              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    9059              : )
    9060              :                       {
    9061            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1652;
    9062            0 :                         {
    9063            0 :                           tree res_op0;
    9064            0 :                           res_op0 = captures[1];
    9065            0 :                           tree res_op1;
    9066            0 :                           {
    9067            0 :                             tree _o1[2], _r1;
    9068            0 :                             _o1[0] = captures[2];
    9069            0 :                             _o1[1] = captures[5];
    9070            0 :                             _r1 = fold_build2_loc (loc, TRUNC_MOD_EXPR, type, _o1[0], _o1[1]);
    9071            0 :                             if (EXPR_P (_r1))
    9072            0 :                               goto next_after_fail1652;
    9073            0 :                             res_op1 = _r1;
    9074              :                           }
    9075            0 :                           tree res_op2;
    9076            0 :                           {
    9077            0 :                             tree _o1[2], _r1;
    9078            0 :                             _o1[0] = captures[3];
    9079            0 :                             _o1[1] = captures[6];
    9080            0 :                             _r1 = fold_build2_loc (loc, TRUNC_MOD_EXPR, type, _o1[0], _o1[1]);
    9081            0 :                             if (EXPR_P (_r1))
    9082            0 :                               goto next_after_fail1652;
    9083            0 :                             res_op2 = _r1;
    9084              :                           }
    9085            0 :                           tree _r;
    9086            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    9087            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
    9088            0 :                           return _r;
    9089              :                         }
    9090            0 : next_after_fail1652:;
    9091              :                       }
    9092              :                   }
    9093              :                 }
    9094              :               break;
    9095              :             }
    9096            0 :           default:;
    9097              :           }
    9098            0 :         {
    9099            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
    9100            0 :           if (VECTOR_TYPE_P (type)
    9101            0 :  && (TREE_CODE_CLASS (TRUNC_MOD_EXPR) != tcc_comparison
    9102              :  || types_match (type, TREE_TYPE (captures[2]))
    9103              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    9104              :  || (optimize_vectors_before_lowering_p ()
    9105              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    9106              : )
    9107              :             {
    9108            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1653;
    9109            0 :               {
    9110            0 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1653;
    9111            0 :                 tree res_op0;
    9112            0 :                 res_op0 = captures[1];
    9113            0 :                 tree res_op1;
    9114            0 :                 {
    9115            0 :                   tree _o1[2], _r1;
    9116            0 :                   _o1[0] = captures[2];
    9117            0 :                   _o1[1] = unshare_expr (captures[4]);
    9118            0 :                   _r1 = fold_build2_loc (loc, TRUNC_MOD_EXPR, type, _o1[0], _o1[1]);
    9119            0 :                   if (EXPR_P (_r1))
    9120            0 :                     goto next_after_fail1653;
    9121            0 :                   res_op1 = _r1;
    9122              :                 }
    9123            0 :                 tree res_op2;
    9124            0 :                 {
    9125            0 :                   tree _o1[2], _r1;
    9126            0 :                   _o1[0] = captures[3];
    9127            0 :                   _o1[1] = captures[4];
    9128            0 :                   _r1 = fold_build2_loc (loc, TRUNC_MOD_EXPR, type, _o1[0], _o1[1]);
    9129            0 :                   if (EXPR_P (_r1))
    9130            0 :                     goto next_after_fail1653;
    9131            0 :                   res_op2 = _r1;
    9132              :                 }
    9133            0 :                 tree _r;
    9134            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    9135            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
    9136            0 :                 return _r;
    9137              :               }
    9138            0 : next_after_fail1653:;
    9139              :             }
    9140              :         }
    9141            0 :         break;
    9142              :       }
    9143       891634 :     default:;
    9144              :     }
    9145       891634 :   switch (TREE_CODE (_p1))
    9146              :     {
    9147            7 :     case VEC_COND_EXPR:
    9148            7 :       {
    9149            7 :         tree _q30 = TREE_OPERAND (_p1, 0);
    9150            7 :         tree _q31 = TREE_OPERAND (_p1, 1);
    9151            7 :         tree _q32 = TREE_OPERAND (_p1, 2);
    9152            7 :         {
    9153            7 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
    9154            7 :           if (VECTOR_TYPE_P (type)
    9155            7 :  && (TREE_CODE_CLASS (TRUNC_MOD_EXPR) != tcc_comparison
    9156              :  || types_match (type, TREE_TYPE (captures[3]))
    9157              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
    9158              :  || (optimize_vectors_before_lowering_p ()
    9159              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
    9160              : )
    9161              :             {
    9162            7 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1654;
    9163            7 :               {
    9164            7 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1654;
    9165            0 :                 tree res_op0;
    9166            0 :                 res_op0 = captures[2];
    9167            0 :                 tree res_op1;
    9168            0 :                 {
    9169            0 :                   tree _o1[2], _r1;
    9170            0 :                   _o1[0] = unshare_expr (captures[0]);
    9171            0 :                   _o1[1] = captures[3];
    9172            0 :                   _r1 = fold_build2_loc (loc, TRUNC_MOD_EXPR, type, _o1[0], _o1[1]);
    9173            0 :                   if (EXPR_P (_r1))
    9174            0 :                     goto next_after_fail1654;
    9175            0 :                   res_op1 = _r1;
    9176              :                 }
    9177            0 :                 tree res_op2;
    9178            0 :                 {
    9179            0 :                   tree _o1[2], _r1;
    9180            0 :                   _o1[0] = captures[0];
    9181            0 :                   _o1[1] = captures[4];
    9182            0 :                   _r1 = fold_build2_loc (loc, TRUNC_MOD_EXPR, type, _o1[0], _o1[1]);
    9183            0 :                   if (EXPR_P (_r1))
    9184            0 :                     goto next_after_fail1654;
    9185            0 :                   res_op2 = _r1;
    9186              :                 }
    9187            0 :                 tree _r;
    9188            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    9189            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
    9190            0 :                 return _r;
    9191              :               }
    9192            7 : next_after_fail1654:;
    9193              :             }
    9194              :         }
    9195            7 :         break;
    9196              :       }
    9197              :     default:;
    9198              :     }
    9199              :   return NULL_TREE;
    9200              : }
    9201              : 
    9202              : tree
    9203       970716 : generic_simplify_RSHIFT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
    9204              : {
    9205       970716 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    9206       970716 :   switch (TREE_CODE (_p1))
    9207              :     {
    9208          119 :     case TRUNC_MOD_EXPR:
    9209          119 :       {
    9210          119 :         tree _q30 = TREE_OPERAND (_p1, 0);
    9211          119 :         tree _q31 = TREE_OPERAND (_p1, 1);
    9212          119 :         {
    9213          119 :           tree _q31_pops[1];
    9214          119 :           if (tree_power_of_two_cand (_q31, _q31_pops))
    9215              :             {
    9216          111 :               tree _q50 = _q31_pops[0];
    9217          111 :               {
    9218          111 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q50 };
    9219          111 :                 tree res = generic_simplify_416 (loc, type, _p0, _p1, captures, RSHIFT_EXPR, TRUNC_MOD_EXPR);
    9220          111 :                 if (res) return res;
    9221              :               }
    9222              :             }
    9223              :         }
    9224           14 :         break;
    9225              :       }
    9226            0 :     case FLOOR_MOD_EXPR:
    9227            0 :       {
    9228            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    9229            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
    9230            0 :         {
    9231            0 :           tree _q31_pops[1];
    9232            0 :           if (tree_power_of_two_cand (_q31, _q31_pops))
    9233              :             {
    9234            0 :               tree _q50 = _q31_pops[0];
    9235            0 :               {
    9236            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q30, _q31, _q50 };
    9237            0 :                 tree res = generic_simplify_416 (loc, type, _p0, _p1, captures, RSHIFT_EXPR, FLOOR_MOD_EXPR);
    9238            0 :                 if (res) return res;
    9239              :               }
    9240              :             }
    9241              :         }
    9242            0 :         break;
    9243              :       }
    9244       970611 :     default:;
    9245              :     }
    9246       970611 : if (uniform_integer_cst_p (_p1))
    9247              :   {
    9248       773471 :     {
    9249       773471 :       tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    9250       773471 :       tree res = generic_simplify_417 (loc, type, _p0, _p1, captures, RSHIFT_EXPR);
    9251       773471 :       if (res) return res;
    9252              :     }
    9253              :   }
    9254       969854 :   switch (TREE_CODE (_p0))
    9255              :     {
    9256           58 :     case NEGATE_EXPR:
    9257           58 :       {
    9258           58 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9259           58 :         switch (TREE_CODE (_p1))
    9260              :           {
    9261           57 :           case INTEGER_CST:
    9262           57 :             {
    9263           57 :               {
    9264           57 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    9265           57 :                 if (!TYPE_UNSIGNED (type)
    9266           57 :  && TYPE_OVERFLOW_UNDEFINED (type)
    9267              : )
    9268              :                   {
    9269           32 :                     {
    9270           32 :  tree stype = TREE_TYPE (captures[2]);
    9271           32 :  tree bt = truth_type_for (type);
    9272           32 :  tree zeros = build_zero_cst (type);
    9273           32 :  tree INTEGER_CST = NULL_TREE;
    9274           32 :                         if (INTEGRAL_TYPE_P (type)
    9275              :  && canonicalize_math_after_vectorization_p ()
    9276              :  && wi::eq_p (wi::to_wide (captures[2]), TYPE_PRECISION (type) - 1)
    9277              : )
    9278              :                           {
    9279              :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1663;
    9280              :                             {
    9281              :                               tree res_op0;
    9282              :                               {
    9283              :                                 tree _o1[1], _r1;
    9284              :                                 {
    9285              :                                   tree _o2[2], _r2;
    9286              :                                   _o2[0] = captures[1];
    9287              :                                   _o2[1] =  zeros;
    9288              :                                   _r2 = fold_build2_loc (loc, GT_EXPR, boolean_type_node, _o2[0], _o2[1]);
    9289              :                                   _o1[0] = _r2;
    9290              :                                 }
    9291              :                                 if (TREE_TYPE (_o1[0]) != type)
    9292              :                                   {
    9293              :                                     _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    9294              :                                   }
    9295              :                                 else
    9296              :                                   _r1 = _o1[0];
    9297              :                                 res_op0 = _r1;
    9298              :                               }
    9299              :                               tree _r;
    9300              :                               _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    9301              :                               if (TREE_SIDE_EFFECTS (captures[2]))
    9302              :                                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    9303              :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1008, __FILE__, __LINE__, true);
    9304              :                               return _r;
    9305              :                             }
    9306              : next_after_fail1663:;
    9307              :                           }
    9308              :                         else
    9309              :                           {
    9310            0 :                             if (VECTOR_INTEGER_TYPE_P (type)
    9311            0 :  && TYPE_MODE (bt) == TYPE_MODE (type)
    9312            0 :  && expand_vec_cmp_expr_p (type, bt, GT_EXPR)
    9313            0 :  && (INTEGER_CST = uniform_integer_cst_p (captures[2])) != NULL
    9314           32 :  && wi::eq_p (wi::to_wide (INTEGER_CST), element_precision (type) - 1)
    9315              : )
    9316              :                               {
    9317            0 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1664;
    9318            0 :                                 {
    9319            0 :                                   tree res_op0;
    9320            0 :                                   {
    9321            0 :                                     tree _o1[2], _r1;
    9322            0 :                                     _o1[0] = captures[1];
    9323            0 :                                     _o1[1] =  zeros;
    9324            0 :                                     _r1 = fold_build2_loc (loc, GT_EXPR, bt, _o1[0], _o1[1]);
    9325            0 :                                     res_op0 = _r1;
    9326              :                                   }
    9327            0 :                                   tree _r;
    9328            0 :                                   _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
    9329            0 :                                   if (TREE_SIDE_EFFECTS (captures[2]))
    9330            0 :                                     _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    9331            0 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1009, __FILE__, __LINE__, true);
    9332            0 :                                   return _r;
    9333              :                                 }
    9334            0 : next_after_fail1664:;
    9335              :                               }
    9336              :                           }
    9337              :                     }
    9338              :                   }
    9339              :               }
    9340           57 :               break;
    9341              :             }
    9342            0 :           case VECTOR_CST:
    9343            0 :             {
    9344            0 :               {
    9345            0 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    9346            0 :                 if (!TYPE_UNSIGNED (type)
    9347            0 :  && TYPE_OVERFLOW_UNDEFINED (type)
    9348              : )
    9349              :                   {
    9350            0 :                     {
    9351            0 :  tree stype = TREE_TYPE (captures[2]);
    9352            0 :  tree bt = truth_type_for (type);
    9353            0 :  tree zeros = build_zero_cst (type);
    9354            0 :  tree VECTOR_CST = NULL_TREE;
    9355            0 :                         if (INTEGRAL_TYPE_P (type)
    9356              :  && canonicalize_math_after_vectorization_p ()
    9357              :  && wi::eq_p (wi::to_wide (captures[2]), TYPE_PRECISION (type) - 1)
    9358              : )
    9359              :                           {
    9360              :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1665;
    9361              :                             {
    9362              :                               tree res_op0;
    9363              :                               {
    9364              :                                 tree _o1[1], _r1;
    9365              :                                 {
    9366              :                                   tree _o2[2], _r2;
    9367              :                                   _o2[0] = captures[1];
    9368              :                                   _o2[1] =  zeros;
    9369              :                                   _r2 = fold_build2_loc (loc, GT_EXPR, boolean_type_node, _o2[0], _o2[1]);
    9370              :                                   _o1[0] = _r2;
    9371              :                                 }
    9372              :                                 if (TREE_TYPE (_o1[0]) != type)
    9373              :                                   {
    9374              :                                     _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    9375              :                                   }
    9376              :                                 else
    9377              :                                   _r1 = _o1[0];
    9378              :                                 res_op0 = _r1;
    9379              :                               }
    9380              :                               tree _r;
    9381              :                               _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    9382              :                               if (TREE_SIDE_EFFECTS (captures[2]))
    9383              :                                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    9384              :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1008, __FILE__, __LINE__, true);
    9385              :                               return _r;
    9386              :                             }
    9387              : next_after_fail1665:;
    9388              :                           }
    9389              :                         else
    9390              :                           {
    9391            0 :                             if (VECTOR_INTEGER_TYPE_P (type)
    9392            0 :  && TYPE_MODE (bt) == TYPE_MODE (type)
    9393            0 :  && expand_vec_cmp_expr_p (type, bt, GT_EXPR)
    9394            0 :  && (VECTOR_CST = uniform_integer_cst_p (captures[2])) != NULL
    9395            0 :  && wi::eq_p (wi::to_wide (VECTOR_CST), element_precision (type) - 1)
    9396              : )
    9397              :                               {
    9398            0 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1666;
    9399            0 :                                 {
    9400            0 :                                   tree res_op0;
    9401            0 :                                   {
    9402            0 :                                     tree _o1[2], _r1;
    9403            0 :                                     _o1[0] = captures[1];
    9404            0 :                                     _o1[1] =  zeros;
    9405            0 :                                     _r1 = fold_build2_loc (loc, GT_EXPR, bt, _o1[0], _o1[1]);
    9406            0 :                                     res_op0 = _r1;
    9407              :                                   }
    9408            0 :                                   tree _r;
    9409            0 :                                   _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
    9410            0 :                                   if (TREE_SIDE_EFFECTS (captures[2]))
    9411            0 :                                     _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    9412            0 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1009, __FILE__, __LINE__, true);
    9413            0 :                                   return _r;
    9414              :                                 }
    9415            0 : next_after_fail1666:;
    9416              :                               }
    9417              :                           }
    9418              :                     }
    9419              :                   }
    9420              :               }
    9421            0 :               break;
    9422              :             }
    9423              :           default:;
    9424              :           }
    9425              :         break;
    9426              :       }
    9427          437 :     case LSHIFT_EXPR:
    9428          437 :       {
    9429          437 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9430          437 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9431          437 :         switch (TREE_CODE (_q21))
    9432              :           {
    9433          358 :           case INTEGER_CST:
    9434          358 :             {
    9435          358 :               if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q21, 0))
    9436              :                 {
    9437           67 :                   {
    9438           67 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _q21 };
    9439           67 :                     tree res = generic_simplify_426 (loc, type, _p0, _p1, captures);
    9440           67 :                     if (res) return res;
    9441              :                   }
    9442              :                 }
    9443              :               break;
    9444              :             }
    9445              :           default:;
    9446              :           }
    9447              :         break;
    9448              :       }
    9449       969827 :     default:;
    9450              :     }
    9451       969827 : {
    9452       969827 :   tree _p0_pops[1];
    9453       969827 :   if (tree_nop_convert (_p0, _p0_pops))
    9454              :     {
    9455       154668 :       tree _q20 = _p0_pops[0];
    9456       154668 :       switch (TREE_CODE (_q20))
    9457              :         {
    9458           20 :         case LSHIFT_EXPR:
    9459           20 :           {
    9460           20 :             tree _q30 = TREE_OPERAND (_q20, 0);
    9461           20 :             tree _q31 = TREE_OPERAND (_q20, 1);
    9462           20 :             switch (TREE_CODE (_q31))
    9463              :               {
    9464            0 :               case INTEGER_CST:
    9465            0 :                 {
    9466            0 :                   if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q31, 0))
    9467              :                     {
    9468            0 :                       {
    9469            0 :                         tree captures[3] ATTRIBUTE_UNUSED = { _q30, _p1, _q31 };
    9470            0 :                         tree res = generic_simplify_426 (loc, type, _p0, _p1, captures);
    9471            0 :                         if (res) return res;
    9472              :                       }
    9473              :                     }
    9474              :                   break;
    9475              :                 }
    9476              :               default:;
    9477              :               }
    9478              :             break;
    9479              :           }
    9480              :         default:;
    9481              :         }
    9482              :     }
    9483              : }
    9484       969827 : if (integer_all_onesp (_p0))
    9485              :   {
    9486        11007 :     {
    9487        11007 :       tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    9488        11007 :       if (!TYPE_UNSIGNED (type)
    9489              : )
    9490              :         {
    9491          119 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1667;
    9492          119 :           {
    9493          119 :             tree _r;
    9494          119 :             _r = captures[0];
    9495          119 :             if (TREE_SIDE_EFFECTS (captures[1]))
    9496            1 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    9497          119 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1010, __FILE__, __LINE__, true);
    9498          119 :             return _r;
    9499              :           }
    9500            0 : next_after_fail1667:;
    9501              :         }
    9502              :     }
    9503              :   }
    9504       969708 :   if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    9505              :     {
    9506           25 :       {
    9507           25 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    9508           25 :         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1668;
    9509           25 :         {
    9510           25 :           tree _r;
    9511           25 :           _r =  build_zero_cst (type);
    9512           25 :           if (TREE_SIDE_EFFECTS (captures[0]))
    9513            0 :             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    9514           25 :           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1011, __FILE__, __LINE__, true);
    9515           25 :           return _r;
    9516              :         }
    9517            0 : next_after_fail1668:;
    9518              :       }
    9519              :     }
    9520       969683 :   if (integer_zerop (_p1))
    9521              :     {
    9522         1295 :       {
    9523         1295 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    9524         1295 :         tree res = generic_simplify_419 (loc, type, _p0, _p1, captures, RSHIFT_EXPR);
    9525         1295 :         if (res) return res;
    9526              :       }
    9527              :     }
    9528       968388 :   if (integer_zerop (_p0))
    9529              :     {
    9530          152 :       {
    9531          152 :         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    9532          152 :         tree res = generic_simplify_420 (loc, type, _p0, _p1, captures, RSHIFT_EXPR);
    9533          152 :         if (res) return res;
    9534              :       }
    9535              :     }
    9536       968236 :   switch (TREE_CODE (_p1))
    9537              :     {
    9538            0 :     case VECTOR_CST:
    9539            0 :       {
    9540            0 :         {
    9541            0 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    9542            0 :           tree res = generic_simplify_421 (loc, type, _p0, _p1, captures, RSHIFT_EXPR);
    9543            0 :           if (res) return res;
    9544              :         }
    9545            0 :         break;
    9546              :       }
    9547            0 :     case CONSTRUCTOR:
    9548            0 :       {
    9549            0 :         {
    9550            0 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    9551            0 :           tree res = generic_simplify_422 (loc, type, _p0, _p1, captures, RSHIFT_EXPR);
    9552            0 :           if (res) return res;
    9553              :         }
    9554            0 :         break;
    9555              :       }
    9556       968236 :     default:;
    9557              :     }
    9558       968236 :   switch (TREE_CODE (_p0))
    9559              :     {
    9560          118 :     case RSHIFT_EXPR:
    9561          118 :       {
    9562          118 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9563          118 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9564          118 :         switch (TREE_CODE (_q21))
    9565              :           {
    9566           73 :           case INTEGER_CST:
    9567           73 :             {
    9568           73 :               switch (TREE_CODE (_p1))
    9569              :                 {
    9570           47 :                 case INTEGER_CST:
    9571           47 :                   {
    9572           47 :                     {
    9573           47 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    9574           47 :                       tree res = generic_simplify_423 (loc, type, _p0, _p1, captures, RSHIFT_EXPR);
    9575           47 :                       if (res) return res;
    9576              :                     }
    9577            0 :                     break;
    9578              :                   }
    9579              :                 default:;
    9580              :                 }
    9581              :               break;
    9582              :             }
    9583              :           default:;
    9584              :           }
    9585              :         break;
    9586              :       }
    9587       178958 :     CASE_CONVERT:
    9588       178958 :       {
    9589       178958 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9590       178958 :         switch (TREE_CODE (_q20))
    9591              :           {
    9592            6 :           case BIT_AND_EXPR:
    9593            6 :             {
    9594            6 :               tree _q30 = TREE_OPERAND (_q20, 0);
    9595            6 :               tree _q31 = TREE_OPERAND (_q20, 1);
    9596            6 :               switch (TREE_CODE (_q31))
    9597              :                 {
    9598            0 :                 case INTEGER_CST:
    9599            0 :                   {
    9600            0 :                     switch (TREE_CODE (_p1))
    9601              :                       {
    9602            0 :                       case INTEGER_CST:
    9603            0 :                         {
    9604            0 :                           {
    9605            0 :                             tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1 };
    9606            0 :                             tree res = generic_simplify_424 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, RSHIFT_EXPR);
    9607            0 :                             if (res) return res;
    9608              :                           }
    9609            0 :                           break;
    9610              :                         }
    9611              :                       default:;
    9612              :                       }
    9613              :                     break;
    9614              :                   }
    9615              :                 default:;
    9616              :                 }
    9617              :               break;
    9618              :             }
    9619           14 :           case BIT_XOR_EXPR:
    9620           14 :             {
    9621           14 :               tree _q30 = TREE_OPERAND (_q20, 0);
    9622           14 :               tree _q31 = TREE_OPERAND (_q20, 1);
    9623           14 :               switch (TREE_CODE (_q31))
    9624              :                 {
    9625            0 :                 case INTEGER_CST:
    9626            0 :                   {
    9627            0 :                     switch (TREE_CODE (_p1))
    9628              :                       {
    9629            0 :                       case INTEGER_CST:
    9630            0 :                         {
    9631            0 :                           {
    9632            0 :                             tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1 };
    9633            0 :                             tree res = generic_simplify_424 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, RSHIFT_EXPR);
    9634            0 :                             if (res) return res;
    9635              :                           }
    9636            0 :                           break;
    9637              :                         }
    9638              :                       default:;
    9639              :                       }
    9640              :                     break;
    9641              :                   }
    9642              :                 default:;
    9643              :                 }
    9644              :               break;
    9645              :             }
    9646           43 :           case BIT_IOR_EXPR:
    9647           43 :             {
    9648           43 :               tree _q30 = TREE_OPERAND (_q20, 0);
    9649           43 :               tree _q31 = TREE_OPERAND (_q20, 1);
    9650           43 :               switch (TREE_CODE (_q31))
    9651              :                 {
    9652           24 :                 case INTEGER_CST:
    9653           24 :                   {
    9654           24 :                     switch (TREE_CODE (_p1))
    9655              :                       {
    9656            7 :                       case INTEGER_CST:
    9657            7 :                         {
    9658            7 :                           {
    9659            7 :                             tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _p1 };
    9660            7 :                             tree res = generic_simplify_424 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, RSHIFT_EXPR);
    9661            7 :                             if (res) return res;
    9662              :                           }
    9663            0 :                           break;
    9664              :                         }
    9665              :                       default:;
    9666              :                       }
    9667              :                     break;
    9668              :                   }
    9669              :                 default:;
    9670              :                 }
    9671              :               break;
    9672              :             }
    9673          131 :           case CALL_EXPR:
    9674          131 :             switch (get_call_combined_fn (_q20))
    9675              :               {
    9676            0 :               case CFN_BUILT_IN_BSWAP128:
    9677            0 :                 if (call_expr_nargs (_q20) == 1)
    9678              :     {
    9679            0 :                     tree _q30 = CALL_EXPR_ARG (_q20, 0);
    9680            0 :                     switch (TREE_CODE (_p1))
    9681              :                       {
    9682            0 :                       case INTEGER_CST:
    9683            0 :                         {
    9684            0 :                           {
    9685            0 :                             tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
    9686            0 :                             tree res = generic_simplify_427 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP128);
    9687            0 :                             if (res) return res;
    9688              :                           }
    9689            0 :                           break;
    9690              :                         }
    9691              :                       default:;
    9692              :                       }
    9693              :                   }
    9694              :                 break;
    9695            8 :               case CFN_BUILT_IN_BSWAP16:
    9696            8 :                 if (call_expr_nargs (_q20) == 1)
    9697              :     {
    9698            8 :                     tree _q30 = CALL_EXPR_ARG (_q20, 0);
    9699            8 :                     switch (TREE_CODE (_p1))
    9700              :                       {
    9701            7 :                       case INTEGER_CST:
    9702            7 :                         {
    9703            7 :                           {
    9704            7 :                             tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
    9705            7 :                             tree res = generic_simplify_427 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP16);
    9706            7 :                             if (res) return res;
    9707              :                           }
    9708            2 :                           break;
    9709              :                         }
    9710              :                       default:;
    9711              :                       }
    9712              :                   }
    9713              :                 break;
    9714           13 :               case CFN_BUILT_IN_BSWAP32:
    9715           13 :                 if (call_expr_nargs (_q20) == 1)
    9716              :     {
    9717           13 :                     tree _q30 = CALL_EXPR_ARG (_q20, 0);
    9718           13 :                     switch (TREE_CODE (_p1))
    9719              :                       {
    9720           13 :                       case INTEGER_CST:
    9721           13 :                         {
    9722           13 :                           {
    9723           13 :                             tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
    9724           13 :                             tree res = generic_simplify_427 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP32);
    9725           13 :                             if (res) return res;
    9726              :                           }
    9727            9 :                           break;
    9728              :                         }
    9729              :                       default:;
    9730              :                       }
    9731              :                   }
    9732              :                 break;
    9733           18 :               case CFN_BUILT_IN_BSWAP64:
    9734           18 :                 if (call_expr_nargs (_q20) == 1)
    9735              :     {
    9736           18 :                     tree _q30 = CALL_EXPR_ARG (_q20, 0);
    9737           18 :                     switch (TREE_CODE (_p1))
    9738              :                       {
    9739           18 :                       case INTEGER_CST:
    9740           18 :                         {
    9741           18 :                           {
    9742           18 :                             tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q30, _p1 };
    9743           18 :                             tree res = generic_simplify_427 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP64);
    9744           18 :                             if (res) return res;
    9745              :                           }
    9746           12 :                           break;
    9747              :                         }
    9748              :                       default:;
    9749              :                       }
    9750              :                   }
    9751              :                 break;
    9752              :               default:;
    9753              :               }
    9754              :             break;
    9755              :           default:;
    9756              :           }
    9757              :         break;
    9758              :       }
    9759        13893 :     case BIT_AND_EXPR:
    9760        13893 :       {
    9761        13893 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9762        13893 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9763        13893 :         switch (TREE_CODE (_q21))
    9764              :           {
    9765        13843 :           case INTEGER_CST:
    9766        13843 :             {
    9767        13843 :               switch (TREE_CODE (_p1))
    9768              :                 {
    9769        13820 :                 case INTEGER_CST:
    9770        13820 :                   {
    9771        13820 :                     {
    9772        13820 :                       tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1 };
    9773        13820 :                       tree res = generic_simplify_425 (loc, type, _p0, _p1, captures, BIT_AND_EXPR, RSHIFT_EXPR);
    9774        13820 :                       if (res) return res;
    9775              :                     }
    9776            0 :                     break;
    9777              :                   }
    9778              :                 default:;
    9779              :                 }
    9780              :               break;
    9781              :             }
    9782              :           default:;
    9783              :           }
    9784              :         break;
    9785              :       }
    9786          240 :     case BIT_XOR_EXPR:
    9787          240 :       {
    9788          240 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9789          240 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9790          240 :         switch (TREE_CODE (_q21))
    9791              :           {
    9792           97 :           case INTEGER_CST:
    9793           97 :             {
    9794           97 :               switch (TREE_CODE (_p1))
    9795              :                 {
    9796           97 :                 case INTEGER_CST:
    9797           97 :                   {
    9798           97 :                     {
    9799           97 :                       tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1 };
    9800           97 :                       tree res = generic_simplify_425 (loc, type, _p0, _p1, captures, BIT_XOR_EXPR, RSHIFT_EXPR);
    9801           97 :                       if (res) return res;
    9802              :                     }
    9803            0 :                     break;
    9804              :                   }
    9805              :                 default:;
    9806              :                 }
    9807              :               break;
    9808              :             }
    9809              :           default:;
    9810              :           }
    9811              :         break;
    9812              :       }
    9813           55 :     case BIT_IOR_EXPR:
    9814           55 :       {
    9815           55 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9816           55 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9817           55 :         switch (TREE_CODE (_q21))
    9818              :           {
    9819           10 :           case INTEGER_CST:
    9820           10 :             {
    9821           10 :               switch (TREE_CODE (_p1))
    9822              :                 {
    9823            8 :                 case INTEGER_CST:
    9824            8 :                   {
    9825            8 :                     {
    9826            8 :                       tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21, _p1 };
    9827            8 :                       tree res = generic_simplify_425 (loc, type, _p0, _p1, captures, BIT_IOR_EXPR, RSHIFT_EXPR);
    9828            8 :                       if (res) return res;
    9829              :                     }
    9830            0 :                     break;
    9831              :                   }
    9832              :                 default:;
    9833              :                 }
    9834              :               break;
    9835              :             }
    9836              :           default:;
    9837              :           }
    9838              :         break;
    9839              :       }
    9840            0 :     case VEC_COND_EXPR:
    9841            0 :       {
    9842            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    9843            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    9844            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
    9845            0 :         switch (TREE_CODE (_p1))
    9846              :           {
    9847            0 :           case VEC_COND_EXPR:
    9848            0 :             {
    9849            0 :               tree _q60 = TREE_OPERAND (_p1, 0);
    9850            0 :               tree _q61 = TREE_OPERAND (_p1, 1);
    9851            0 :               tree _q62 = TREE_OPERAND (_p1, 2);
    9852            0 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    9853              :                 {
    9854            0 :                   {
    9855            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
    9856            0 :                     if (VECTOR_TYPE_P (type)
    9857            0 :  && (TREE_CODE_CLASS (RSHIFT_EXPR) != tcc_comparison
    9858              :  || types_match (type, TREE_TYPE (captures[2]))
    9859              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    9860              :  || (optimize_vectors_before_lowering_p ()
    9861              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    9862              : )
    9863              :                       {
    9864            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1669;
    9865            0 :                         {
    9866            0 :                           tree res_op0;
    9867            0 :                           res_op0 = captures[1];
    9868            0 :                           tree res_op1;
    9869            0 :                           {
    9870            0 :                             tree _o1[2], _r1;
    9871            0 :                             _o1[0] = captures[2];
    9872            0 :                             _o1[1] = captures[5];
    9873            0 :                             _r1 = fold_build2_loc (loc, RSHIFT_EXPR, type, _o1[0], _o1[1]);
    9874            0 :                             if (EXPR_P (_r1))
    9875            0 :                               goto next_after_fail1669;
    9876            0 :                             res_op1 = _r1;
    9877              :                           }
    9878            0 :                           tree res_op2;
    9879            0 :                           {
    9880            0 :                             tree _o1[2], _r1;
    9881            0 :                             _o1[0] = captures[3];
    9882            0 :                             _o1[1] = captures[6];
    9883            0 :                             _r1 = fold_build2_loc (loc, RSHIFT_EXPR, type, _o1[0], _o1[1]);
    9884            0 :                             if (EXPR_P (_r1))
    9885            0 :                               goto next_after_fail1669;
    9886            0 :                             res_op2 = _r1;
    9887              :                           }
    9888            0 :                           tree _r;
    9889            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    9890            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
    9891            0 :                           return _r;
    9892              :                         }
    9893            0 : next_after_fail1669:;
    9894              :                       }
    9895              :                   }
    9896              :                 }
    9897              :               break;
    9898              :             }
    9899            0 :           default:;
    9900              :           }
    9901            0 :         {
    9902            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
    9903            0 :           if (VECTOR_TYPE_P (type)
    9904            0 :  && (TREE_CODE_CLASS (RSHIFT_EXPR) != tcc_comparison
    9905              :  || types_match (type, TREE_TYPE (captures[2]))
    9906              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    9907              :  || (optimize_vectors_before_lowering_p ()
    9908              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    9909              : )
    9910              :             {
    9911            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1670;
    9912            0 :               {
    9913            0 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1670;
    9914            0 :                 tree res_op0;
    9915            0 :                 res_op0 = captures[1];
    9916            0 :                 tree res_op1;
    9917            0 :                 {
    9918            0 :                   tree _o1[2], _r1;
    9919            0 :                   _o1[0] = captures[2];
    9920            0 :                   _o1[1] = unshare_expr (captures[4]);
    9921            0 :                   _r1 = fold_build2_loc (loc, RSHIFT_EXPR, type, _o1[0], _o1[1]);
    9922            0 :                   if (EXPR_P (_r1))
    9923            0 :                     goto next_after_fail1670;
    9924            0 :                   res_op1 = _r1;
    9925              :                 }
    9926            0 :                 tree res_op2;
    9927            0 :                 {
    9928            0 :                   tree _o1[2], _r1;
    9929            0 :                   _o1[0] = captures[3];
    9930            0 :                   _o1[1] = captures[4];
    9931            0 :                   _r1 = fold_build2_loc (loc, RSHIFT_EXPR, type, _o1[0], _o1[1]);
    9932            0 :                   if (EXPR_P (_r1))
    9933            0 :                     goto next_after_fail1670;
    9934            0 :                   res_op2 = _r1;
    9935              :                 }
    9936            0 :                 tree _r;
    9937            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    9938            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
    9939            0 :                 return _r;
    9940              :               }
    9941            0 : next_after_fail1670:;
    9942              :             }
    9943              :         }
    9944            0 :         break;
    9945              :       }
    9946          566 :     case CALL_EXPR:
    9947          566 :       switch (get_call_combined_fn (_p0))
    9948              :         {
    9949            0 :         case CFN_BUILT_IN_BSWAP128:
    9950            0 :           if (call_expr_nargs (_p0) == 1)
    9951              :     {
    9952            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9953            0 :               switch (TREE_CODE (_p1))
    9954              :                 {
    9955            0 :                 case INTEGER_CST:
    9956            0 :                   {
    9957            0 :                     {
    9958            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    9959            0 :                       tree res = generic_simplify_427 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP128);
    9960            0 :                       if (res) return res;
    9961              :                     }
    9962            0 :                     break;
    9963              :                   }
    9964              :                 default:;
    9965              :                 }
    9966              :             }
    9967              :           break;
    9968           32 :         case CFN_BUILT_IN_BSWAP16:
    9969           32 :           if (call_expr_nargs (_p0) == 1)
    9970              :     {
    9971           32 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9972           32 :               switch (TREE_CODE (_p1))
    9973              :                 {
    9974           32 :                 case INTEGER_CST:
    9975           32 :                   {
    9976           32 :                     {
    9977           32 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    9978           32 :                       tree res = generic_simplify_427 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP16);
    9979           32 :                       if (res) return res;
    9980              :                     }
    9981            9 :                     break;
    9982              :                   }
    9983              :                 default:;
    9984              :                 }
    9985              :             }
    9986              :           break;
    9987           99 :         case CFN_BUILT_IN_BSWAP32:
    9988           99 :           if (call_expr_nargs (_p0) == 1)
    9989              :     {
    9990           99 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9991           99 :               switch (TREE_CODE (_p1))
    9992              :                 {
    9993           98 :                 case INTEGER_CST:
    9994           98 :                   {
    9995           98 :                     {
    9996           98 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
    9997           98 :                       tree res = generic_simplify_427 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP32);
    9998           98 :                       if (res) return res;
    9999              :                     }
   10000           59 :                     break;
   10001              :                   }
   10002              :                 default:;
   10003              :                 }
   10004              :             }
   10005              :           break;
   10006          100 :         case CFN_BUILT_IN_BSWAP64:
   10007          100 :           if (call_expr_nargs (_p0) == 1)
   10008              :     {
   10009          100 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10010          100 :               switch (TREE_CODE (_p1))
   10011              :                 {
   10012           99 :                 case INTEGER_CST:
   10013           99 :                   {
   10014           99 :                     {
   10015           99 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   10016           99 :                       tree res = generic_simplify_427 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_BSWAP64);
   10017           99 :                       if (res) return res;
   10018              :                     }
   10019           73 :                     break;
   10020              :                   }
   10021              :                 default:;
   10022              :                 }
   10023              :             }
   10024              :           break;
   10025              :         default:;
   10026              :         }
   10027              :       break;
   10028       954154 :     default:;
   10029              :     }
   10030       954154 : if (integer_onep (_p0))
   10031              :   {
   10032          524 :     {
   10033          524 :       tree captures[1] ATTRIBUTE_UNUSED = { _p1 };
   10034          524 :       if (INTEGRAL_TYPE_P (type)
   10035              : )
   10036              :         {
   10037          524 :           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1671;
   10038          524 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1671;
   10039          524 :           {
   10040          524 :             tree res_op0;
   10041          524 :             {
   10042          524 :               tree _o1[2], _r1;
   10043          524 :               _o1[0] = captures[0];
   10044          524 :               _o1[1] =  build_zero_cst (TREE_TYPE (captures[0]));
   10045          524 :               _r1 = fold_build2_loc (loc, EQ_EXPR, boolean_type_node, _o1[0], _o1[1]);
   10046          524 :               res_op0 = _r1;
   10047              :             }
   10048          524 :             tree _r;
   10049          524 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
   10050          524 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1012, __FILE__, __LINE__, true);
   10051          524 :             return _r;
   10052              :           }
   10053              : next_after_fail1671:;
   10054              :         }
   10055              :     }
   10056              :   }
   10057       953630 :   switch (TREE_CODE (_p1))
   10058              :     {
   10059           11 :     case VEC_COND_EXPR:
   10060           11 :       {
   10061           11 :         tree _q30 = TREE_OPERAND (_p1, 0);
   10062           11 :         tree _q31 = TREE_OPERAND (_p1, 1);
   10063           11 :         tree _q32 = TREE_OPERAND (_p1, 2);
   10064           11 :         {
   10065           11 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
   10066           11 :           if (VECTOR_TYPE_P (type)
   10067           11 :  && (TREE_CODE_CLASS (RSHIFT_EXPR) != tcc_comparison
   10068              :  || types_match (type, TREE_TYPE (captures[3]))
   10069              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
   10070              :  || (optimize_vectors_before_lowering_p ()
   10071              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
   10072              : )
   10073              :             {
   10074           11 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1672;
   10075           11 :               {
   10076           11 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1672;
   10077            0 :                 tree res_op0;
   10078            0 :                 res_op0 = captures[2];
   10079            0 :                 tree res_op1;
   10080            0 :                 {
   10081            0 :                   tree _o1[2], _r1;
   10082            0 :                   _o1[0] = unshare_expr (captures[0]);
   10083            0 :                   _o1[1] = captures[3];
   10084            0 :                   _r1 = fold_build2_loc (loc, RSHIFT_EXPR, type, _o1[0], _o1[1]);
   10085            0 :                   if (EXPR_P (_r1))
   10086            0 :                     goto next_after_fail1672;
   10087            0 :                   res_op1 = _r1;
   10088              :                 }
   10089            0 :                 tree res_op2;
   10090            0 :                 {
   10091            0 :                   tree _o1[2], _r1;
   10092            0 :                   _o1[0] = captures[0];
   10093            0 :                   _o1[1] = captures[4];
   10094            0 :                   _r1 = fold_build2_loc (loc, RSHIFT_EXPR, type, _o1[0], _o1[1]);
   10095            0 :                   if (EXPR_P (_r1))
   10096            0 :                     goto next_after_fail1672;
   10097            0 :                   res_op2 = _r1;
   10098              :                 }
   10099            0 :                 tree _r;
   10100            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10101            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
   10102            0 :                 return _r;
   10103              :               }
   10104           11 : next_after_fail1672:;
   10105              :             }
   10106              :         }
   10107           11 :         break;
   10108              :       }
   10109       953630 :     default:;
   10110              :     }
   10111       953630 :   switch (TREE_CODE (_p0))
   10112              :     {
   10113            0 :     case VEC_PERM_EXPR:
   10114            0 :       {
   10115            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10116            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10117            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
   10118            0 :         if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
   10119              :           {
   10120            0 :             switch (TREE_CODE (_p1))
   10121              :               {
   10122            0 :               case VEC_PERM_EXPR:
   10123            0 :                 {
   10124            0 :                   tree _q60 = TREE_OPERAND (_p1, 0);
   10125            0 :                   tree _q61 = TREE_OPERAND (_p1, 1);
   10126            0 :                   tree _q62 = TREE_OPERAND (_p1, 2);
   10127            0 :                   if ((_q61 == _q60 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q60, 0) && types_match (_q61, _q60)))
   10128              :                     {
   10129            0 :                       if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
   10130              :                         {
   10131            0 :                           {
   10132            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q22, _q60 };
   10133            0 :                             if (VECTOR_INTEGER_TYPE_P (type)
   10134              : )
   10135              :                               {
   10136            0 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1673;
   10137            0 :                                 {
   10138            0 :                                   tree res_op0;
   10139            0 :                                   {
   10140            0 :                                     tree _o1[2], _r1;
   10141            0 :                                     _o1[0] = captures[0];
   10142            0 :                                     _o1[1] = captures[2];
   10143            0 :                                     _r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10144            0 :                                     captures[3] = _r1;
   10145              :                                   }
   10146            0 :                                   res_op0 = unshare_expr (captures[3]);
   10147            0 :                                   tree res_op1;
   10148            0 :                                   res_op1 = captures[3];
   10149            0 :                                   tree res_op2;
   10150            0 :                                   res_op2 = captures[1];
   10151            0 :                                   tree _r;
   10152            0 :                                   _r = fold_build3_loc (loc, VEC_PERM_EXPR, type, res_op0, res_op1, res_op2);
   10153            0 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
   10154            0 :                                   return _r;
   10155              :                                 }
   10156            0 : next_after_fail1673:;
   10157              :                               }
   10158              :                           }
   10159              :                         }
   10160              :                     }
   10161              :                   break;
   10162              :                 }
   10163              :               default:;
   10164              :               }
   10165              :           }
   10166              :         break;
   10167              :       }
   10168              :     default:;
   10169              :     }
   10170              :   return NULL_TREE;
   10171              : }
   10172              : 
   10173              : tree
   10174       387747 : generic_simplify_MAX_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
   10175              : {
   10176       387747 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
   10177       387747 :   if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
   10178              :     {
   10179            0 :       {
   10180            0 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
   10181            0 :         tree res = generic_simplify_518 (loc, type, _p0, _p1, captures, MAX_EXPR);
   10182            0 :         if (res) return res;
   10183              :       }
   10184              :     }
   10185       387747 :   switch (TREE_CODE (_p0))
   10186              :     {
   10187          111 :     case MAX_EXPR:
   10188          111 :       {
   10189          111 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10190          111 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10191          111 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
   10192              :           {
   10193            0 :             {
   10194            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
   10195            0 :               tree res = generic_simplify_519 (loc, type, _p0, _p1, captures, MAX_EXPR);
   10196            0 :               if (res) return res;
   10197              :             }
   10198              :           }
   10199          111 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
   10200              :           {
   10201            0 :             {
   10202            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
   10203            0 :               tree res = generic_simplify_519 (loc, type, _p0, _p1, captures, MAX_EXPR);
   10204            0 :               if (res) return res;
   10205              :             }
   10206              :           }
   10207              :         break;
   10208              :       }
   10209       387747 :     default:;
   10210              :     }
   10211       387747 :   switch (TREE_CODE (_p1))
   10212              :     {
   10213            0 :     case MAX_EXPR:
   10214            0 :       {
   10215            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
   10216            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
   10217            0 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
   10218              :           {
   10219            0 :             {
   10220            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p1, _p0, _q31 };
   10221            0 :               tree res = generic_simplify_520 (loc, type, _p0, _p1, captures, MAX_EXPR);
   10222            0 :               if (res) return res;
   10223              :             }
   10224              :           }
   10225            0 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
   10226              :           {
   10227            0 :             {
   10228            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p1, _p0, _q30 };
   10229            0 :               tree res = generic_simplify_520 (loc, type, _p0, _p1, captures, MAX_EXPR);
   10230            0 :               if (res) return res;
   10231              :             }
   10232              :           }
   10233              :         break;
   10234              :       }
   10235       387747 :     default:;
   10236              :     }
   10237       387747 :   switch (TREE_CODE (_p0))
   10238              :     {
   10239         3365 :     case MIN_EXPR:
   10240         3365 :       {
   10241         3365 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10242         3365 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10243         3365 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
   10244              :           {
   10245            1 :             {
   10246            1 :               tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
   10247            1 :               tree res = generic_simplify_533 (loc, type, _p0, _p1, captures);
   10248            1 :               if (res) return res;
   10249              :             }
   10250              :           }
   10251         3364 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
   10252              :           {
   10253            1 :             {
   10254            1 :               tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
   10255            1 :               tree res = generic_simplify_533 (loc, type, _p0, _p1, captures);
   10256            1 :               if (res) return res;
   10257              :             }
   10258              :           }
   10259              :         break;
   10260              :       }
   10261       387745 :     default:;
   10262              :     }
   10263       387745 :   switch (TREE_CODE (_p1))
   10264              :     {
   10265            0 :     case MIN_EXPR:
   10266            0 :       {
   10267            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
   10268            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
   10269            0 :         if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
   10270              :           {
   10271            0 :             {
   10272            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
   10273            0 :               tree res = generic_simplify_533 (loc, type, _p0, _p1, captures);
   10274            0 :               if (res) return res;
   10275              :             }
   10276              :           }
   10277            0 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
   10278              :           {
   10279            0 :             {
   10280            0 :               tree captures[2] ATTRIBUTE_UNUSED = { _q31, _p0 };
   10281            0 :               tree res = generic_simplify_533 (loc, type, _p0, _p1, captures);
   10282            0 :               if (res) return res;
   10283              :             }
   10284              :           }
   10285              :         break;
   10286              :       }
   10287            0 :     case NEGATE_EXPR:
   10288            0 :       {
   10289            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
   10290            0 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
   10291              :           {
   10292            0 :             {
   10293            0 :               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
   10294            0 :               tree res = generic_simplify_534 (loc, type, _p0, _p1, captures);
   10295            0 :               if (res) return res;
   10296              :             }
   10297              :           }
   10298              :         break;
   10299              :       }
   10300       387745 :     default:;
   10301              :     }
   10302       387745 :   switch (TREE_CODE (_p0))
   10303              :     {
   10304           76 :     case NEGATE_EXPR:
   10305           76 :       {
   10306           76 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10307           76 :         if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
   10308              :           {
   10309            2 :             {
   10310            2 :               tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
   10311            2 :               tree res = generic_simplify_534 (loc, type, _p0, _p1, captures);
   10312            2 :               if (res) return res;
   10313              :             }
   10314              :           }
   10315              :         break;
   10316              :       }
   10317       387743 :     default:;
   10318              :     }
   10319       387743 :   {
   10320       387743 :     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   10321       387743 :     if (INTEGRAL_TYPE_P (type)
   10322       385807 :  && TYPE_MAX_VALUE (type)
   10323       773550 :  && operand_equal_p (captures[1], TYPE_MAX_VALUE (type), OEP_ONLY_CONST)
   10324              : )
   10325              :       {
   10326            0 :         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1740;
   10327            0 :         {
   10328            0 :           tree _r;
   10329            0 :           _r = captures[1];
   10330            0 :           if (TREE_SIDE_EFFECTS (captures[0]))
   10331            0 :             _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
   10332            0 :           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1027, __FILE__, __LINE__, true);
   10333            0 :           return _r;
   10334              :         }
   10335            0 : next_after_fail1740:;
   10336              :       }
   10337              :     else
   10338              :       {
   10339       387743 :         if (INTEGRAL_TYPE_P (type)
   10340       385807 :  && TYPE_MIN_VALUE (type)
   10341       773550 :  && operand_equal_p (captures[1], TYPE_MIN_VALUE (type), OEP_ONLY_CONST)
   10342              : )
   10343              :           {
   10344           11 :             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1741;
   10345           11 :             {
   10346           11 :               tree _r;
   10347           11 :               _r = captures[0];
   10348           11 :               if (TREE_SIDE_EFFECTS (captures[1]))
   10349            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   10350           11 :               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1028, __FILE__, __LINE__, true);
   10351           11 :               return _r;
   10352              :             }
   10353            0 : next_after_fail1741:;
   10354              :           }
   10355              :       }
   10356              :   }
   10357       387732 :   switch (TREE_CODE (_p0))
   10358              :     {
   10359        23268 :     case PLUS_EXPR:
   10360        23268 :       {
   10361        23268 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10362        23268 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10363        23268 :         switch (TREE_CODE (_p1))
   10364              :           {
   10365           14 :           case PLUS_EXPR:
   10366           14 :             {
   10367           14 :               tree _q50 = TREE_OPERAND (_p1, 0);
   10368           14 :               tree _q51 = TREE_OPERAND (_p1, 1);
   10369           14 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
   10370              :                 {
   10371            0 :                   {
   10372            0 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   10373            0 :                     tree res = generic_simplify_523 (loc, type, _p0, _p1, captures, MAX_EXPR);
   10374            0 :                     if (res) return res;
   10375              :                   }
   10376            0 :                   {
   10377            0 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q50, _q21, _p0, _q20 };
   10378            0 :                     tree res = generic_simplify_523 (loc, type, _p0, _p1, captures, MAX_EXPR);
   10379            0 :                     if (res) return res;
   10380              :                   }
   10381              :                 }
   10382           14 :               if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
   10383              :                 {
   10384            0 :                   {
   10385            0 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q21, _q20, _p1, _q50 };
   10386            0 :                     tree res = generic_simplify_523 (loc, type, _p0, _p1, captures, MAX_EXPR);
   10387            0 :                     if (res) return res;
   10388              :                   }
   10389              :                 }
   10390           14 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
   10391              :                 {
   10392            0 :                   {
   10393            0 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q51, _q21, _p0, _q20 };
   10394            0 :                     tree res = generic_simplify_523 (loc, type, _p0, _p1, captures, MAX_EXPR);
   10395            0 :                     if (res) return res;
   10396              :                   }
   10397              :                 }
   10398              :               break;
   10399              :             }
   10400        23268 :           default:;
   10401              :           }
   10402        23268 :         switch (TREE_CODE (_q21))
   10403              :           {
   10404        23230 :           case INTEGER_CST:
   10405        23230 :             {
   10406        23230 :               if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
   10407              :                 {
   10408           11 :                   {
   10409           11 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
   10410           11 :                     if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
   10411              : )
   10412              :                       {
   10413            0 :                         if (tree_int_cst_sgn (captures[2]) > 0
   10414              : )
   10415              :                           {
   10416            0 :                             if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1742;
   10417            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1742;
   10418            0 :                             {
   10419            0 :                               tree _r;
   10420            0 :                               _r = captures[1];
   10421            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1029, __FILE__, __LINE__, true);
   10422            0 :                               return _r;
   10423              :                             }
   10424           11 : next_after_fail1742:;
   10425              :                           }
   10426              :                         else
   10427              :                           {
   10428            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1743;
   10429            0 :                             {
   10430            0 :                               tree _r;
   10431            0 :                               _r = captures[0];
   10432            0 :                               if (TREE_SIDE_EFFECTS (captures[2]))
   10433            0 :                                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   10434            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1030, __FILE__, __LINE__, true);
   10435            0 :                               return _r;
   10436              :                             }
   10437            0 : next_after_fail1743:;
   10438              :                           }
   10439              :                       }
   10440              :                   }
   10441              :                 }
   10442              :               break;
   10443              :             }
   10444              :           default:;
   10445              :           }
   10446              :         break;
   10447              :       }
   10448         8164 :     case MINUS_EXPR:
   10449         8164 :       {
   10450         8164 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10451         8164 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10452         8164 :         switch (TREE_CODE (_p1))
   10453              :           {
   10454            0 :           case MINUS_EXPR:
   10455            0 :             {
   10456            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
   10457            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
   10458            0 :               if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
   10459              :                 {
   10460            0 :                   {
   10461            0 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   10462            0 :                     tree res = generic_simplify_524 (loc, type, _p0, _p1, captures, MAX_EXPR);
   10463            0 :                     if (res) return res;
   10464              :                   }
   10465            0 :                   {
   10466            0 :                     tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q50, _q21, _p0, _q20 };
   10467            0 :                     tree res = generic_simplify_524 (loc, type, _p0, _p1, captures, MAX_EXPR);
   10468            0 :                     if (res) return res;
   10469              :                   }
   10470              :                 }
   10471              :               break;
   10472              :             }
   10473              :           default:;
   10474              :           }
   10475              :         break;
   10476              :       }
   10477       387732 :     default:;
   10478              :     }
   10479       387732 :   switch (TREE_CODE (_p1))
   10480              :     {
   10481          110 :     case PLUS_EXPR:
   10482          110 :       {
   10483          110 :         tree _q30 = TREE_OPERAND (_p1, 0);
   10484          110 :         tree _q31 = TREE_OPERAND (_p1, 1);
   10485          110 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
   10486              :           {
   10487            0 :             switch (TREE_CODE (_q31))
   10488              :               {
   10489            0 :               case INTEGER_CST:
   10490            0 :                 {
   10491            0 :                   {
   10492            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
   10493            0 :                     if (TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
   10494              : )
   10495              :                       {
   10496            0 :                         if (tree_int_cst_sgn (captures[2]) > 0
   10497              : )
   10498              :                           {
   10499            0 :                             if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1744;
   10500            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1744;
   10501            0 :                             {
   10502            0 :                               tree _r;
   10503            0 :                               _r = captures[1];
   10504            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1029, __FILE__, __LINE__, true);
   10505            0 :                               return _r;
   10506              :                             }
   10507            0 : next_after_fail1744:;
   10508              :                           }
   10509              :                         else
   10510              :                           {
   10511            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1745;
   10512            0 :                             {
   10513            0 :                               tree _r;
   10514            0 :                               _r = captures[0];
   10515            0 :                               if (TREE_SIDE_EFFECTS (captures[2]))
   10516            0 :                                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   10517            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1030, __FILE__, __LINE__, true);
   10518            0 :                               return _r;
   10519              :                             }
   10520            0 : next_after_fail1745:;
   10521              :                           }
   10522              :                       }
   10523              :                   }
   10524            0 :                   break;
   10525              :                 }
   10526              :               default:;
   10527              :               }
   10528              :           }
   10529              :         break;
   10530              :       }
   10531       387732 :     default:;
   10532              :     }
   10533       387732 :   switch (TREE_CODE (_p0))
   10534              :     {
   10535         3363 :     case MIN_EXPR:
   10536         3363 :       {
   10537         3363 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10538         3363 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10539         3363 :         switch (TREE_CODE (_p1))
   10540              :           {
   10541            0 :           case MAX_EXPR:
   10542            0 :             {
   10543            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
   10544            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
   10545            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
   10546              :                 {
   10547            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
   10548              :                     {
   10549            0 :                       {
   10550            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
   10551            0 :                         if (!HONOR_NANS (captures[0])
   10552              : )
   10553              :                           {
   10554            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1746;
   10555            0 :                             {
   10556            0 :                               tree res_op0;
   10557            0 :                               res_op0 = captures[0];
   10558            0 :                               tree res_op1;
   10559            0 :                               res_op1 = captures[1];
   10560            0 :                               tree _r;
   10561            0 :                               _r = fold_build2_loc (loc, MAX_EXPR, type, res_op0, res_op1);
   10562            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 892, __FILE__, __LINE__, true);
   10563            0 :                               return _r;
   10564              :                             }
   10565            0 : next_after_fail1746:;
   10566              :                           }
   10567              :                       }
   10568              :                     }
   10569              :                 }
   10570            0 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
   10571              :                 {
   10572            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
   10573              :                     {
   10574            0 :                       {
   10575            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
   10576            0 :                         if (!HONOR_NANS (captures[0])
   10577              : )
   10578              :                           {
   10579            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1747;
   10580            0 :                             {
   10581            0 :                               tree res_op0;
   10582            0 :                               res_op0 = captures[0];
   10583            0 :                               tree res_op1;
   10584            0 :                               res_op1 = captures[1];
   10585            0 :                               tree _r;
   10586            0 :                               _r = fold_build2_loc (loc, MAX_EXPR, type, res_op0, res_op1);
   10587            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 892, __FILE__, __LINE__, true);
   10588            0 :                               return _r;
   10589              :                             }
   10590            0 : next_after_fail1747:;
   10591              :                           }
   10592              :                       }
   10593              :                     }
   10594              :                 }
   10595              :               break;
   10596              :             }
   10597              :           default:;
   10598              :           }
   10599              :         break;
   10600              :       }
   10601          111 :     case MAX_EXPR:
   10602          111 :       {
   10603          111 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10604          111 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10605          111 :         switch (TREE_CODE (_p1))
   10606              :           {
   10607            0 :           case MIN_EXPR:
   10608            0 :             {
   10609            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
   10610            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
   10611            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
   10612              :                 {
   10613            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
   10614              :                     {
   10615            0 :                       {
   10616            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
   10617            0 :                         if (!HONOR_NANS (captures[0])
   10618              : )
   10619              :                           {
   10620            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1748;
   10621            0 :                             {
   10622            0 :                               tree res_op0;
   10623            0 :                               res_op0 = captures[0];
   10624            0 :                               tree res_op1;
   10625            0 :                               res_op1 = captures[1];
   10626            0 :                               tree _r;
   10627            0 :                               _r = fold_build2_loc (loc, MAX_EXPR, type, res_op0, res_op1);
   10628            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 892, __FILE__, __LINE__, true);
   10629            0 :                               return _r;
   10630              :                             }
   10631            0 : next_after_fail1748:;
   10632              :                           }
   10633              :                       }
   10634              :                     }
   10635              :                 }
   10636            0 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
   10637              :                 {
   10638            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
   10639              :                     {
   10640            0 :                       {
   10641            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
   10642            0 :                         if (!HONOR_NANS (captures[0])
   10643              : )
   10644              :                           {
   10645            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1749;
   10646            0 :                             {
   10647            0 :                               tree res_op0;
   10648            0 :                               res_op0 = captures[0];
   10649            0 :                               tree res_op1;
   10650            0 :                               res_op1 = captures[1];
   10651            0 :                               tree _r;
   10652            0 :                               _r = fold_build2_loc (loc, MAX_EXPR, type, res_op0, res_op1);
   10653            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 892, __FILE__, __LINE__, true);
   10654            0 :                               return _r;
   10655              :                             }
   10656            0 : next_after_fail1749:;
   10657              :                           }
   10658              :                       }
   10659              :                     }
   10660              :                 }
   10661              :               break;
   10662              :             }
   10663              :           default:;
   10664              :           }
   10665              :         break;
   10666              :       }
   10667            0 :     case BIT_AND_EXPR:
   10668            0 :       {
   10669            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10670            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10671            0 :         switch (TREE_CODE (_q21))
   10672              :           {
   10673            0 :           case INTEGER_CST:
   10674            0 :             {
   10675            0 :               switch (TREE_CODE (_p1))
   10676              :                 {
   10677            0 :                 case BIT_AND_EXPR:
   10678            0 :                   {
   10679            0 :                     tree _q50 = TREE_OPERAND (_p1, 0);
   10680            0 :                     tree _q51 = TREE_OPERAND (_p1, 1);
   10681            0 :                     if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
   10682              :                       {
   10683            0 :                         switch (TREE_CODE (_q51))
   10684              :                           {
   10685            0 :                           case INTEGER_CST:
   10686            0 :                             {
   10687            0 :                               {
   10688            0 :                                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
   10689            0 :                                 tree res = generic_simplify_525 (loc, type, _p0, _p1, captures, MAX_EXPR);
   10690            0 :                                 if (res) return res;
   10691              :                               }
   10692            0 :                               break;
   10693              :                             }
   10694              :                           default:;
   10695              :                           }
   10696              :                       }
   10697              :                     break;
   10698              :                   }
   10699              :                 default:;
   10700              :                 }
   10701              :               break;
   10702              :             }
   10703              :           default:;
   10704              :           }
   10705              :         break;
   10706              :       }
   10707       387732 :     default:;
   10708              :     }
   10709       387732 :   switch (TREE_CODE (_p1))
   10710              :     {
   10711            0 :     case BIT_AND_EXPR:
   10712            0 :       {
   10713            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
   10714            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
   10715            0 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
   10716              :           {
   10717            0 :             switch (TREE_CODE (_q31))
   10718              :               {
   10719            0 :               case INTEGER_CST:
   10720            0 :                 {
   10721            0 :                   {
   10722            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
   10723            0 :                     tree res = generic_simplify_526 (loc, type, _p0, _p1, captures, MAX_EXPR);
   10724            0 :                     if (res) return res;
   10725              :                   }
   10726            0 :                   break;
   10727              :                 }
   10728              :               default:;
   10729              :               }
   10730              :           }
   10731              :         break;
   10732              :       }
   10733       387732 :     default:;
   10734              :     }
   10735       387732 :   switch (TREE_CODE (_p0))
   10736              :     {
   10737        32882 :     CASE_CONVERT:
   10738        32882 :       {
   10739        32882 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10740        32882 :         switch (TREE_CODE (_q20))
   10741              :           {
   10742           30 :           case ADDR_EXPR:
   10743           30 :             {
   10744           30 :               switch (TREE_CODE (_p1))
   10745              :                 {
   10746            0 :                 CASE_CONVERT:
   10747            0 :                   {
   10748            0 :                     tree _q40 = TREE_OPERAND (_p1, 0);
   10749            0 :                     switch (TREE_CODE (_q40))
   10750              :                       {
   10751            0 :                       case ADDR_EXPR:
   10752            0 :                         {
   10753            0 :                           {
   10754            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   10755            0 :                             tree res = generic_simplify_527 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR);
   10756            0 :                             if (res) return res;
   10757              :                           }
   10758            0 :                           break;
   10759              :                         }
   10760              :                       default:;
   10761              :                       }
   10762              :                     break;
   10763              :                   }
   10764            0 :                 case ADDR_EXPR:
   10765            0 :                   {
   10766            0 :                     {
   10767            0 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _p1 };
   10768            0 :                       tree res = generic_simplify_528 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR);
   10769            0 :                       if (res) return res;
   10770              :                     }
   10771            0 :                     break;
   10772              :                   }
   10773              :                 default:;
   10774              :                 }
   10775              :               break;
   10776              :             }
   10777              :           default:;
   10778              :           }
   10779              :         break;
   10780              :       }
   10781           10 :     case ADDR_EXPR:
   10782           10 :       {
   10783           10 :         switch (TREE_CODE (_p1))
   10784              :           {
   10785            0 :           CASE_CONVERT:
   10786            0 :             {
   10787            0 :               tree _q30 = TREE_OPERAND (_p1, 0);
   10788            0 :               switch (TREE_CODE (_q30))
   10789              :                 {
   10790            0 :                 case ADDR_EXPR:
   10791            0 :                   {
   10792            0 :                     {
   10793            0 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _p1, _q30 };
   10794            0 :                       tree res = generic_simplify_529 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR);
   10795            0 :                       if (res) return res;
   10796              :                     }
   10797            0 :                     break;
   10798              :                   }
   10799              :                 default:;
   10800              :                 }
   10801              :               break;
   10802              :             }
   10803           10 :           case ADDR_EXPR:
   10804           10 :             {
   10805           10 :               {
   10806           10 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _p1, _p1 };
   10807           10 :                 tree res = generic_simplify_530 (loc, type, _p0, _p1, captures, MAX_EXPR, GT_EXPR);
   10808           10 :                 if (res) return res;
   10809              :               }
   10810           10 :               break;
   10811              :             }
   10812              :           default:;
   10813              :           }
   10814              :         break;
   10815              :       }
   10816           74 :     case NEGATE_EXPR:
   10817           74 :       {
   10818           74 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10819           74 :         switch (TREE_CODE (_p1))
   10820              :           {
   10821            0 :           case NEGATE_EXPR:
   10822            0 :             {
   10823            0 :               tree _q40 = TREE_OPERAND (_p1, 0);
   10824            0 :               {
   10825            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   10826            0 :                 if (FLOAT_TYPE_P (TREE_TYPE (captures[1]))
   10827            0 :  || (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
   10828            0 :  && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1])))
   10829              : )
   10830              :                   {
   10831            0 :                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1750;
   10832            0 :                     {
   10833            0 :                       tree res_op0;
   10834            0 :                       {
   10835            0 :                         tree _o1[2], _r1;
   10836            0 :                         _o1[0] = captures[1];
   10837            0 :                         _o1[1] = captures[3];
   10838            0 :                         _r1 = fold_build2_loc (loc, MIN_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10839            0 :                         res_op0 = _r1;
   10840              :                       }
   10841            0 :                       tree _r;
   10842            0 :                       _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
   10843            0 :                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1026, __FILE__, __LINE__, true);
   10844            0 :                       return _r;
   10845              :                     }
   10846            0 : next_after_fail1750:;
   10847              :                   }
   10848              :               }
   10849            0 :               break;
   10850              :             }
   10851              :           default:;
   10852              :           }
   10853              :         break;
   10854              :       }
   10855            0 :     case BIT_NOT_EXPR:
   10856            0 :       {
   10857            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10858            0 :         switch (TREE_CODE (_p1))
   10859              :           {
   10860            0 :           case BIT_NOT_EXPR:
   10861            0 :             {
   10862            0 :               tree _q40 = TREE_OPERAND (_p1, 0);
   10863            0 :               {
   10864            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   10865            0 :                 tree res = generic_simplify_531 (loc, type, _p0, _p1, captures, MAX_EXPR, MIN_EXPR);
   10866            0 :                 if (res) return res;
   10867              :               }
   10868            0 :               break;
   10869              :             }
   10870              :           default:;
   10871              :           }
   10872              :         break;
   10873              :       }
   10874            0 :     case VEC_COND_EXPR:
   10875            0 :       {
   10876            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   10877            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   10878            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
   10879            0 :         switch (TREE_CODE (_p1))
   10880              :           {
   10881            0 :           case VEC_COND_EXPR:
   10882            0 :             {
   10883            0 :               tree _q60 = TREE_OPERAND (_p1, 0);
   10884            0 :               tree _q61 = TREE_OPERAND (_p1, 1);
   10885            0 :               tree _q62 = TREE_OPERAND (_p1, 2);
   10886            0 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
   10887              :                 {
   10888            0 :                   {
   10889            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
   10890            0 :                     if (VECTOR_TYPE_P (type)
   10891            0 :  && (TREE_CODE_CLASS (MAX_EXPR) != tcc_comparison
   10892              :  || types_match (type, TREE_TYPE (captures[2]))
   10893              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
   10894              :  || (optimize_vectors_before_lowering_p ()
   10895              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
   10896              : )
   10897              :                       {
   10898            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1751;
   10899            0 :                         {
   10900            0 :                           tree res_op0;
   10901            0 :                           res_op0 = captures[1];
   10902            0 :                           tree res_op1;
   10903            0 :                           {
   10904            0 :                             tree _o1[2], _r1;
   10905            0 :                             _o1[0] = captures[2];
   10906            0 :                             _o1[1] = captures[5];
   10907            0 :                             _r1 = fold_build2_loc (loc, MAX_EXPR, type, _o1[0], _o1[1]);
   10908            0 :                             if (EXPR_P (_r1))
   10909            0 :                               goto next_after_fail1751;
   10910            0 :                             res_op1 = _r1;
   10911              :                           }
   10912            0 :                           tree res_op2;
   10913            0 :                           {
   10914            0 :                             tree _o1[2], _r1;
   10915            0 :                             _o1[0] = captures[3];
   10916            0 :                             _o1[1] = captures[6];
   10917            0 :                             _r1 = fold_build2_loc (loc, MAX_EXPR, type, _o1[0], _o1[1]);
   10918            0 :                             if (EXPR_P (_r1))
   10919            0 :                               goto next_after_fail1751;
   10920            0 :                             res_op2 = _r1;
   10921              :                           }
   10922            0 :                           tree _r;
   10923            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10924            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
   10925            0 :                           return _r;
   10926              :                         }
   10927            0 : next_after_fail1751:;
   10928              :                       }
   10929              :                   }
   10930              :                 }
   10931              :               break;
   10932              :             }
   10933            0 :           default:;
   10934              :           }
   10935            0 :         {
   10936            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
   10937            0 :           if (VECTOR_TYPE_P (type)
   10938            0 :  && (TREE_CODE_CLASS (MAX_EXPR) != tcc_comparison
   10939              :  || types_match (type, TREE_TYPE (captures[2]))
   10940              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
   10941              :  || (optimize_vectors_before_lowering_p ()
   10942              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
   10943              : )
   10944              :             {
   10945            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1752;
   10946            0 :               {
   10947            0 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1752;
   10948            0 :                 tree res_op0;
   10949            0 :                 res_op0 = captures[1];
   10950            0 :                 tree res_op1;
   10951            0 :                 {
   10952            0 :                   tree _o1[2], _r1;
   10953            0 :                   _o1[0] = captures[2];
   10954            0 :                   _o1[1] = unshare_expr (captures[4]);
   10955            0 :                   _r1 = fold_build2_loc (loc, MAX_EXPR, type, _o1[0], _o1[1]);
   10956            0 :                   if (EXPR_P (_r1))
   10957            0 :                     goto next_after_fail1752;
   10958            0 :                   res_op1 = _r1;
   10959              :                 }
   10960            0 :                 tree res_op2;
   10961            0 :                 {
   10962            0 :                   tree _o1[2], _r1;
   10963            0 :                   _o1[0] = captures[3];
   10964            0 :                   _o1[1] = captures[4];
   10965            0 :                   _r1 = fold_build2_loc (loc, MAX_EXPR, type, _o1[0], _o1[1]);
   10966            0 :                   if (EXPR_P (_r1))
   10967            0 :                     goto next_after_fail1752;
   10968            0 :                   res_op2 = _r1;
   10969              :                 }
   10970            0 :                 tree _r;
   10971            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   10972            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
   10973            0 :                 return _r;
   10974              :               }
   10975            0 : next_after_fail1752:;
   10976              :             }
   10977              :         }
   10978            0 :         break;
   10979              :       }
   10980       387732 :     default:;
   10981              :     }
   10982       387732 :   switch (TREE_CODE (_p1))
   10983              :     {
   10984            0 :     case VEC_COND_EXPR:
   10985            0 :       {
   10986            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
   10987            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
   10988            0 :         tree _q32 = TREE_OPERAND (_p1, 2);
   10989            0 :         {
   10990            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
   10991            0 :           if (VECTOR_TYPE_P (type)
   10992            0 :  && (TREE_CODE_CLASS (MAX_EXPR) != tcc_comparison
   10993              :  || types_match (type, TREE_TYPE (captures[3]))
   10994              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
   10995              :  || (optimize_vectors_before_lowering_p ()
   10996              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
   10997              : )
   10998              :             {
   10999            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1753;
   11000            0 :               {
   11001            0 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1753;
   11002            0 :                 tree res_op0;
   11003            0 :                 res_op0 = captures[2];
   11004            0 :                 tree res_op1;
   11005            0 :                 {
   11006            0 :                   tree _o1[2], _r1;
   11007            0 :                   _o1[0] = unshare_expr (captures[0]);
   11008            0 :                   _o1[1] = captures[3];
   11009            0 :                   _r1 = fold_build2_loc (loc, MAX_EXPR, type, _o1[0], _o1[1]);
   11010            0 :                   if (EXPR_P (_r1))
   11011            0 :                     goto next_after_fail1753;
   11012            0 :                   res_op1 = _r1;
   11013              :                 }
   11014            0 :                 tree res_op2;
   11015            0 :                 {
   11016            0 :                   tree _o1[2], _r1;
   11017            0 :                   _o1[0] = captures[0];
   11018            0 :                   _o1[1] = captures[4];
   11019            0 :                   _r1 = fold_build2_loc (loc, MAX_EXPR, type, _o1[0], _o1[1]);
   11020            0 :                   if (EXPR_P (_r1))
   11021            0 :                     goto next_after_fail1753;
   11022            0 :                   res_op2 = _r1;
   11023              :                 }
   11024            0 :                 tree _r;
   11025            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   11026            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
   11027            0 :                 return _r;
   11028              :               }
   11029            0 : next_after_fail1753:;
   11030              :             }
   11031              :         }
   11032            0 :         break;
   11033              :       }
   11034       387732 :     default:;
   11035              :     }
   11036       387732 :   if (tree_zero_one_valued_p (_p0))
   11037              :     {
   11038           10 :       if (tree_zero_one_valued_p (_p1))
   11039              :         {
   11040            0 :           {
   11041            0 :             tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   11042            0 :             tree res = generic_simplify_532 (loc, type, _p0, _p1, captures, MAX_EXPR, BIT_IOR_EXPR);
   11043            0 :             if (res) return res;
   11044              :           }
   11045              :         }
   11046              :     }
   11047              :   return NULL_TREE;
   11048              : }
   11049              : 
   11050              : tree
   11051       409349 : generic_simplify_UNGE_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
   11052              : {
   11053       409349 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
   11054       409349 :   switch (TREE_CODE (_p0))
   11055              :     {
   11056            0 :     case VEC_COND_EXPR:
   11057            0 :       {
   11058            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11059            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   11060            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
   11061            0 :         switch (TREE_CODE (_p1))
   11062              :           {
   11063            0 :           case VEC_COND_EXPR:
   11064            0 :             {
   11065            0 :               tree _q60 = TREE_OPERAND (_p1, 0);
   11066            0 :               tree _q61 = TREE_OPERAND (_p1, 1);
   11067            0 :               tree _q62 = TREE_OPERAND (_p1, 2);
   11068            0 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
   11069              :                 {
   11070            0 :                   {
   11071            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
   11072            0 :                     if (VECTOR_TYPE_P (type)
   11073            0 :  && (TREE_CODE_CLASS (UNGE_EXPR) != tcc_comparison
   11074            0 :  || types_match (type, TREE_TYPE (captures[2]))
   11075            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
   11076              :  || (optimize_vectors_before_lowering_p ()
   11077            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
   11078              : )
   11079              :                       {
   11080            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1775;
   11081            0 :                         {
   11082            0 :                           tree res_op0;
   11083            0 :                           res_op0 = captures[1];
   11084            0 :                           tree res_op1;
   11085            0 :                           {
   11086            0 :                             tree _o1[2], _r1;
   11087            0 :                             _o1[0] = captures[2];
   11088            0 :                             _o1[1] = captures[5];
   11089            0 :                             _r1 = fold_build2_loc (loc, UNGE_EXPR, type, _o1[0], _o1[1]);
   11090            0 :                             if (EXPR_P (_r1))
   11091            0 :                               goto next_after_fail1775;
   11092            0 :                             res_op1 = _r1;
   11093              :                           }
   11094            0 :                           tree res_op2;
   11095            0 :                           {
   11096            0 :                             tree _o1[2], _r1;
   11097            0 :                             _o1[0] = captures[3];
   11098            0 :                             _o1[1] = captures[6];
   11099            0 :                             _r1 = fold_build2_loc (loc, UNGE_EXPR, type, _o1[0], _o1[1]);
   11100            0 :                             if (EXPR_P (_r1))
   11101            0 :                               goto next_after_fail1775;
   11102            0 :                             res_op2 = _r1;
   11103              :                           }
   11104            0 :                           tree _r;
   11105            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   11106            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 893, __FILE__, __LINE__, true);
   11107            0 :                           return _r;
   11108              :                         }
   11109            0 : next_after_fail1775:;
   11110              :                       }
   11111              :                   }
   11112              :                 }
   11113              :               break;
   11114              :             }
   11115            0 :           default:;
   11116              :           }
   11117            0 :         {
   11118            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
   11119            0 :           if (VECTOR_TYPE_P (type)
   11120            0 :  && (TREE_CODE_CLASS (UNGE_EXPR) != tcc_comparison
   11121            0 :  || types_match (type, TREE_TYPE (captures[2]))
   11122            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
   11123              :  || (optimize_vectors_before_lowering_p ()
   11124            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
   11125              : )
   11126              :             {
   11127            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1776;
   11128            0 :               {
   11129            0 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1776;
   11130            0 :                 tree res_op0;
   11131            0 :                 res_op0 = captures[1];
   11132            0 :                 tree res_op1;
   11133            0 :                 {
   11134            0 :                   tree _o1[2], _r1;
   11135            0 :                   _o1[0] = captures[2];
   11136            0 :                   _o1[1] = unshare_expr (captures[4]);
   11137            0 :                   _r1 = fold_build2_loc (loc, UNGE_EXPR, type, _o1[0], _o1[1]);
   11138            0 :                   if (EXPR_P (_r1))
   11139            0 :                     goto next_after_fail1776;
   11140            0 :                   res_op1 = _r1;
   11141              :                 }
   11142            0 :                 tree res_op2;
   11143            0 :                 {
   11144            0 :                   tree _o1[2], _r1;
   11145            0 :                   _o1[0] = captures[3];
   11146            0 :                   _o1[1] = captures[4];
   11147            0 :                   _r1 = fold_build2_loc (loc, UNGE_EXPR, type, _o1[0], _o1[1]);
   11148            0 :                   if (EXPR_P (_r1))
   11149            0 :                     goto next_after_fail1776;
   11150            0 :                   res_op2 = _r1;
   11151              :                 }
   11152            0 :                 tree _r;
   11153            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   11154            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
   11155            0 :                 return _r;
   11156              :               }
   11157            0 : next_after_fail1776:;
   11158              :             }
   11159              :         }
   11160            0 :         break;
   11161              :       }
   11162       409349 :     default:;
   11163              :     }
   11164       409349 :   switch (TREE_CODE (_p1))
   11165              :     {
   11166            0 :     case VEC_COND_EXPR:
   11167            0 :       {
   11168            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
   11169            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
   11170            0 :         tree _q32 = TREE_OPERAND (_p1, 2);
   11171            0 :         {
   11172            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
   11173            0 :           if (VECTOR_TYPE_P (type)
   11174            0 :  && (TREE_CODE_CLASS (UNGE_EXPR) != tcc_comparison
   11175            0 :  || types_match (type, TREE_TYPE (captures[3]))
   11176            0 :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
   11177              :  || (optimize_vectors_before_lowering_p ()
   11178            0 :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
   11179              : )
   11180              :             {
   11181            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1777;
   11182            0 :               {
   11183            0 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1777;
   11184            0 :                 tree res_op0;
   11185            0 :                 res_op0 = captures[2];
   11186            0 :                 tree res_op1;
   11187            0 :                 {
   11188            0 :                   tree _o1[2], _r1;
   11189            0 :                   _o1[0] = unshare_expr (captures[0]);
   11190            0 :                   _o1[1] = captures[3];
   11191            0 :                   _r1 = fold_build2_loc (loc, UNGE_EXPR, type, _o1[0], _o1[1]);
   11192            0 :                   if (EXPR_P (_r1))
   11193            0 :                     goto next_after_fail1777;
   11194            0 :                   res_op1 = _r1;
   11195              :                 }
   11196            0 :                 tree res_op2;
   11197            0 :                 {
   11198            0 :                   tree _o1[2], _r1;
   11199            0 :                   _o1[0] = captures[0];
   11200            0 :                   _o1[1] = captures[4];
   11201            0 :                   _r1 = fold_build2_loc (loc, UNGE_EXPR, type, _o1[0], _o1[1]);
   11202            0 :                   if (EXPR_P (_r1))
   11203            0 :                     goto next_after_fail1777;
   11204            0 :                   res_op2 = _r1;
   11205              :                 }
   11206            0 :                 tree _r;
   11207            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
   11208            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
   11209            0 :                 return _r;
   11210              :               }
   11211            0 : next_after_fail1777:;
   11212              :             }
   11213              :         }
   11214            0 :         break;
   11215              :       }
   11216       409349 :     default:;
   11217              :     }
   11218       409349 :   if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
   11219              :     {
   11220           30 :       {
   11221           30 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
   11222           30 :         tree res = generic_simplify_563 (loc, type, _p0, _p1, captures, UNGE_EXPR);
   11223           30 :         if (res) return res;
   11224              :       }
   11225              :     }
   11226       409319 :   switch (TREE_CODE (_p0))
   11227              :     {
   11228          299 :     case FLOAT_EXPR:
   11229          299 :       {
   11230          299 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11231          299 :         switch (TREE_CODE (_p1))
   11232              :           {
   11233            0 :           case FLOAT_EXPR:
   11234            0 :             {
   11235            0 :               tree _q40 = TREE_OPERAND (_p1, 0);
   11236            0 :               {
   11237            0 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q40 };
   11238            0 :                 tree res = generic_simplify_261 (loc, type, _p0, _p1, captures, UNGE_EXPR, GE_EXPR);
   11239            0 :                 if (res) return res;
   11240              :               }
   11241            0 :               break;
   11242              :             }
   11243              :           default:;
   11244              :           }
   11245              :         break;
   11246              :       }
   11247          112 :     case NEGATE_EXPR:
   11248          112 :       {
   11249          112 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11250          112 :         switch (TREE_CODE (_p1))
   11251              :           {
   11252            0 :           case NEGATE_EXPR:
   11253            0 :             {
   11254            0 :               tree _q40 = TREE_OPERAND (_p1, 0);
   11255            0 :               {
   11256            0 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
   11257            0 :                 tree res = generic_simplify_264 (loc, type, _p0, _p1, captures, UNGE_EXPR, UNLE_EXPR);
   11258            0 :                 if (res) return res;
   11259              :               }
   11260            0 :               break;
   11261              :             }
   11262          112 :           default:;
   11263              :           }
   11264          112 :       if (CONSTANT_CLASS_P (_p1))
   11265              :         {
   11266          112 :           {
   11267          112 :             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
   11268          112 :             tree res = generic_simplify_265 (loc, type, _p0, _p1, captures, UNGE_EXPR, UNLE_EXPR);
   11269          112 :             if (res) return res;
   11270              :           }
   11271              :         }
   11272              :         break;
   11273              :       }
   11274       409207 :     default:;
   11275              :     }
   11276       409207 :   switch (TREE_CODE (_p1))
   11277              :     {
   11278        53837 :     case REAL_CST:
   11279        53837 :       {
   11280        53837 :         {
   11281        53837 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   11282        53837 :           tree res = generic_simplify_561 (loc, type, _p0, _p1, captures, UNGE_EXPR);
   11283        53837 :           if (res) return res;
   11284              :         }
   11285        53835 :         break;
   11286              :       }
   11287              :     default:;
   11288              :     }
   11289              :   return NULL_TREE;
   11290              : }
   11291              : 
   11292              : tree
   11293    596678881 : generic_simplify (location_t loc, enum tree_code code, const tree type ATTRIBUTE_UNUSED, tree _p0, tree _p1)
   11294              : {
   11295    596678881 :   switch (code)
   11296              :     {
   11297       998490 :     case BIT_XOR_EXPR:
   11298       998490 :       return generic_simplify_BIT_XOR_EXPR (loc, code, type, _p0, _p1);
   11299     96116649 :     case PLUS_EXPR:
   11300     96116649 :       return generic_simplify_PLUS_EXPR (loc, code, type, _p0, _p1);
   11301     49580352 :     case POINTER_PLUS_EXPR:
   11302     49580352 :       return generic_simplify_POINTER_PLUS_EXPR (loc, code, type, _p0, _p1);
   11303     32685241 :     case MINUS_EXPR:
   11304     32685241 :       return generic_simplify_MINUS_EXPR (loc, code, type, _p0, _p1);
   11305      1851440 :     case BIT_IOR_EXPR:
   11306      1851440 :       return generic_simplify_BIT_IOR_EXPR (loc, code, type, _p0, _p1);
   11307      2870107 :     case POINTER_DIFF_EXPR:
   11308      2870107 :       return generic_simplify_POINTER_DIFF_EXPR (loc, code, type, _p0, _p1);
   11309     70287781 :     case MULT_EXPR:
   11310     70287781 :       return generic_simplify_MULT_EXPR (loc, code, type, _p0, _p1);
   11311     26705762 :     case EQ_EXPR:
   11312     26705762 :       return generic_simplify_EQ_EXPR (loc, code, type, _p0, _p1);
   11313     36146400 :     case NE_EXPR:
   11314     36146400 :       return generic_simplify_NE_EXPR (loc, code, type, _p0, _p1);
   11315      2219392 :     case TRUNC_DIV_EXPR:
   11316      2219392 :       return generic_simplify_TRUNC_DIV_EXPR (loc, code, type, _p0, _p1);
   11317         7008 :     case CEIL_DIV_EXPR:
   11318         7008 :       return generic_simplify_CEIL_DIV_EXPR (loc, code, type, _p0, _p1);
   11319      2194688 :     case FLOOR_DIV_EXPR:
   11320      2194688 :       return generic_simplify_FLOOR_DIV_EXPR (loc, code, type, _p0, _p1);
   11321            0 :     case ROUND_DIV_EXPR:
   11322            0 :       return generic_simplify_ROUND_DIV_EXPR (loc, code, type, _p0, _p1);
   11323      3371566 :     case EXACT_DIV_EXPR:
   11324      3371566 :       return generic_simplify_EXACT_DIV_EXPR (loc, code, type, _p0, _p1);
   11325       856679 :     case FLOOR_MOD_EXPR:
   11326       856679 :       return generic_simplify_FLOOR_MOD_EXPR (loc, code, type, _p0, _p1);
   11327      6224538 :     case RDIV_EXPR:
   11328      6224538 :       return generic_simplify_RDIV_EXPR (loc, code, type, _p0, _p1);
   11329     17487821 :     case LT_EXPR:
   11330     17487821 :       return generic_simplify_LT_EXPR (loc, code, type, _p0, _p1);
   11331      9309746 :     case LE_EXPR:
   11332      9309746 :       return generic_simplify_LE_EXPR (loc, code, type, _p0, _p1);
   11333     20783466 :     case GT_EXPR:
   11334     20783466 :       return generic_simplify_GT_EXPR (loc, code, type, _p0, _p1);
   11335      6611039 :     case GE_EXPR:
   11336      6611039 :       return generic_simplify_GE_EXPR (loc, code, type, _p0, _p1);
   11337         4140 :     case CEIL_MOD_EXPR:
   11338         4140 :       return generic_simplify_CEIL_MOD_EXPR (loc, code, type, _p0, _p1);
   11339            0 :     case ROUND_MOD_EXPR:
   11340            0 :       return generic_simplify_ROUND_MOD_EXPR (loc, code, type, _p0, _p1);
   11341      2059730 :     case TRUNC_MOD_EXPR:
   11342      2059730 :       return generic_simplify_TRUNC_MOD_EXPR (loc, code, type, _p0, _p1);
   11343      1248913 :     case LSHIFT_EXPR:
   11344      1248913 :       return generic_simplify_LSHIFT_EXPR (loc, code, type, _p0, _p1);
   11345       970716 :     case RSHIFT_EXPR:
   11346       970716 :       return generic_simplify_RSHIFT_EXPR (loc, code, type, _p0, _p1);
   11347      6789036 :     case BIT_AND_EXPR:
   11348      6789036 :       return generic_simplify_BIT_AND_EXPR (loc, code, type, _p0, _p1);
   11349        80919 :     case MIN_EXPR:
   11350        80919 :       return generic_simplify_MIN_EXPR (loc, code, type, _p0, _p1);
   11351       387747 :     case MAX_EXPR:
   11352       387747 :       return generic_simplify_MAX_EXPR (loc, code, type, _p0, _p1);
   11353         1891 :     case LROTATE_EXPR:
   11354         1891 :       return generic_simplify_LROTATE_EXPR (loc, code, type, _p0, _p1);
   11355         2736 :     case RROTATE_EXPR:
   11356         2736 :       return generic_simplify_RROTATE_EXPR (loc, code, type, _p0, _p1);
   11357       573915 :     case COMPLEX_EXPR:
   11358       573915 :       return generic_simplify_COMPLEX_EXPR (loc, code, type, _p0, _p1);
   11359       742052 :     case UNORDERED_EXPR:
   11360       742052 :       return generic_simplify_UNORDERED_EXPR (loc, code, type, _p0, _p1);
   11361       193399 :     case ORDERED_EXPR:
   11362       193399 :       return generic_simplify_ORDERED_EXPR (loc, code, type, _p0, _p1);
   11363       706748 :     case UNLT_EXPR:
   11364       706748 :       return generic_simplify_UNLT_EXPR (loc, code, type, _p0, _p1);
   11365       851992 :     case UNLE_EXPR:
   11366       851992 :       return generic_simplify_UNLE_EXPR (loc, code, type, _p0, _p1);
   11367      1259800 :     case UNGT_EXPR:
   11368      1259800 :       return generic_simplify_UNGT_EXPR (loc, code, type, _p0, _p1);
   11369       409349 :     case UNGE_EXPR:
   11370       409349 :       return generic_simplify_UNGE_EXPR (loc, code, type, _p0, _p1);
   11371       351790 :     case UNEQ_EXPR:
   11372       351790 :       return generic_simplify_UNEQ_EXPR (loc, code, type, _p0, _p1);
   11373           79 :     case LTGT_EXPR:
   11374           79 :       return generic_simplify_LTGT_EXPR (loc, code, type, _p0, _p1);
   11375      3249532 :     case TRUTH_ORIF_EXPR:
   11376      3249532 :       return generic_simplify_TRUTH_ORIF_EXPR (loc, code, type, _p0, _p1);
   11377      9404551 :     case TRUTH_OR_EXPR:
   11378      9404551 :       return generic_simplify_TRUTH_OR_EXPR (loc, code, type, _p0, _p1);
   11379              :     default:;
   11380              :     }
   11381              :   return NULL_TREE;
   11382              : }
   11383              : 
   11384              : tree
   11385       766220 : generic_simplify_BIT_FIELD_REF (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1, tree _p2)
   11386              : {
   11387       766220 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
   11388       766220 :   switch (TREE_CODE (_p0))
   11389              :     {
   11390            8 :     case BIT_FIELD_REF:
   11391            8 :       {
   11392            8 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11393            8 :         tree _q21 = TREE_OPERAND (_p0, 1);
   11394            8 :         tree _q22 = TREE_OPERAND (_p0, 2);
   11395            8 :         {
   11396            8 :           tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _p1, _p2 };
   11397            8 :           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1952;
   11398            8 :           if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1952;
   11399            8 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1952;
   11400            8 :           {
   11401            8 :             tree res_op0;
   11402            8 :             res_op0 = captures[0];
   11403            8 :             tree res_op1;
   11404            8 :             res_op1 = captures[3];
   11405            8 :             tree res_op2;
   11406            8 :             res_op2 =  const_binop (PLUS_EXPR, bitsizetype, captures[2], captures[4]);
   11407            8 :             tree _r;
   11408            8 :             _r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
   11409            8 :             if (TREE_SIDE_EFFECTS (captures[1]))
   11410            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   11411            8 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1081, __FILE__, __LINE__, true);
   11412            8 :             return _r;
   11413              :           }
   11414            0 : next_after_fail1952:;
   11415              :         }
   11416            0 :         break;
   11417              :       }
   11418            3 :     case VIEW_CONVERT_EXPR:
   11419            3 :       {
   11420            3 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11421            3 :         {
   11422            3 :           tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p1, _p2 };
   11423            6 :           if (! INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
   11424            6 :  || type_has_mode_precision_p (TREE_TYPE (captures[0]))
   11425              : )
   11426              :             {
   11427            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1953;
   11428            0 :               {
   11429            0 :                 tree res_op0;
   11430            0 :                 res_op0 = captures[0];
   11431            0 :                 tree res_op1;
   11432            0 :                 res_op1 = captures[1];
   11433            0 :                 tree res_op2;
   11434            0 :                 res_op2 = captures[2];
   11435            0 :                 tree _r;
   11436            0 :                 _r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
   11437            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1082, __FILE__, __LINE__, true);
   11438            0 :                 return _r;
   11439              :               }
   11440            0 : next_after_fail1953:;
   11441              :             }
   11442              :         }
   11443            3 :         break;
   11444              :       }
   11445       766212 :     default:;
   11446              :     }
   11447       766212 :   if (integer_zerop (_p2))
   11448              :     {
   11449       244357 :       {
   11450       244357 :         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
   11451       244357 :         if (tree_int_cst_equal (captures[1], TYPE_SIZE (TREE_TYPE (captures[0])))
   11452              : )
   11453              :           {
   11454         2589 :             if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail1954;
   11455         2589 :             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1954;
   11456         2589 :             {
   11457         2589 :               tree res_op0;
   11458         2589 :               res_op0 = captures[0];
   11459         2589 :               tree _r;
   11460         2589 :               _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
   11461         2589 :               if (TREE_SIDE_EFFECTS (captures[1]))
   11462            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   11463         2589 :               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1083, __FILE__, __LINE__, true);
   11464         2589 :               return _r;
   11465              :             }
   11466       241768 : next_after_fail1954:;
   11467              :           }
   11468              :       }
   11469              :     }
   11470       763623 :   {
   11471       763623 :     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _p2 };
   11472       763623 :     if (TREE_CODE (TREE_TYPE (captures[0])) == COMPLEX_TYPE
   11473       763623 :  && tree_int_cst_equal (captures[1], TYPE_SIZE (TREE_TYPE (TREE_TYPE (captures[0]))))
   11474              : )
   11475              :       {
   11476            2 :         if (integer_zerop (captures[2])
   11477              : )
   11478              :           {
   11479            0 :             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1955;
   11480            0 :             {
   11481            0 :               tree res_op0;
   11482            0 :               {
   11483            0 :                 tree _o1[1], _r1;
   11484            0 :                 _o1[0] = captures[0];
   11485            0 :                 _r1 = fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
   11486            0 :                 res_op0 = _r1;
   11487              :               }
   11488            0 :               tree _r;
   11489            0 :               _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
   11490            0 :               if (TREE_SIDE_EFFECTS (captures[1]))
   11491            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   11492            0 :               if (TREE_SIDE_EFFECTS (captures[2]))
   11493            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   11494            0 :               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1084, __FILE__, __LINE__, true);
   11495            0 :               return _r;
   11496              :             }
   11497            0 : next_after_fail1955:;
   11498              :           }
   11499              :         else
   11500              :           {
   11501            2 :             if (tree_int_cst_equal (captures[2], TYPE_SIZE (TREE_TYPE (TREE_TYPE (captures[0]))))
   11502              : )
   11503              :               {
   11504            0 :                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1956;
   11505            0 :                 {
   11506            0 :                   tree res_op0;
   11507            0 :                   {
   11508            0 :                     tree _o1[1], _r1;
   11509            0 :                     _o1[0] = captures[0];
   11510            0 :                     _r1 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
   11511            0 :                     res_op0 = _r1;
   11512              :                   }
   11513            0 :                   tree _r;
   11514            0 :                   _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
   11515            0 :                   if (TREE_SIDE_EFFECTS (captures[1]))
   11516            0 :                     _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   11517            0 :                   if (TREE_SIDE_EFFECTS (captures[2]))
   11518            0 :                     _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   11519            0 :                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1085, __FILE__, __LINE__, true);
   11520            0 :                   return _r;
   11521              :                 }
   11522            0 : next_after_fail1956:;
   11523              :               }
   11524              :           }
   11525              :       }
   11526              :     else
   11527              :       {
   11528      1527180 :         if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
   11529        20555 :  && INTEGRAL_TYPE_P (type)
   11530              :  && (!
   11531              : 
   11532              :  || is_gimple_reg (captures[0]))
   11533       783198 :  && ((compare_tree_int (captures[1], TYPE_PRECISION (TREE_TYPE (captures[0]))) == 0
   11534            0 :  && integer_zerop (captures[2]))
   11535              :  || (BYTES_BIG_ENDIAN == WORDS_BIG_ENDIAN
   11536              :  && canonicalize_math_after_vectorization_p ()
   11537              :  && TYPE_PRECISION (TREE_TYPE (captures[0])) % BITS_PER_UNIT == 0
   11538              :  && TYPE_PRECISION (type) % BITS_PER_UNIT == 0
   11539              :  && compare_tree_int (captures[2], (BYTES_BIG_ENDIAN
   11540              :  ? (TYPE_PRECISION (TREE_TYPE (captures[0]))
   11541              :  - TYPE_PRECISION (type))
   11542              :  : 0)) == 0))
   11543              : )
   11544              :           {
   11545            0 :             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1957;
   11546            0 :             {
   11547            0 :               tree res_op0;
   11548            0 :               res_op0 = captures[0];
   11549            0 :               tree _r;
   11550            0 :               _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
   11551            0 :               if (TREE_SIDE_EFFECTS (captures[1]))
   11552            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   11553            0 :               if (TREE_SIDE_EFFECTS (captures[2]))
   11554            0 :                 _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   11555            0 :               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1086, __FILE__, __LINE__, true);
   11556            0 :               return _r;
   11557              :             }
   11558            0 : next_after_fail1957:;
   11559              :           }
   11560              :       }
   11561              :   }
   11562       763623 :   switch (TREE_CODE (_p0))
   11563              :     {
   11564         1511 :     case CONSTRUCTOR:
   11565         1511 :       {
   11566         1511 :         {
   11567         1511 :           tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _p2 };
   11568         1511 :           if (VECTOR_TYPE_P (TREE_TYPE (captures[0]))
   11569         1511 :  && tree_fits_uhwi_p (TYPE_SIZE (type))
   11570         3022 :  && ((tree_to_uhwi (TYPE_SIZE (type))
   11571         1511 :  == tree_to_uhwi (TYPE_SIZE (TREE_TYPE (TREE_TYPE (captures[0])))))
   11572            0 :  || (VECTOR_TYPE_P (type)
   11573            0 :  && (tree_to_uhwi (TYPE_SIZE (TREE_TYPE (type)))
   11574            0 :  == tree_to_uhwi (TYPE_SIZE (TREE_TYPE (TREE_TYPE (captures[0])))))))
   11575              : )
   11576              :             {
   11577         1511 :               {
   11578         1511 :  tree ctor = (TREE_CODE (captures[0]) == SSA_NAME
   11579              :  ? gimple_assign_rhs1 (SSA_NAME_DEF_STMT (captures[0])) : captures[0]);
   11580         1511 :  tree eltype = TREE_TYPE (TREE_TYPE (ctor));
   11581         1511 :  unsigned HOST_WIDE_INT width = tree_to_uhwi (TYPE_SIZE (eltype));
   11582         1511 :  unsigned HOST_WIDE_INT n = tree_to_uhwi (captures[1]);
   11583         1511 :  unsigned HOST_WIDE_INT idx = tree_to_uhwi (captures[2]);
   11584         1511 :                   if (n != 0
   11585         1511 :  && (idx % width) == 0
   11586         1511 :  && (n % width) == 0
   11587         3022 :  && known_le ((idx + n) / width,
   11588              :  TYPE_VECTOR_SUBPARTS (TREE_TYPE (ctor)))
   11589              : )
   11590              :                     {
   11591         1511 :                       {
   11592         1511 :  idx = idx / width;
   11593         1511 :  n = n / width;
   11594         1511 :  poly_uint64 k = 1;
   11595         1511 :  if (CONSTRUCTOR_NELTS (ctor) != 0)
   11596              :  {
   11597         1511 :  tree cons_elem = TREE_TYPE (CONSTRUCTOR_ELT (ctor, 0)->value);
   11598         1511 :  if (TREE_CODE (cons_elem) == VECTOR_TYPE)
   11599         1511 :  k = TYPE_VECTOR_SUBPARTS (cons_elem);
   11600              :  }
   11601         1511 :  unsigned HOST_WIDE_INT elt, count, const_k;
   11602         1511 :                           if (multiple_p (idx, k, &elt) && multiple_p (n, k, &count)
   11603              : )
   11604              :                             {
   11605            6 :                               if (CONSTRUCTOR_NELTS (ctor) == 0
   11606              : )
   11607              :                                 {
   11608            0 :                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1958;
   11609            0 :                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1958;
   11610            0 :                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1958;
   11611            0 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1958;
   11612            0 :                                   {
   11613            0 :                                     tree _r;
   11614            0 :                                     _r =  build_zero_cst (type);
   11615            0 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1087, __FILE__, __LINE__, true);
   11616         1511 :                                     return _r;
   11617              :                                   }
   11618              : next_after_fail1958:;
   11619              :                                 }
   11620              :                               else
   11621              :                                 {
   11622            6 :                                   if (count == 1
   11623              : )
   11624              :                                     {
   11625            6 :                                       if (elt < CONSTRUCTOR_NELTS (ctor)
   11626              : )
   11627              :                                         {
   11628            6 :                                           if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1959;
   11629            6 :                                           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1959;
   11630            6 :                                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1959;
   11631            6 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1959;
   11632            6 :                                           {
   11633            6 :                                             tree res_op0;
   11634            6 :                                             res_op0 =  CONSTRUCTOR_ELT (ctor, elt)->value;
   11635            6 :                                             tree _r;
   11636            6 :                                             _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
   11637            6 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1088, __FILE__, __LINE__, true);
   11638            6 :                                             return _r;
   11639              :                                           }
   11640              : next_after_fail1959:;
   11641              :                                         }
   11642              :                                       else
   11643              :                                         {
   11644            0 :                                           if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1960;
   11645            0 :                                           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1960;
   11646            0 :                                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1960;
   11647            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1960;
   11648            0 :                                           {
   11649            0 :                                             tree _r;
   11650            0 :                                             _r =  build_zero_cst (type);
   11651            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1089, __FILE__, __LINE__, true);
   11652            0 :                                             return _r;
   11653              :                                           }
   11654              : next_after_fail1960:;
   11655              :                                         }
   11656              :                                     }
   11657              :                                   else
   11658              :                                     {
   11659            0 :                                       if (single_use (captures[0])
   11660              : )
   11661              :                                         {
   11662            0 :                                           {
   11663            0 :  vec<constructor_elt, va_gc> *vals;
   11664            0 :  vec_alloc (vals, count);
   11665            0 :  bool constant_p = true;
   11666            0 :  tree res;
   11667            0 :  for (unsigned i = 0;
   11668            0 :  i < count && elt + i < CONSTRUCTOR_NELTS (ctor); ++i)
   11669              :  {
   11670            0 :  tree e = CONSTRUCTOR_ELT (ctor, elt + i)->value;
   11671            0 :  CONSTRUCTOR_APPEND_ELT (vals, NULL_TREE, e);
   11672            0 :  if (!CONSTANT_CLASS_P (e))
   11673            0 :  constant_p = false;
   11674              :  }
   11675            0 :  tree evtype = (types_match (TREE_TYPE (type),
   11676            0 :  TREE_TYPE (TREE_TYPE (ctor)))
   11677            0 :  ? type
   11678            0 :  : build_vector_type (TREE_TYPE (TREE_TYPE (ctor)),
   11679            0 :  count * k));
   11680            0 :  res = (constant_p ? build_vector_from_ctor (evtype, vals)
   11681              :  : (
   11682              : 
   11683            0 :  ? NULL_TREE : build_constructor (evtype, vals)));
   11684            0 :                                               if (res
   11685              : )
   11686              :                                                 {
   11687            0 :                                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1961;
   11688            0 :                                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1961;
   11689            0 :                                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1961;
   11690            0 :                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1961;
   11691            0 :                                                   {
   11692            0 :                                                     tree res_op0;
   11693            0 :                                                     res_op0 =  res;
   11694            0 :                                                     tree _r;
   11695            0 :                                                     _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
   11696            0 :                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1090, __FILE__, __LINE__, true);
   11697            0 :                                                     return _r;
   11698              :                                                   }
   11699            0 : next_after_fail1961:;
   11700              :                                                 }
   11701              :                                           }
   11702              :                                         }
   11703              :                                     }
   11704              :                                 }
   11705              :                             }
   11706              :                           else
   11707              :                             {
   11708         1505 :                               if (k.is_constant (&const_k)
   11709         1505 :  && idx + n <= (idx / const_k + 1) * const_k
   11710              : )
   11711              :                                 {
   11712         1505 :                                   if (CONSTRUCTOR_NELTS (ctor) <= idx / const_k
   11713              : )
   11714              :                                     {
   11715            0 :                                       if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1962;
   11716            0 :                                       if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1962;
   11717            0 :                                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1962;
   11718            0 :                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1962;
   11719            0 :                                       {
   11720            0 :                                         tree _r;
   11721            0 :                                         _r =  build_zero_cst (type);
   11722            0 :                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1091, __FILE__, __LINE__, true);
   11723            0 :                                         return _r;
   11724              :                                       }
   11725              : next_after_fail1962:;
   11726              :                                     }
   11727              :                                   else
   11728              :                                     {
   11729         1505 :                                       if (n == const_k
   11730              : )
   11731              :                                         {
   11732            0 :                                           if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1963;
   11733            0 :                                           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1963;
   11734            0 :                                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1963;
   11735            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1963;
   11736            0 :                                           {
   11737            0 :                                             tree res_op0;
   11738            0 :                                             res_op0 =  CONSTRUCTOR_ELT (ctor, idx / const_k)->value;
   11739            0 :                                             tree _r;
   11740            0 :                                             _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
   11741            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1092, __FILE__, __LINE__, true);
   11742            0 :                                             return _r;
   11743              :                                           }
   11744              : next_after_fail1963:;
   11745              :                                         }
   11746              :                                       else
   11747              :                                         {
   11748         1505 :                                           if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1964;
   11749         1505 :                                           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1964;
   11750         1505 :                                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1964;
   11751         1505 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1964;
   11752         1505 :                                           {
   11753         1505 :                                             tree res_op0;
   11754         1505 :                                             res_op0 =  CONSTRUCTOR_ELT (ctor, idx / const_k)->value;
   11755         1505 :                                             tree res_op1;
   11756         1505 :                                             res_op1 = captures[1];
   11757         1505 :                                             tree res_op2;
   11758         1505 :                                             res_op2 =  bitsize_int ((idx % const_k) * width);
   11759         1505 :                                             tree _r;
   11760         1505 :                                             _r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
   11761         1505 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1093, __FILE__, __LINE__, true);
   11762         1505 :                                             return _r;
   11763              :                                           }
   11764              : next_after_fail1964:;
   11765              :                                         }
   11766              :                                     }
   11767              :                                 }
   11768              :                             }
   11769              :                       }
   11770              :                     }
   11771              :               }
   11772              :             }
   11773              :         }
   11774            0 :         break;
   11775              :       }
   11776            0 :     case VEC_PERM_EXPR:
   11777            0 :       {
   11778            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11779            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   11780            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
   11781            0 :         switch (TREE_CODE (_q22))
   11782              :           {
   11783            0 :           case VECTOR_CST:
   11784            0 :             {
   11785            0 :               {
   11786            0 :                 tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _p2 };
   11787            0 :                 {
   11788            0 :  tree elem_type = TREE_TYPE (TREE_TYPE (captures[0]));
   11789            0 :  poly_uint64 elem_size = tree_to_poly_uint64 (TYPE_SIZE (elem_type));
   11790            0 :  poly_uint64 size = tree_to_poly_uint64 (TYPE_SIZE (type));
   11791            0 :  unsigned HOST_WIDE_INT nelts, idx;
   11792            0 :  unsigned HOST_WIDE_INT nelts_op = 0;
   11793            0 :                     if (constant_multiple_p (tree_to_poly_uint64 (captures[5]), elem_size, &idx)
   11794            0 :  && VECTOR_CST_NELTS (captures[3]).is_constant (&nelts)
   11795            0 :  && (known_eq (size, elem_size)
   11796            0 :  || (constant_multiple_p (size, elem_size, &nelts_op)
   11797            0 :  && pow2p_hwi (nelts_op)))
   11798              : )
   11799              :                       {
   11800            0 :                         {
   11801            0 :  bool ok = true;
   11802            0 :  if (known_eq (size, elem_size))
   11803            0 :  idx = TREE_INT_CST_LOW (VECTOR_CST_ELT (captures[3], idx)) % (2 * nelts);
   11804              :  else
   11805              :  {
   11806            0 :  unsigned start
   11807            0 :  = TREE_INT_CST_LOW (vector_cst_elt (captures[3], idx)) % (2 * nelts);
   11808            0 :  unsigned end
   11809            0 :  = (TREE_INT_CST_LOW (vector_cst_elt (captures[3], idx + nelts_op - 1))
   11810            0 :  % (2 * nelts));
   11811            0 :  if ((start < nelts) != (end < nelts))
   11812              :  ok = false;
   11813              :  else
   11814            0 :  for (unsigned HOST_WIDE_INT i = 1; i != nelts_op; i++)
   11815              :  {
   11816            0 :  if ((TREE_INT_CST_LOW (vector_cst_elt (captures[3], idx + i))
   11817            0 :  % (2 * nelts) - 1)
   11818            0 :  != (TREE_INT_CST_LOW (vector_cst_elt (captures[3], idx + i - 1))
   11819            0 :  % (2 * nelts)))
   11820              :  {
   11821              :  ok = false;
   11822              :  break;
   11823              :  }
   11824              :  }
   11825            0 :  if (start % nelts_op)
   11826              :  ok = false;
   11827            0 :  idx = start;
   11828              :  }
   11829            0 :                             if (ok
   11830              : )
   11831              :                               {
   11832            0 :                                 if (idx < nelts
   11833              : )
   11834              :                                   {
   11835            0 :                                     if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1965;
   11836            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1965;
   11837            0 :                                     {
   11838            0 :                                       tree res_op0;
   11839            0 :                                       res_op0 = captures[1];
   11840            0 :                                       tree res_op1;
   11841            0 :                                       res_op1 = captures[4];
   11842            0 :                                       tree res_op2;
   11843            0 :                                       res_op2 =  bitsize_int (idx * elem_size);
   11844            0 :                                       tree _r;
   11845            0 :                                       _r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
   11846            0 :                                       if (TREE_SIDE_EFFECTS (captures[2]))
   11847            0 :                                         _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   11848            0 :                                       if (TREE_SIDE_EFFECTS (captures[5]))
   11849            0 :                                         _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[5]), _r);
   11850            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1094, __FILE__, __LINE__, true);
   11851            0 :                                       return _r;
   11852              :                                     }
   11853            0 : next_after_fail1965:;
   11854              :                                   }
   11855              :                                 else
   11856              :                                   {
   11857            0 :                                     if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1966;
   11858            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1966;
   11859            0 :                                     {
   11860            0 :                                       tree res_op0;
   11861            0 :                                       res_op0 = captures[2];
   11862            0 :                                       tree res_op1;
   11863            0 :                                       res_op1 = captures[4];
   11864            0 :                                       tree res_op2;
   11865            0 :                                       res_op2 =  bitsize_int ((idx - nelts) * elem_size);
   11866            0 :                                       tree _r;
   11867            0 :                                       _r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
   11868            0 :                                       if (TREE_SIDE_EFFECTS (captures[1]))
   11869            0 :                                         _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   11870            0 :                                       if (TREE_SIDE_EFFECTS (captures[5]))
   11871            0 :                                         _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[5]), _r);
   11872            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1095, __FILE__, __LINE__, true);
   11873            0 :                                       return _r;
   11874              :                                     }
   11875            0 : next_after_fail1966:;
   11876              :                                   }
   11877              :                               }
   11878              :                         }
   11879              :                       }
   11880              :                 }
   11881              :               }
   11882            0 :               break;
   11883              :             }
   11884              :           default:;
   11885              :           }
   11886              :         break;
   11887              :       }
   11888            0 :     case BIT_INSERT_EXPR:
   11889            0 :       {
   11890            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
   11891            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
   11892            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
   11893            0 :         {
   11894            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _q20, _q21, _q22, _p1, _p2 };
   11895            0 :           {
   11896            0 :  unsigned HOST_WIDE_INT isize;
   11897            0 :  if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1])))
   11898            0 :  isize = TYPE_PRECISION (TREE_TYPE (captures[1]));
   11899              :  else
   11900            0 :  isize = tree_to_uhwi (TYPE_SIZE (TREE_TYPE (captures[1])));
   11901            0 :               if ((!INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
   11902            0 :  || type_has_mode_precision_p (TREE_TYPE (captures[1])))
   11903            0 :  && wi::leu_p (wi::to_wide (captures[2]), wi::to_wide (captures[4]))
   11904            0 :  && wi::leu_p (wi::to_wide (captures[4]) + wi::to_wide (captures[3]),
   11905            0 :  wi::to_wide (captures[2]) + isize)
   11906              : )
   11907              :                 {
   11908            0 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1967;
   11909            0 :                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1967;
   11910            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1967;
   11911            0 :                   {
   11912            0 :                     tree res_op0;
   11913            0 :                     res_op0 = captures[1];
   11914            0 :                     tree res_op1;
   11915            0 :                     res_op1 = captures[3];
   11916            0 :                     tree res_op2;
   11917            0 :                     res_op2 =  wide_int_to_tree (bitsizetype,
   11918            0 :  wi::to_wide (captures[4])
   11919            0 :  - wi::to_wide (captures[2]));
   11920            0 :                     tree _r;
   11921            0 :                     _r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
   11922            0 :                     if (TREE_SIDE_EFFECTS (captures[0]))
   11923            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
   11924            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1096, __FILE__, __LINE__, true);
   11925            0 :                     return _r;
   11926              :                   }
   11927            0 : next_after_fail1967:;
   11928              :                 }
   11929              :               else
   11930              :                 {
   11931            0 :                   if (wi::eq_p (wi::to_wide (captures[2]), wi::to_wide (captures[4]))
   11932            0 :  && compare_tree_int (captures[3], isize) == 0
   11933              : )
   11934              :                     {
   11935            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1968;
   11936            0 :                       {
   11937            0 :                         tree res_op0;
   11938            0 :                         res_op0 = captures[1];
   11939            0 :                         tree _r;
   11940            0 :                         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
   11941            0 :                         if (TREE_SIDE_EFFECTS (captures[0]))
   11942            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
   11943            0 :                         if (TREE_SIDE_EFFECTS (captures[2]))
   11944            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   11945            0 :                         if (TREE_SIDE_EFFECTS (captures[3]))
   11946            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
   11947            0 :                         if (TREE_SIDE_EFFECTS (captures[4]))
   11948            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
   11949            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1097, __FILE__, __LINE__, true);
   11950            0 :                         return _r;
   11951              :                       }
   11952            0 : next_after_fail1968:;
   11953              :                     }
   11954              :                   else
   11955              :                     {
   11956            0 :                       if (wi::geu_p (wi::to_wide (captures[2]),
   11957            0 :  wi::to_wide (captures[4]) + wi::to_wide (captures[3]))
   11958            0 :  || wi::geu_p (wi::to_wide (captures[4]),
   11959            0 :  wi::to_wide (captures[2]) + isize)
   11960              : )
   11961              :                         {
   11962            0 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1969;
   11963            0 :                           {
   11964            0 :                             tree res_op0;
   11965            0 :                             res_op0 = captures[0];
   11966            0 :                             tree res_op1;
   11967            0 :                             res_op1 = captures[3];
   11968            0 :                             tree res_op2;
   11969            0 :                             res_op2 = captures[4];
   11970            0 :                             tree _r;
   11971            0 :                             _r = fold_build3_loc (loc, BIT_FIELD_REF, type, res_op0, res_op1, res_op2);
   11972            0 :                             if (TREE_SIDE_EFFECTS (captures[1]))
   11973            0 :                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
   11974            0 :                             if (TREE_SIDE_EFFECTS (captures[2]))
   11975            0 :                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
   11976            0 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1098, __FILE__, __LINE__, true);
   11977            0 :                             return _r;
   11978              :                           }
   11979            0 : next_after_fail1969:;
   11980              :                         }
   11981              :                     }
   11982              :                 }
   11983              :           }
   11984              :         }
   11985            0 :         break;
   11986              :       }
   11987              :     default:;
   11988              :     }
   11989              :   return NULL_TREE;
   11990              : }
   11991              : #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.