LCOV - code coverage report
Current view: top level - /mnt/build/buildbot/bld/build-lcov/gcc - generic-match-4.cc (source / functions) Coverage Total Hit
Test: gcc.info Lines: 43.4 % 7793 3383
Test Date: 2026-06-20 15:32:29 Functions: 71.9 % 64 46
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    132289015 : tree_negate_expr_p (tree t)
      11              : {
      12    132289015 :   const tree type = TREE_TYPE (t);
      13    132289015 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
      14    132289015 :   if (TREE_SIDE_EFFECTS (t)) return false;
      15    127357896 :   switch (TREE_CODE (t))
      16              :     {
      17      7789529 :     case INTEGER_CST:
      18      7789529 :       {
      19      7789529 :         {
      20      7789529 :           if ((INTEGRAL_TYPE_P (type)
      21      7789529 :  && TYPE_UNSIGNED (type))
      22     10069354 :  || (!TYPE_OVERFLOW_SANITIZED (type)
      23      2277021 :  && may_negate_without_overflow_p (t))
      24              : )
      25              :             {
      26      7768318 :               {
      27      7768318 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 14, __FILE__, __LINE__, false);
      28      7768318 :                 return true;
      29              :               }
      30              :             }
      31              :         }
      32              :         break;
      33              :       }
      34            0 :     case FIXED_CST:
      35            0 :       {
      36            0 :         {
      37            0 :           {
      38            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 15, __FILE__, __LINE__, false);
      39              :             return true;
      40              :           }
      41              :         }
      42       401370 :         break;
      43              :       }
      44       401370 :     case NEGATE_EXPR:
      45       401370 :       {
      46       401370 :         tree _p0 = TREE_OPERAND (t, 0);
      47       401370 :         {
      48       401370 :           tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
      49       401370 :           if (!TYPE_OVERFLOW_SANITIZED (type)
      50              : )
      51              :             {
      52       401350 :               {
      53       401350 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 16, __FILE__, __LINE__, false);
      54       401350 :                 return true;
      55              :               }
      56              :             }
      57              :         }
      58              :         break;
      59              :       }
      60       729576 :     case REAL_CST:
      61       729576 :       {
      62       729576 :         {
      63       729576 :           if (REAL_VALUE_NEGATIVE (TREE_REAL_CST (t))
      64              : )
      65              :             {
      66          639 :               {
      67          639 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 17, __FILE__, __LINE__, false);
      68          639 :                 return true;
      69              :               }
      70              :             }
      71              :         }
      72              :         break;
      73              :       }
      74          450 :     case VECTOR_CST:
      75          450 :       {
      76          450 :         {
      77          450 :           if (FLOAT_TYPE_P (TREE_TYPE (type)) || TYPE_OVERFLOW_WRAPS (type)
      78              : )
      79              :             {
      80          329 :               {
      81          329 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 18, __FILE__, __LINE__, false);
      82          329 :                 return true;
      83              :               }
      84              :             }
      85              :         }
      86              :         break;
      87              :       }
      88      1261746 :     case MINUS_EXPR:
      89      1261746 :       {
      90      1261746 :         tree _p0 = TREE_OPERAND (t, 0);
      91      1261746 :         tree _p1 = TREE_OPERAND (t, 1);
      92      1261746 :         {
      93      1261746 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
      94      1261746 :           if ((ANY_INTEGRAL_TYPE_P (type) && TYPE_OVERFLOW_WRAPS (type))
      95      2166104 :  || (FLOAT_TYPE_P (type)
      96       636131 :  && !HONOR_SIGN_DEPENDENT_ROUNDING (type)
      97       636131 :  && !HONOR_SIGNED_ZEROS (type))
      98              : )
      99              :             {
     100       357961 :               {
     101       357961 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 19, __FILE__, __LINE__, false);
     102       357961 :                 return true;
     103              :               }
     104              :             }
     105              :         }
     106       903785 :         break;
     107              :       }
     108              :     default:;
     109              :     }
     110              :   return false;
     111              : }
     112              : 
     113              : bool
     114            0 : tree_double_value_p (tree t)
     115              : {
     116            0 :   const tree type = TREE_TYPE (t);
     117            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     118            0 :   if (TREE_SIDE_EFFECTS (t)) return false;
     119            0 :   {
     120            0 :     tree captures[1] ATTRIBUTE_UNUSED = { t };
     121            0 :     if (TYPE_MAIN_VARIANT (TREE_TYPE (captures[0])) == double_type_node
     122              : )
     123              :       {
     124            0 :         {
     125            0 :           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 44, __FILE__, __LINE__, false);
     126            0 :           return true;
     127              :         }
     128              :       }
     129              :   }
     130              :   return false;
     131              : }
     132              : 
     133              : tree
     134            0 : generic_simplify_6 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     135              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     136              : {
     137            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     138            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail77;
     139            0 :   {
     140            0 :     tree res_op0;
     141            0 :     {
     142            0 :       tree _o1[2], _r1;
     143            0 :       _o1[0] = captures[1];
     144            0 :       _o1[1] = captures[2];
     145            0 :       _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     146            0 :       res_op0 = _r1;
     147              :     }
     148            0 :     tree _r;
     149            0 :     _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
     150            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 54, __FILE__, __LINE__, true);
     151              :     return _r;
     152              :   }
     153            0 : next_after_fail77:;
     154            0 :   return NULL_TREE;
     155              : }
     156              : 
     157              : tree
     158       224849 : generic_simplify_15 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     159              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     160              :  const enum tree_code ARG_UNUSED (op))
     161              : {
     162       224849 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     163       224849 :   {
     164       224849 :  bool wascmp;
     165       224849 :       if (types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
     166       224849 :  && bitwise_inverted_equal_p (captures[0], captures[1], wascmp)
     167              : )
     168              :         {
     169           47 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail90;
     170           47 :           {
     171           47 :             tree res_op0;
     172           47 :             res_op0 =  wascmp
     173           47 :  ? constant_boolean_node (true, type)
     174           40 :  : build_all_ones_cst (TREE_TYPE (captures[0]));
     175           47 :             tree _r;
     176           47 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
     177           47 :             if (TREE_SIDE_EFFECTS (captures[0]))
     178            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
     179           47 :             if (TREE_SIDE_EFFECTS (captures[1]))
     180            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
     181           47 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 63, __FILE__, __LINE__, true);
     182           47 :             return _r;
     183              :           }
     184            0 : next_after_fail90:;
     185              :         }
     186              :   }
     187       224802 :   return NULL_TREE;
     188              : }
     189              : 
     190              : tree
     191           11 : generic_simplify_24 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     192              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     193              : {
     194           11 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     195           11 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail99;
     196           11 :   {
     197           11 :     tree res_op0;
     198           11 :     res_op0 = captures[0];
     199           11 :     tree _r;
     200           11 :     _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
     201           11 :     if (TREE_SIDE_EFFECTS (captures[2]))
     202            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
     203           11 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 72, __FILE__, __LINE__, true);
     204              :     return _r;
     205              :   }
     206            0 : next_after_fail99:;
     207            0 :   return NULL_TREE;
     208              : }
     209              : 
     210              : tree
     211            0 : generic_simplify_31 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     212              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     213              : {
     214            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     215            0 :   if (tree_nop_conversion_p (type, TREE_TYPE (captures[1]))
     216            0 :  && tree_nop_conversion_p (type, TREE_TYPE (captures[2]))
     217              : )
     218              :     {
     219            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail106;
     220            0 :       {
     221            0 :         tree res_op0;
     222            0 :         {
     223            0 :           tree _o1[1], _r1;
     224            0 :           _o1[0] = captures[1];
     225            0 :           if (TREE_TYPE (_o1[0]) != type)
     226              :             {
     227            0 :               _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
     228              :             }
     229              :           else
     230              :             _r1 = _o1[0];
     231            0 :           res_op0 = _r1;
     232              :         }
     233            0 :         tree res_op1;
     234            0 :         {
     235            0 :           tree _o1[1], _r1;
     236            0 :           _o1[0] = captures[2];
     237            0 :           if (TREE_TYPE (_o1[0]) != type)
     238              :             {
     239            0 :               _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
     240              :             }
     241              :           else
     242              :             _r1 = _o1[0];
     243            0 :           res_op1 = _r1;
     244              :         }
     245            0 :         tree _r;
     246            0 :         _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
     247            0 :         if (TREE_SIDE_EFFECTS (captures[0]))
     248            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
     249            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 79, __FILE__, __LINE__, true);
     250            0 :         return _r;
     251              :       }
     252            0 : next_after_fail106:;
     253              :     }
     254              :   return NULL_TREE;
     255              : }
     256              : 
     257              : tree
     258            0 : generic_simplify_40 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     259              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     260              :  const enum tree_code ARG_UNUSED (op))
     261              : {
     262            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     263            0 :   if (INTEGRAL_TYPE_P (type)
     264            0 :  && operand_equal_p (captures[2], captures[6], 0)
     265            0 :  && (tree_nonzero_bits (captures[0]) & tree_nonzero_bits (captures[4])) == 0
     266              : )
     267              :     {
     268            0 :       {
     269            0 :  tree t = type;
     270            0 :  if (!TYPE_OVERFLOW_WRAPS (t))
     271            0 :  t = unsigned_type_for (t);
     272            0 :  wide_int c = wi::add (wi::to_wide (captures[3]), wi::to_wide (captures[7]));
     273            0 :           if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail117;
     274            0 :           if (TREE_SIDE_EFFECTS (captures[7])) goto next_after_fail117;
     275            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail117;
     276            0 :           {
     277            0 :             tree res_op0;
     278            0 :             {
     279            0 :               tree _o1[2], _r1;
     280            0 :               {
     281            0 :                 tree _o2[1], _r2;
     282            0 :                 _o2[0] = captures[2];
     283            0 :                 if (TREE_TYPE (_o2[0]) != t)
     284              :                   {
     285            0 :                     _r2 = fold_build1_loc (loc, NOP_EXPR, t, _o2[0]);
     286              :                   }
     287              :                 else
     288              :                   _r2 = _o2[0];
     289            0 :                 _o1[0] = _r2;
     290              :               }
     291            0 :               _o1[1] =  wide_int_to_tree (t, c);
     292            0 :               _r1 = fold_build2_loc (loc, MULT_EXPR, t, _o1[0], _o1[1]);
     293            0 :               res_op0 = _r1;
     294              :             }
     295            0 :             tree _r;
     296            0 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
     297            0 :             if (TREE_SIDE_EFFECTS (captures[6]))
     298            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[6]), _r);
     299            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 88, __FILE__, __LINE__, true);
     300            0 :             return _r;
     301              :           }
     302            0 : next_after_fail117:;
     303            0 :       }
     304              :     }
     305              :   return NULL_TREE;
     306              : }
     307              : 
     308              : tree
     309           18 : generic_simplify_51 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     310              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     311              :  const enum tree_code ARG_UNUSED (cmp))
     312              : {
     313           18 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     314           36 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
     315           18 :  && !TYPE_UNSIGNED (TREE_TYPE (captures[1]))
     316           36 :  && types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[3]))
     317              : )
     318              :     {
     319           18 :       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail130;
     320           18 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail130;
     321           18 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail130;
     322           18 :       {
     323           18 :         tree res_op0;
     324           18 :         {
     325           18 :           tree _o1[2], _r1;
     326           18 :           _o1[0] = captures[1];
     327           18 :           _o1[1] = captures[3];
     328           18 :           _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     329           18 :           res_op0 = _r1;
     330              :         }
     331           18 :         tree res_op1;
     332           18 :         res_op1 =  build_zero_cst (TREE_TYPE (captures[1]));
     333           18 :         tree _r;
     334           18 :         _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
     335           18 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 98, __FILE__, __LINE__, true);
     336           18 :         return _r;
     337              :       }
     338              : next_after_fail130:;
     339              :     }
     340              :   return NULL_TREE;
     341              : }
     342              : 
     343              : tree
     344        48875 : generic_simplify_61 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     345              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     346              : {
     347        48875 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     348        48875 :   if (!TYPE_SATURATING (type)
     349              : )
     350              :     {
     351        48875 :       if ((!FLOAT_TYPE_P (type) || flag_associative_math)
     352        97681 :  && !FIXED_POINT_TYPE_P (type)
     353              : )
     354              :         {
     355        48806 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail142;
     356        48806 :           {
     357        48806 :             tree res_op0;
     358        48806 :             res_op0 = captures[0];
     359        48806 :             tree _r;
     360        48806 :             _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
     361        48806 :             if (TREE_SIDE_EFFECTS (captures[1]))
     362            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
     363        48806 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 110, __FILE__, __LINE__, true);
     364        48806 :             return _r;
     365              :           }
     366            0 : next_after_fail142:;
     367              :         }
     368              :     }
     369              :   return NULL_TREE;
     370              : }
     371              : 
     372              : tree
     373      6966837 : generic_simplify_68 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     374              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     375              :  const enum tree_code ARG_UNUSED (op))
     376              : {
     377      6966837 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     378      6966837 :   if (!TYPE_SATURATING (type)
     379              : )
     380              :     {
     381      6966837 :       if ((!FLOAT_TYPE_P (type) || flag_associative_math)
     382     13553404 :  && !FIXED_POINT_TYPE_P (type)
     383              : )
     384              :         {
     385      6586567 :           if (INTEGRAL_TYPE_P (type)
     386      6586275 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
     387      5323759 :  && TYPE_PRECISION (type) <= TYPE_PRECISION (TREE_TYPE (captures[0]))
     388      4466065 :  && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
     389      3820945 :  && !TYPE_OVERFLOW_TRAPS (type)
     390     10407512 :  && !TYPE_OVERFLOW_SANITIZED (type)
     391              : )
     392              :             {
     393      3820674 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail157;
     394      3820674 :               {
     395      3820674 :                 tree res_op0;
     396      3820674 :                 {
     397      3820674 :                   tree _o1[2], _r1;
     398      3820674 :                   _o1[0] = captures[0];
     399      3820674 :                   _o1[1] = captures[1];
     400      3820674 :                   _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     401      3820674 :                   if (EXPR_P (_r1))
     402      3805163 :                     goto next_after_fail157;
     403        15511 :                   res_op0 = _r1;
     404              :                 }
     405        15511 :                 tree _r;
     406        15511 :                 _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
     407        15511 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 125, __FILE__, __LINE__, true);
     408        15511 :                 return _r;
     409              :               }
     410              : next_after_fail157:;
     411              :             }
     412              :         }
     413              :     }
     414              :   return NULL_TREE;
     415              : }
     416              : 
     417              : tree
     418           56 : generic_simplify_78 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     419              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     420              :  const enum tree_code ARG_UNUSED (cmp),
     421              :  const enum tree_code ARG_UNUSED (icmp),
     422              :  const enum tree_code ARG_UNUSED (ncmp))
     423              : {
     424           56 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     425           56 :   if (TYPE_PRECISION (type) > 1
     426           56 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && TYPE_PRECISION (TREE_TYPE (captures[0])) == 1
     427              : )
     428              :     {
     429            0 :       {
     430            0 :  enum tree_code ic = invert_tree_comparison
     431            0 :  (cmp, HONOR_NANS (captures[1]));
     432            0 :  tree cmptype = TREE_TYPE (captures[0]);
     433            0 :           if (ic == icmp
     434              : )
     435              :             {
     436            0 :               if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail168;
     437            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail168;
     438            0 :               {
     439            0 :                 tree res_op0;
     440            0 :                 {
     441            0 :                   tree _o1[1], _r1;
     442            0 :                   {
     443            0 :                     tree _o2[2], _r2;
     444            0 :                     _o2[0] = captures[1];
     445            0 :                     _o2[1] = captures[2];
     446            0 :                     _r2 = fold_build2_loc (loc, icmp, cmptype, _o2[0], _o2[1]);
     447            0 :                     _o1[0] = _r2;
     448              :                   }
     449            0 :                   if (TREE_TYPE (_o1[0]) != type)
     450              :                     {
     451            0 :                       _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
     452              :                     }
     453              :                   else
     454              :                     _r1 = _o1[0];
     455            0 :                   res_op0 = _r1;
     456              :                 }
     457            0 :                 tree _r;
     458            0 :                 _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
     459            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 136, __FILE__, __LINE__, true);
     460            0 :                 return _r;
     461              :               }
     462              : next_after_fail168:;
     463              :             }
     464              :           else
     465              :             {
     466            0 :               if (ic == ncmp
     467              : )
     468              :                 {
     469            0 :                   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail169;
     470            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail169;
     471            0 :                   {
     472            0 :                     tree res_op0;
     473            0 :                     {
     474            0 :                       tree _o1[1], _r1;
     475            0 :                       {
     476            0 :                         tree _o2[2], _r2;
     477            0 :                         _o2[0] = captures[1];
     478            0 :                         _o2[1] = captures[2];
     479            0 :                         _r2 = fold_build2_loc (loc, ncmp, cmptype, _o2[0], _o2[1]);
     480            0 :                         _o1[0] = _r2;
     481              :                       }
     482            0 :                       if (TREE_TYPE (_o1[0]) != type)
     483              :                         {
     484            0 :                           _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
     485              :                         }
     486              :                       else
     487              :                         _r1 = _o1[0];
     488            0 :                       res_op0 = _r1;
     489              :                     }
     490            0 :                     tree _r;
     491            0 :                     _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
     492            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 137, __FILE__, __LINE__, true);
     493            0 :                     return _r;
     494              :                   }
     495              : next_after_fail169:;
     496              :                 }
     497              :             }
     498              :       }
     499              :     }
     500              :   return NULL_TREE;
     501              : }
     502              : 
     503              : tree
     504            5 : generic_simplify_92 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     505              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     506              : {
     507            5 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     508            5 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail183;
     509            5 :   {
     510            5 :     tree res_op0;
     511            5 :     res_op0 = captures[1];
     512            5 :     tree res_op1;
     513            5 :     {
     514            5 :       tree _o1[1], _r1;
     515            5 :       _o1[0] = captures[2];
     516            5 :       _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
     517            5 :       res_op1 = _r1;
     518              :     }
     519            5 :     tree _r;
     520            5 :     _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
     521            5 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 151, __FILE__, __LINE__, true);
     522              :     return _r;
     523              :   }
     524            0 : next_after_fail183:;
     525            0 :   return NULL_TREE;
     526              : }
     527              : 
     528              : tree
     529          355 : generic_simplify_99 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     530              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     531              : {
     532          355 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     533          355 :   if (!TYPE_SATURATING (type)
     534              : )
     535              :     {
     536          355 :       if ((!FLOAT_TYPE_P (type) || flag_associative_math)
     537          710 :  && !FIXED_POINT_TYPE_P (type)
     538              : )
     539              :         {
     540          355 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail192;
     541          355 :           {
     542          355 :             tree res_op0;
     543          355 :             res_op0 = captures[1];
     544          355 :             tree _r;
     545          355 :             _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
     546          355 :             if (TREE_SIDE_EFFECTS (captures[0]))
     547            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
     548          355 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 159, __FILE__, __LINE__, true);
     549          355 :             return _r;
     550              :           }
     551            0 : next_after_fail192:;
     552              :         }
     553              :     }
     554              :   return NULL_TREE;
     555              : }
     556              : 
     557              : tree
     558       157335 : generic_simplify_105 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     559              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     560              : {
     561       157335 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     562       157335 :   if (!TYPE_SATURATING (type)
     563              : )
     564              :     {
     565       157335 :       if ((!FLOAT_TYPE_P (type) || flag_associative_math)
     566       314670 :  && !FIXED_POINT_TYPE_P (type)
     567              : )
     568              :         {
     569       157335 :           if (INTEGRAL_TYPE_P (type)
     570       157335 :  && TYPE_OVERFLOW_UNDEFINED (type)
     571           71 :  && element_precision (type) <= element_precision (TREE_TYPE (captures[1]))
     572       157406 :  && element_precision (type) <= element_precision (TREE_TYPE (captures[2]))
     573              : )
     574              :             {
     575           71 :               {
     576           71 :  tree utype = unsigned_type_for (type);
     577           71 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail201;
     578           71 :                   {
     579           71 :                     tree res_op0;
     580           71 :                     {
     581           71 :                       tree _o1[2], _r1;
     582           71 :                       {
     583           71 :                         tree _o2[1], _r2;
     584           71 :                         _o2[0] = captures[1];
     585           71 :                         if (TREE_TYPE (_o2[0]) != utype)
     586              :                           {
     587           56 :                             _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
     588              :                           }
     589              :                         else
     590              :                           _r2 = _o2[0];
     591           71 :                         _o1[0] = _r2;
     592              :                       }
     593           71 :                       {
     594           71 :                         tree _o2[1], _r2;
     595           71 :                         _o2[0] = captures[2];
     596           71 :                         if (TREE_TYPE (_o2[0]) != utype)
     597              :                           {
     598           56 :                             _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
     599              :                           }
     600              :                         else
     601              :                           _r2 = _o2[0];
     602           71 :                         _o1[1] = _r2;
     603              :                       }
     604           71 :                       _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     605           71 :                       res_op0 = _r1;
     606              :                     }
     607           71 :                     tree _r;
     608           71 :                     _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
     609           71 :                     if (TREE_SIDE_EFFECTS (captures[3]))
     610            2 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
     611           71 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 168, __FILE__, __LINE__, true);
     612           71 :                     return _r;
     613              :                   }
     614            0 : next_after_fail201:;
     615              :               }
     616              :             }
     617              :           else
     618              :             {
     619       157264 :               if (((element_precision (type) <= element_precision (TREE_TYPE (captures[1])))
     620       157264 :  == (element_precision (type) <= element_precision (TREE_TYPE (captures[2]))))
     621       157264 :  && (element_precision (type) <= element_precision (TREE_TYPE (captures[1]))
     622           62 :  || (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
     623           62 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
     624           62 :  && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))
     625           58 :  && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[2]))))
     626              : )
     627              :                 {
     628       140608 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail202;
     629       140608 :                   {
     630       140608 :                     tree res_op0;
     631       140608 :                     {
     632       140608 :                       tree _o1[1], _r1;
     633       140608 :                       _o1[0] = captures[1];
     634       140608 :                       if (TREE_TYPE (_o1[0]) != type)
     635              :                         {
     636       140608 :                           _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
     637              :                         }
     638              :                       else
     639              :                         _r1 = _o1[0];
     640       140608 :                       res_op0 = _r1;
     641              :                     }
     642       140608 :                     tree res_op1;
     643       140608 :                     {
     644       140608 :                       tree _o1[1], _r1;
     645       140608 :                       _o1[0] = captures[2];
     646       140608 :                       if (TREE_TYPE (_o1[0]) != type)
     647              :                         {
     648       140602 :                           _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
     649              :                         }
     650              :                       else
     651              :                         _r1 = _o1[0];
     652       140608 :                       res_op1 = _r1;
     653              :                     }
     654       140608 :                     tree _r;
     655       140608 :                     _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
     656       140608 :                     if (TREE_SIDE_EFFECTS (captures[3]))
     657            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
     658       140608 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 169, __FILE__, __LINE__, true);
     659       140608 :                     return _r;
     660              :                   }
     661            0 : next_after_fail202:;
     662              :                 }
     663              :             }
     664              :         }
     665              :     }
     666              :   return NULL_TREE;
     667              : }
     668              : 
     669              : tree
     670            1 : generic_simplify_133 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     671              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     672              : {
     673            1 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     674            1 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail230;
     675            1 :   {
     676            1 :     tree res_op0;
     677            1 :     {
     678            1 :       tree _o1[2], _r1;
     679            1 :       _o1[0] = captures[1];
     680            1 :       _o1[1] = captures[2];
     681            1 :       _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     682            1 :       res_op0 = _r1;
     683              :     }
     684            1 :     tree _r;
     685            1 :     _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
     686            1 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 192, __FILE__, __LINE__, true);
     687              :     return _r;
     688              :   }
     689            0 : next_after_fail230:;
     690            0 :   return NULL_TREE;
     691              : }
     692              : 
     693              : tree
     694            2 : generic_simplify_143 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     695              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     696              :  const enum tree_code ARG_UNUSED (bitop),
     697              :  const enum tree_code ARG_UNUSED (rbitop))
     698              : {
     699            2 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     700            2 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail244;
     701            2 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail244;
     702            2 :   {
     703            2 :     tree _r;
     704            2 :     _r = captures[2];
     705            2 :     if (TREE_SIDE_EFFECTS (captures[1]))
     706            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
     707            2 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 198, __FILE__, __LINE__, true);
     708              :     return _r;
     709              :   }
     710              : next_after_fail244:;
     711              :   return NULL_TREE;
     712              : }
     713              : 
     714              : tree
     715           82 : generic_simplify_148 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     716              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     717              :  const enum tree_code ARG_UNUSED (op))
     718              : {
     719           82 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     720           82 :   if (bitwise_equal_p (captures[4], captures[7])
     721              : )
     722              :     {
     723           16 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail250;
     724           16 :       {
     725           16 :         tree res_op0;
     726           16 :         {
     727           16 :           tree _o1[2], _r1;
     728           16 :           {
     729           16 :             tree _o2[2], _r2;
     730           16 :             _o2[0] = captures[5];
     731           16 :             {
     732           16 :               tree _o3[1], _r3;
     733           16 :               _o3[0] = captures[6];
     734           16 :               if (TREE_TYPE (_o3[0]) != TREE_TYPE (_o2[0]))
     735              :                 {
     736           16 :                   _r3 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o2[0]), _o3[0]);
     737              :                 }
     738              :               else
     739              :                 _r3 = _o3[0];
     740           16 :               _o2[1] = _r3;
     741              :             }
     742           16 :             _r2 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
     743           16 :             _o1[0] = _r2;
     744              :           }
     745           16 :           {
     746           16 :             tree _o2[1], _r2;
     747           16 :             _o2[0] = captures[4];
     748           16 :             if (TREE_TYPE (_o2[0]) != TREE_TYPE (_o1[0]))
     749              :               {
     750            0 :                 _r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]);
     751              :               }
     752              :             else
     753              :               _r2 = _o2[0];
     754           16 :             _o1[1] = _r2;
     755              :           }
     756           16 :           _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     757           16 :           res_op0 = _r1;
     758              :         }
     759           16 :         tree _r;
     760           16 :         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
     761           16 :         if (TREE_SIDE_EFFECTS (captures[7]))
     762            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[7]), _r);
     763           16 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 202, __FILE__, __LINE__, true);
     764           16 :         return _r;
     765              :       }
     766            0 : next_after_fail250:;
     767              :     }
     768              :   return NULL_TREE;
     769              : }
     770              : 
     771              : tree
     772          408 : generic_simplify_159 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     773              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     774              :  const enum tree_code ARG_UNUSED (code2),
     775              :  const enum tree_code ARG_UNUSED (code1))
     776              : {
     777          408 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     778          408 :   if ((TREE_CODE (captures[2]) == INTEGER_CST
     779          376 :  && TREE_CODE (captures[5]) == INTEGER_CST)
     780          408 :  || ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
     781            3 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[2])))
     782            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[2])))
     783           32 :  && bitwise_equal_p (captures[2], captures[5]))
     784              : )
     785              :     {
     786          378 :       {
     787          378 :  bool one_before = false;
     788          378 :  bool one_after = false;
     789          378 :  int cmp = 0;
     790          378 :  bool allbits = true;
     791          378 :  if (TREE_CODE (captures[2]) == INTEGER_CST
     792          376 :  && TREE_CODE (captures[5]) == INTEGER_CST)
     793              :  {
     794          376 :  allbits = TYPE_PRECISION (TREE_TYPE (captures[2])) <= TYPE_PRECISION (TREE_TYPE (captures[5]));
     795          376 :  auto t1 = wi::to_wide (fold_convert (TREE_TYPE (captures[5]), captures[2]));
     796          376 :  auto t2 = wi::to_wide (captures[5]);
     797          376 :  cmp = wi::cmp (t1, t2, TYPE_SIGN (TREE_TYPE (captures[5])));
     798          376 :  if (cmp < 0
     799          376 :  && t1 == t2 - 1)
     800              :  one_before = true;
     801          376 :  if (cmp > 0
     802          376 :  && t1 == t2 + 1)
     803              :  one_after = true;
     804              :  }
     805          378 :  bool val;
     806          378 :  switch (code2)
     807              :  {
     808          362 :  case EQ_EXPR: val = (cmp == 0); break;
     809            0 :  case NE_EXPR: val = (cmp != 0); break;
     810            2 :  case LT_EXPR: val = (cmp < 0); break;
     811            0 :  case GT_EXPR: val = (cmp > 0); break;
     812           14 :  case LE_EXPR: val = (cmp <= 0); break;
     813            0 :  case GE_EXPR: val = (cmp >= 0); break;
     814            0 :  default: gcc_unreachable ();
     815              :  }
     816          378 :           if (code1 == EQ_EXPR && val
     817              : )
     818              :             {
     819            7 :               if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail270;
     820            7 :               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail270;
     821            7 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail270;
     822            7 :               {
     823            7 :                 tree _r;
     824            7 :                 _r = captures[3];
     825            7 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 212, __FILE__, __LINE__, true);
     826            7 :                 return _r;
     827              :               }
     828              : next_after_fail270:;
     829              :             }
     830              :           else
     831              :             {
     832          371 :               if (code1 == NE_EXPR && val && allbits
     833              : )
     834              :                 {
     835            7 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail271;
     836            7 :                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail271;
     837            7 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail271;
     838            7 :                   {
     839            7 :                     tree _r;
     840            7 :                     _r =  constant_boolean_node (true, type);
     841            7 :                     if (TREE_SIDE_EFFECTS (captures[4]))
     842            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
     843            7 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 213, __FILE__, __LINE__, true);
     844            7 :                     return _r;
     845              :                   }
     846              : next_after_fail271:;
     847              :                 }
     848              :               else
     849              :                 {
     850          364 :                   if (code1 == NE_EXPR && !val && allbits
     851              : )
     852              :                     {
     853            0 :                       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail272;
     854            0 :                       if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail272;
     855            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail272;
     856            0 :                       {
     857            0 :                         tree _r;
     858            0 :                         _r = captures[0];
     859            0 :                         if (TREE_SIDE_EFFECTS (captures[4]))
     860            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
     861            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 214, __FILE__, __LINE__, true);
     862            0 :                         return _r;
     863              :                       }
     864              : next_after_fail272:;
     865              :                     }
     866              :                   else
     867              :                     {
     868          364 :                       if (code1 == EQ_EXPR
     869          364 :  && code2 == GT_EXPR
     870            0 :  && cmp == 0
     871            0 :  && allbits
     872          364 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
     873            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GE_EXPR))
     874            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
     875              : )
     876              :                         {
     877            0 :                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail273;
     878            0 :                           if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail273;
     879            0 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail273;
     880            0 :                           {
     881            0 :                             tree res_op0;
     882            0 :                             res_op0 = captures[4];
     883            0 :                             tree res_op1;
     884            0 :                             res_op1 = captures[5];
     885            0 :                             tree _r;
     886            0 :                             _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
     887            0 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 215, __FILE__, __LINE__, true);
     888            0 :                             return _r;
     889              :                           }
     890              : next_after_fail273:;
     891              :                         }
     892              :                       else
     893              :                         {
     894          364 :                           if (code1 == EQ_EXPR
     895          364 :  && code2 == LT_EXPR
     896            2 :  && cmp == 0
     897            2 :  && allbits
     898          366 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
     899            2 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LE_EXPR))
     900            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
     901              : )
     902              :                             {
     903            2 :                               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail274;
     904            2 :                               if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail274;
     905            2 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail274;
     906            2 :                               {
     907            2 :                                 tree res_op0;
     908            2 :                                 res_op0 = captures[4];
     909            2 :                                 tree res_op1;
     910            2 :                                 res_op1 = captures[5];
     911            2 :                                 tree _r;
     912            2 :                                 _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
     913            2 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 216, __FILE__, __LINE__, true);
     914            2 :                                 return _r;
     915              :                               }
     916              : next_after_fail274:;
     917              :                             }
     918              :                           else
     919              :                             {
     920          362 :                               if (code1 == EQ_EXPR
     921          362 :  && code2 == GE_EXPR
     922              :  && one_before
     923            0 :  && allbits
     924          362 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
     925            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GE_EXPR))
     926            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
     927              : )
     928              :                                 {
     929            0 :                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail275;
     930            0 :                                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail275;
     931            0 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail275;
     932            0 :                                   {
     933            0 :                                     tree res_op0;
     934            0 :                                     res_op0 = captures[4];
     935            0 :                                     tree res_op1;
     936            0 :                                     {
     937            0 :                                       tree _o1[1], _r1;
     938            0 :                                       _o1[0] = captures[2];
     939            0 :                                       if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
     940              :                                         {
     941            0 :                                           _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
     942              :                                         }
     943              :                                       else
     944              :                                         _r1 = _o1[0];
     945            0 :                                       res_op1 = _r1;
     946              :                                     }
     947            0 :                                     tree _r;
     948            0 :                                     _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
     949            0 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 217, __FILE__, __LINE__, true);
     950            0 :                                     return _r;
     951              :                                   }
     952              : next_after_fail275:;
     953              :                                 }
     954              :                               else
     955              :                                 {
     956          362 :                                   if (code1 == EQ_EXPR
     957          362 :  && code2 == LE_EXPR
     958              :  && one_after
     959            0 :  && allbits
     960          362 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
     961            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LE_EXPR))
     962            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
     963              : )
     964              :                                     {
     965            0 :                                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail276;
     966            0 :                                       if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail276;
     967            0 :                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail276;
     968            0 :                                       {
     969            0 :                                         tree res_op0;
     970            0 :                                         res_op0 = captures[4];
     971            0 :                                         tree res_op1;
     972            0 :                                         {
     973            0 :                                           tree _o1[1], _r1;
     974            0 :                                           _o1[0] = captures[2];
     975            0 :                                           if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
     976              :                                             {
     977            0 :                                               _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
     978              :                                             }
     979              :                                           else
     980              :                                             _r1 = _o1[0];
     981            0 :                                           res_op1 = _r1;
     982              :                                         }
     983            0 :                                         tree _r;
     984            0 :                                         _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
     985            0 :                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 218, __FILE__, __LINE__, true);
     986            0 :                                         return _r;
     987              :                                       }
     988              : next_after_fail276:;
     989              :                                     }
     990              :                                 }
     991              :                             }
     992              :                         }
     993              :                     }
     994              :                 }
     995              :             }
     996              :       }
     997              :     }
     998              :   return NULL_TREE;
     999              : }
    1000              : 
    1001              : tree
    1002           38 : generic_simplify_204 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1003              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1004              :  const combined_fn ARG_UNUSED (POW))
    1005              : {
    1006           38 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1007           38 :   if (flag_unsafe_math_optimizations && canonicalize_math_p ()
    1008              : )
    1009              :     {
    1010           38 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail344;
    1011           38 :       {
    1012           38 :         tree res_op0;
    1013           38 :         res_op0 = captures[1];
    1014           38 :         tree res_op1;
    1015           38 :         {
    1016           38 :           tree _o1[2], _r1;
    1017           38 :           _o1[0] = captures[2];
    1018           38 :           _o1[1] = captures[4];
    1019           38 :           _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1020           38 :           res_op1 = _r1;
    1021              :         }
    1022           38 :         tree _r;
    1023           38 :         _r = maybe_build_call_expr_loc (loc, POW, type, 2, res_op0, res_op1);
    1024           38 :         if (!_r)
    1025            0 :           goto next_after_fail344;
    1026           38 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 259, __FILE__, __LINE__, true);
    1027           38 :         return _r;
    1028              :       }
    1029              : next_after_fail344:;
    1030              :     }
    1031              :   return NULL_TREE;
    1032              : }
    1033              : 
    1034              : tree
    1035            4 : generic_simplify_213 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1036              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    1037              : {
    1038            4 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1039            8 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    1040            8 :  && TYPE_PRECISION (TREE_TYPE (captures[1])) == 1
    1041              : )
    1042              :     {
    1043            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail356;
    1044            0 :       {
    1045            0 :         tree res_op0;
    1046            0 :         {
    1047            0 :           tree _o1[2], _r1;
    1048            0 :           _o1[0] = captures[1];
    1049            0 :           _o1[1] = captures[2];
    1050            0 :           _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1051            0 :           res_op0 = _r1;
    1052              :         }
    1053            0 :         tree _r;
    1054            0 :         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    1055            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 270, __FILE__, __LINE__, true);
    1056            0 :         return _r;
    1057              :       }
    1058            0 : next_after_fail356:;
    1059              :     }
    1060              :   return NULL_TREE;
    1061              : }
    1062              : 
    1063              : tree
    1064         1897 : generic_simplify_218 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1065              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1066              :  const enum tree_code ARG_UNUSED (cmp))
    1067              : {
    1068         1897 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1069         3794 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    1070         1897 :  && TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[0]))
    1071         3794 :  && (TREE_INT_CST_LOW (captures[1]) & 1) != 0
    1072              : )
    1073              :     {
    1074           10 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail361;
    1075           10 :       {
    1076           10 :         tree res_op0;
    1077           10 :         res_op0 = captures[0];
    1078           10 :         tree res_op1;
    1079           10 :         res_op1 = captures[2];
    1080           10 :         tree _r;
    1081           10 :         _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1082           10 :         if (TREE_SIDE_EFFECTS (captures[1]))
    1083            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1084           10 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 275, __FILE__, __LINE__, true);
    1085           10 :         return _r;
    1086              :       }
    1087            0 : next_after_fail361:;
    1088              :     }
    1089              :   return NULL_TREE;
    1090              : }
    1091              : 
    1092              : tree
    1093            0 : generic_simplify_225 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1094              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1095              :  const enum tree_code ARG_UNUSED (op))
    1096              : {
    1097            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1098            0 :   if (tree_nop_conversion_p (TREE_TYPE (captures[1]), TREE_TYPE (captures[2]))
    1099            0 :  && tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[2]))
    1100            0 :  && (CONSTANT_CLASS_P (captures[3]) || (single_use (captures[1]) && single_use (captures[0])))
    1101              : )
    1102              :     {
    1103            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail381;
    1104            0 :       {
    1105            0 :         tree res_op0;
    1106            0 :         res_op0 = captures[3];
    1107            0 :         tree res_op1;
    1108            0 :         res_op1 =  build_zero_cst (TREE_TYPE (captures[3]));
    1109            0 :         tree _r;
    1110            0 :         _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
    1111            0 :         if (TREE_SIDE_EFFECTS (captures[2]))
    1112            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1113            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 291, __FILE__, __LINE__, true);
    1114            0 :         return _r;
    1115              :       }
    1116            0 : next_after_fail381:;
    1117              :     }
    1118              :   return NULL_TREE;
    1119              : }
    1120              : 
    1121              : tree
    1122            0 : generic_simplify_233 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1123              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1124              :  const enum tree_code ARG_UNUSED (cmp))
    1125              : {
    1126            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1127            0 :   if (wi::lt_p (wi::to_wide (captures[1]), wi::to_wide (captures[2]),
    1128            0 :  TYPE_SIGN (TREE_TYPE (captures[0])))
    1129              : )
    1130              :     {
    1131            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail389;
    1132            0 :       {
    1133            0 :         tree _r;
    1134            0 :         _r =  constant_boolean_node (cmp == NE_EXPR, type);
    1135            0 :         if (TREE_SIDE_EFFECTS (captures[0]))
    1136            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1137            0 :         if (TREE_SIDE_EFFECTS (captures[1]))
    1138            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1139            0 :         if (TREE_SIDE_EFFECTS (captures[2]))
    1140            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1141            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 302, __FILE__, __LINE__, true);
    1142            0 :         return _r;
    1143              :       }
    1144            0 : next_after_fail389:;
    1145              :     }
    1146              :   else
    1147              :     {
    1148            0 :       if (wi::gt_p (wi::to_wide (captures[1]), wi::to_wide (captures[2]),
    1149            0 :  TYPE_SIGN (TREE_TYPE (captures[0])))
    1150              : )
    1151              :         {
    1152            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail390;
    1153            0 :           {
    1154            0 :             tree res_op0;
    1155            0 :             res_op0 = captures[0];
    1156            0 :             tree res_op1;
    1157            0 :             res_op1 = captures[2];
    1158            0 :             tree _r;
    1159            0 :             _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1160            0 :             if (TREE_SIDE_EFFECTS (captures[1]))
    1161            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1162            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 303, __FILE__, __LINE__, true);
    1163            0 :             return _r;
    1164              :           }
    1165            0 : next_after_fail390:;
    1166              :         }
    1167              :     }
    1168              :   return NULL_TREE;
    1169              : }
    1170              : 
    1171              : tree
    1172          383 : generic_simplify_244 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1173              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1174              :  const enum tree_code ARG_UNUSED (rotate),
    1175              :  const enum tree_code ARG_UNUSED (invrot),
    1176              :  const enum tree_code ARG_UNUSED (cmp))
    1177              : {
    1178          383 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1179          383 :   if (integer_zerop (captures[2]) || integer_all_onesp (captures[2])
    1180              : )
    1181              :     {
    1182            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail412;
    1183            0 :       {
    1184            0 :         tree res_op0;
    1185            0 :         res_op0 = captures[0];
    1186            0 :         tree res_op1;
    1187            0 :         res_op1 = captures[2];
    1188            0 :         tree _r;
    1189            0 :         _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1190            0 :         if (TREE_SIDE_EFFECTS (captures[1]))
    1191            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1192            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 325, __FILE__, __LINE__, true);
    1193            0 :         return _r;
    1194              :       }
    1195            0 : next_after_fail412:;
    1196              :     }
    1197              :   return NULL_TREE;
    1198              : }
    1199              : 
    1200              : tree
    1201        29541 : generic_simplify_252 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1202              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1203              :  const enum tree_code ARG_UNUSED (cmp),
    1204              :  const enum tree_code ARG_UNUSED (scmp))
    1205              : {
    1206        29541 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1207        29541 :   if (integer_zerop (captures[2])
    1208              : )
    1209              :     {
    1210            7 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail421;
    1211            7 :       {
    1212            7 :         tree res_op0;
    1213            7 :         res_op0 = captures[2];
    1214            7 :         tree res_op1;
    1215            7 :         res_op1 = captures[3];
    1216            7 :         tree _r;
    1217            7 :         _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1218            7 :         if (TREE_SIDE_EFFECTS (captures[1]))
    1219            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1220            7 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 333, __FILE__, __LINE__, true);
    1221            7 :         return _r;
    1222              :       }
    1223            0 : next_after_fail421:;
    1224              :     }
    1225              :   else
    1226              :     {
    1227        59068 :       if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    1228        59068 :  && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))
    1229        59068 :  && single_use (captures[0])
    1230              : )
    1231              :         {
    1232         5943 :           if (tree_int_cst_sgn (captures[2]) < 0
    1233              : )
    1234              :             {
    1235           15 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail422;
    1236           15 :               {
    1237           15 :                 tree res_op0;
    1238           15 :                 res_op0 = captures[1];
    1239           15 :                 tree res_op1;
    1240           15 :                 res_op1 = captures[3];
    1241           15 :                 tree _r;
    1242           15 :                 _r = fold_build2_loc (loc, scmp, type, res_op0, res_op1);
    1243           15 :                 if (TREE_SIDE_EFFECTS (captures[2]))
    1244            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1245           15 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 334, __FILE__, __LINE__, true);
    1246           15 :                 return _r;
    1247              :               }
    1248            0 : next_after_fail422:;
    1249              :             }
    1250              :           else
    1251              :             {
    1252         5928 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail423;
    1253         5928 :               {
    1254         5928 :                 tree res_op0;
    1255         5928 :                 res_op0 = captures[1];
    1256         5928 :                 tree res_op1;
    1257         5928 :                 res_op1 = captures[3];
    1258         5928 :                 tree _r;
    1259         5928 :                 _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1260         5928 :                 if (TREE_SIDE_EFFECTS (captures[2]))
    1261            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1262         5928 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 335, __FILE__, __LINE__, true);
    1263         5928 :                 return _r;
    1264              :               }
    1265            0 : next_after_fail423:;
    1266              :             }
    1267              :         }
    1268              :     }
    1269              :   return NULL_TREE;
    1270              : }
    1271              : 
    1272              : tree
    1273        78500 : generic_simplify_265 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1274              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1275              :  const enum tree_code ARG_UNUSED (cmp),
    1276              :  const enum tree_code ARG_UNUSED (icmp))
    1277              : {
    1278        78500 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1279        78500 :   if (SCALAR_FLOAT_TYPE_P (TREE_TYPE (captures[1]))
    1280        78500 :  && ! DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[1]))
    1281              : )
    1282              :     {
    1283        78009 :       {
    1284        78009 :  tree itype = TREE_TYPE (captures[0]);
    1285        78009 :  format_helper fmt (REAL_MODE_FORMAT (TYPE_MODE (TREE_TYPE (captures[1]))));
    1286        78009 :  const REAL_VALUE_TYPE *cst = TREE_REAL_CST_PTR (captures[1]);
    1287        78009 :  bool exception_p = real_isnan (cst)
    1288          150 :  && flag_trapping_math
    1289        78159 :  && ((cmp != EQ_EXPR && cmp != NE_EXPR)
    1290           30 :  || (cst->signalling
    1291           30 :  && HONOR_SNANS (TREE_TYPE (captures[1]))));
    1292        78009 :           if (fmt.can_represent_integral_type_p (itype) && ! exception_p
    1293              : )
    1294              :             {
    1295        37933 :               {
    1296        37933 :  signop isign = TYPE_SIGN (itype);
    1297        37933 :  REAL_VALUE_TYPE imin, imax;
    1298        37933 :  real_from_integer (&imin, fmt, wi::min_value (itype), isign);
    1299        37933 :  real_from_integer (&imax, fmt, wi::max_value (itype), isign);
    1300        37933 :  REAL_VALUE_TYPE icst;
    1301        37933 :  if (cmp == GT_EXPR || cmp == GE_EXPR)
    1302        37598 :  real_ceil (&icst, fmt, cst);
    1303          335 :  else if (cmp == LT_EXPR || cmp == LE_EXPR)
    1304          183 :  real_floor (&icst, fmt, cst);
    1305              :  else
    1306          152 :  real_trunc (&icst, fmt, cst);
    1307        37933 :  bool cst_int_p = !real_isnan (cst) && real_identical (&icst, cst);
    1308        37933 :  bool overflow_p = false;
    1309        37933 :  wide_int icst_val
    1310        37933 :  = real_to_integer (&icst, &overflow_p, TYPE_PRECISION (itype));
    1311        37933 :                   if (real_compare (LT_EXPR, cst, &imin)
    1312              : )
    1313              :                     {
    1314        18796 :                       if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail474;
    1315        18796 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail474;
    1316        18796 :                       {
    1317        18796 :                         tree _r;
    1318        18796 :                         _r =  constant_boolean_node (cmp == GT_EXPR || cmp == GE_EXPR || cmp == NE_EXPR,
    1319              :  type);
    1320        18796 :                         if (TREE_SIDE_EFFECTS (captures[0]))
    1321            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1322        18796 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 385, __FILE__, __LINE__, true);
    1323        18796 :                         return _r;
    1324              :                       }
    1325            0 : next_after_fail474:;
    1326              :                     }
    1327              :                   else
    1328              :                     {
    1329        19137 :                       if (real_compare (GT_EXPR, cst, &imax)
    1330              : )
    1331              :                         {
    1332           99 :                           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail475;
    1333           99 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail475;
    1334           99 :                           {
    1335           99 :                             tree _r;
    1336           99 :                             _r =  constant_boolean_node (cmp == LT_EXPR || cmp == LE_EXPR || cmp == NE_EXPR,
    1337              :  type);
    1338           99 :                             if (TREE_SIDE_EFFECTS (captures[0]))
    1339            1 :                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1340           99 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 386, __FILE__, __LINE__, true);
    1341           99 :                             return _r;
    1342              :                           }
    1343            0 : next_after_fail475:;
    1344              :                         }
    1345              :                       else
    1346              :                         {
    1347        19038 :                           if (cst_int_p
    1348              : )
    1349              :                             {
    1350        18930 :                               if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail476;
    1351        18930 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail476;
    1352        18930 :                               {
    1353        18930 :                                 tree res_op0;
    1354        18930 :                                 res_op0 = captures[0];
    1355        18930 :                                 tree res_op1;
    1356        18930 :  gcc_assert (!overflow_p);                              res_op1 = 
    1357        18930 :  wide_int_to_tree (itype, icst_val);
    1358        18930 :                                 tree _r;
    1359        18930 :                                 _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1360        18930 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 387, __FILE__, __LINE__, true);
    1361        18930 :                                 return _r;
    1362              :                               }
    1363            0 : next_after_fail476:;
    1364              :                             }
    1365              :                           else
    1366              :                             {
    1367          108 :                               if (cmp == EQ_EXPR || cmp == NE_EXPR
    1368              : )
    1369              :                                 {
    1370           14 :                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail477;
    1371           14 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail477;
    1372           14 :                                   {
    1373           14 :                                     tree _r;
    1374           14 :                                     _r =  constant_boolean_node (cmp == NE_EXPR, type);
    1375           14 :                                     if (TREE_SIDE_EFFECTS (captures[0]))
    1376            0 :                                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1377           14 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 388, __FILE__, __LINE__, true);
    1378           14 :                                     return _r;
    1379              :                                   }
    1380            0 : next_after_fail477:;
    1381              :                                 }
    1382              :                               else
    1383              :                                 {
    1384           94 :                                   {
    1385           94 :  gcc_checking_assert (!overflow_p);
    1386           94 :                                       if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail478;
    1387           94 :                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail478;
    1388           94 :                                       {
    1389           94 :                                         tree res_op0;
    1390           94 :                                         res_op0 = captures[0];
    1391           94 :                                         tree res_op1;
    1392           94 :                                         res_op1 =  wide_int_to_tree (itype, icst_val);
    1393           94 :                                         tree _r;
    1394           94 :                                         _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
    1395           94 :                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 389, __FILE__, __LINE__, true);
    1396           94 :                                         return _r;
    1397              :                                       }
    1398            0 : next_after_fail478:;
    1399              :                                   }
    1400              :                                 }
    1401              :                             }
    1402              :                         }
    1403              :                     }
    1404        37933 :               }
    1405              :             }
    1406              :       }
    1407              :     }
    1408              :   return NULL_TREE;
    1409              : }
    1410              : 
    1411              : tree
    1412     29066224 : generic_simplify_279 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1413              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1414              :  const enum tree_code ARG_UNUSED (cmp))
    1415              : {
    1416     29066224 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1417     29066224 :   if (tree_expr_nonzero_p (captures[0])
    1418              : )
    1419              :     {
    1420      1087495 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail511;
    1421      1087495 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail511;
    1422      1087495 :       {
    1423      1087495 :         tree _r;
    1424      1087495 :         _r =  constant_boolean_node (cmp == NE_EXPR, type);
    1425      1087495 :         if (TREE_SIDE_EFFECTS (captures[0]))
    1426         6712 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1427      1087495 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 414, __FILE__, __LINE__, true);
    1428      1087495 :         return _r;
    1429              :       }
    1430              : next_after_fail511:;
    1431              :     }
    1432              :   return NULL_TREE;
    1433              : }
    1434              : 
    1435              : tree
    1436           87 : generic_simplify_284 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1437              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1438              :  const enum tree_code ARG_UNUSED (sgncmp),
    1439              :  const enum tree_code ARG_UNUSED (cmp),
    1440              :  const enum tree_code ARG_UNUSED (ncmp))
    1441              : {
    1442           87 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1443          174 :   if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    1444           87 :  && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
    1445          174 :  && types_match (captures[0], captures[2])
    1446              : )
    1447              :     {
    1448           87 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail516;
    1449           87 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail516;
    1450           87 :       {
    1451           87 :         tree res_op0;
    1452           87 :         {
    1453           87 :           tree _o1[2], _r1;
    1454           87 :           _o1[0] = captures[0];
    1455           87 :           _o1[1] = captures[2];
    1456           87 :           _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1457           87 :           res_op0 = _r1;
    1458              :         }
    1459           87 :         tree res_op1;
    1460           87 :         res_op1 = captures[1];
    1461           87 :         tree _r;
    1462           87 :         _r = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
    1463           87 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 418, __FILE__, __LINE__, true);
    1464           87 :         return _r;
    1465              :       }
    1466              : next_after_fail516:;
    1467              :     }
    1468              :   return NULL_TREE;
    1469              : }
    1470              : 
    1471              : tree
    1472       109819 : generic_simplify_289 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1473              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1474              :  const enum tree_code ARG_UNUSED (cmp))
    1475              : {
    1476       109819 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1477       109819 :   {
    1478       109819 :  poly_int64 off0, off1;
    1479       109819 :  tree base0, base1;
    1480       109819 :  int equal = address_compare (cmp, TREE_TYPE (captures[0]), captures[1], captures[2], base0, base1,
    1481              :  off0, off1,
    1482              : 1
    1483              : );
    1484       109819 :       if (equal == 1
    1485              : )
    1486              :         {
    1487        95555 :           if (cmp == EQ_EXPR && (known_eq (off0, off1) || known_ne (off0, off1))
    1488              : )
    1489              :             {
    1490         7709 :               if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail528;
    1491         7709 :               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail528;
    1492         7709 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail528;
    1493         7709 :               {
    1494         7709 :                 tree _r;
    1495         7709 :                 _r =  constant_boolean_node (known_eq (off0, off1), type);
    1496         7709 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 421, __FILE__, __LINE__, true);
    1497        97371 :                 return _r;
    1498              :               }
    1499        12448 : next_after_fail528:;
    1500              :             }
    1501              :           else
    1502              :             {
    1503        47663 :               if (cmp == NE_EXPR && (known_eq (off0, off1) || known_ne (off0, off1))
    1504              : )
    1505              :                 {
    1506        47663 :                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail529;
    1507        47663 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail529;
    1508        47663 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail529;
    1509        47663 :                   {
    1510        47663 :                     tree _r;
    1511        47663 :                     _r =  constant_boolean_node (known_ne (off0, off1), type);
    1512        47663 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 422, __FILE__, __LINE__, true);
    1513        47663 :                     return _r;
    1514              :                   }
    1515        12448 : next_after_fail529:;
    1516              :                 }
    1517              :               else
    1518              :                 {
    1519        29093 :                   if (cmp == LT_EXPR && (known_lt (off0, off1) || known_ge (off0, off1))
    1520              : )
    1521              :                     {
    1522        29093 :                       if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail530;
    1523        29093 :                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail530;
    1524        29093 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail530;
    1525        29093 :                       {
    1526        29093 :                         tree _r;
    1527        29093 :                         _r =  constant_boolean_node (known_lt (off0, off1), type);
    1528        29093 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 423, __FILE__, __LINE__, true);
    1529        29093 :                         return _r;
    1530              :                       }
    1531        12448 : next_after_fail530:;
    1532              :                     }
    1533              :                   else
    1534              :                     {
    1535          379 :                       if (cmp == LE_EXPR && (known_le (off0, off1) || known_gt (off0, off1))
    1536              : )
    1537              :                         {
    1538          379 :                           if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail531;
    1539          379 :                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail531;
    1540          379 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail531;
    1541          379 :                           {
    1542          379 :                             tree _r;
    1543          379 :                             _r =  constant_boolean_node (known_le (off0, off1), type);
    1544          379 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 424, __FILE__, __LINE__, true);
    1545          379 :                             return _r;
    1546              :                           }
    1547        12448 : next_after_fail531:;
    1548              :                         }
    1549              :                       else
    1550              :                         {
    1551         7144 :                           if (cmp == GE_EXPR && (known_ge (off0, off1) || known_lt (off0, off1))
    1552              : )
    1553              :                             {
    1554         7144 :                               if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail532;
    1555         7144 :                               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail532;
    1556         7144 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail532;
    1557         7144 :                               {
    1558         7144 :                                 tree _r;
    1559         7144 :                                 _r =  constant_boolean_node (known_ge (off0, off1), type);
    1560         7144 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 425, __FILE__, __LINE__, true);
    1561         7144 :                                 return _r;
    1562              :                               }
    1563        12448 : next_after_fail532:;
    1564              :                             }
    1565              :                           else
    1566              :                             {
    1567         3567 :                               if (cmp == GT_EXPR && (known_gt (off0, off1) || known_le (off0, off1))
    1568              : )
    1569              :                                 {
    1570         3567 :                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail533;
    1571         3567 :                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail533;
    1572         3567 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail533;
    1573         3567 :                                   {
    1574         3567 :                                     tree _r;
    1575         3567 :                                     _r =  constant_boolean_node (known_gt (off0, off1), type);
    1576         3567 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 426, __FILE__, __LINE__, true);
    1577         3567 :                                     return _r;
    1578              :                                   }
    1579        12448 : next_after_fail533:;
    1580              :                                 }
    1581              :                             }
    1582              :                         }
    1583              :                     }
    1584              :                 }
    1585              :             }
    1586              :         }
    1587              :       else
    1588              :         {
    1589        14264 :           if (equal == 0
    1590              : )
    1591              :             {
    1592         1816 :               if (cmp == EQ_EXPR
    1593              : )
    1594              :                 {
    1595          888 :                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail534;
    1596          888 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail534;
    1597          888 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail534;
    1598          888 :                   {
    1599          888 :                     tree _r;
    1600          888 :                     _r =  constant_boolean_node (false, type);
    1601          888 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 427, __FILE__, __LINE__, true);
    1602          888 :                     return _r;
    1603              :                   }
    1604        12448 : next_after_fail534:;
    1605              :                 }
    1606              :               else
    1607              :                 {
    1608          928 :                   if (cmp == NE_EXPR
    1609              : )
    1610              :                     {
    1611          928 :                       if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail535;
    1612          928 :                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail535;
    1613          928 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail535;
    1614          928 :                       {
    1615          928 :                         tree _r;
    1616          928 :                         _r =  constant_boolean_node (true, type);
    1617          928 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 428, __FILE__, __LINE__, true);
    1618          928 :                         return _r;
    1619              :                       }
    1620        12448 : next_after_fail535:;
    1621              :                     }
    1622              :                 }
    1623              :             }
    1624              :         }
    1625              :   }
    1626        12448 :   return NULL_TREE;
    1627              : }
    1628              : 
    1629              : tree
    1630        27561 : generic_simplify_304 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1631              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1632              :  const enum tree_code ARG_UNUSED (cmp),
    1633              :  const enum tree_code ARG_UNUSED (icmp),
    1634              :  const enum tree_code ARG_UNUSED (ncmp))
    1635              : {
    1636        27561 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1637        27561 :   if (types_match (type, TREE_TYPE (captures[0]))
    1638              : )
    1639              :     {
    1640        26791 :       {
    1641        26791 :  enum tree_code ic = invert_tree_comparison
    1642        26791 :  (cmp, HONOR_NANS (captures[1]));
    1643        26791 :           if (ic == icmp
    1644              : )
    1645              :             {
    1646        22031 :               if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail569;
    1647        22031 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail569;
    1648        22031 :               {
    1649        22031 :                 tree res_op0;
    1650        22031 :                 res_op0 = captures[1];
    1651        22031 :                 tree res_op1;
    1652        22031 :                 res_op1 = captures[2];
    1653        22031 :                 tree _r;
    1654        22031 :                 _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
    1655        22031 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 462, __FILE__, __LINE__, true);
    1656        22031 :                 return _r;
    1657              :               }
    1658              : next_after_fail569:;
    1659              :             }
    1660              :           else
    1661              :             {
    1662         4760 :               if (ic == ncmp
    1663              : )
    1664              :                 {
    1665            5 :                   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail570;
    1666            5 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail570;
    1667            5 :                   {
    1668            5 :                     tree res_op0;
    1669            5 :                     res_op0 = captures[1];
    1670            5 :                     tree res_op1;
    1671            5 :                     res_op1 = captures[2];
    1672            5 :                     tree _r;
    1673            5 :                     _r = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
    1674            5 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 463, __FILE__, __LINE__, true);
    1675            5 :                     return _r;
    1676              :                   }
    1677              : next_after_fail570:;
    1678              :                 }
    1679              :             }
    1680              :       }
    1681              :     }
    1682              :   return NULL_TREE;
    1683              : }
    1684              : 
    1685              : tree
    1686            7 : generic_simplify_312 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1687              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1688              :  const enum tree_code ARG_UNUSED (div))
    1689              : {
    1690            7 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1691           14 :   if ((TYPE_UNSIGNED (type) || tree_expr_nonnegative_p (captures[0]))
    1692            0 :  && (!VECTOR_TYPE_P (type)
    1693            0 :  || target_supports_op_p (type, RSHIFT_EXPR, optab_vector)
    1694            0 :  || target_supports_op_p (type, RSHIFT_EXPR, optab_scalar))
    1695            7 :  && (useless_type_conversion_p (type, TREE_TYPE (captures[2]))
    1696            0 :  || (element_precision (type) >= element_precision (TREE_TYPE (captures[2]))
    1697            0 :  && (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
    1698            0 :  || (element_precision (type)
    1699            0 :  == element_precision (TREE_TYPE (captures[2])))
    1700            0 :  || (INTEGRAL_TYPE_P (type)
    1701            0 :  && (tree_nonzero_bits (captures[0])
    1702            7 :  & wi::mask (element_precision (TREE_TYPE (captures[2])) - 1,
    1703              :  true,
    1704            7 :  element_precision (type))) == 0))))
    1705              : )
    1706              :     {
    1707            0 :       if (!VECTOR_TYPE_P (type)
    1708            0 :  && useless_type_conversion_p (TREE_TYPE (captures[1]), TREE_TYPE (captures[2]))
    1709            0 :  && element_precision (TREE_TYPE (captures[1])) < element_precision (type)
    1710              : )
    1711              :         {
    1712            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail578;
    1713            0 :           {
    1714            0 :             tree res_op0;
    1715            0 :             {
    1716            0 :               tree _o1[2], _r1;
    1717            0 :               _o1[0] = captures[1];
    1718            0 :               _o1[1] = captures[3];
    1719            0 :               _r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1720            0 :               res_op0 = _r1;
    1721              :             }
    1722            0 :             tree _r;
    1723            0 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    1724            0 :             if (TREE_SIDE_EFFECTS (captures[2]))
    1725            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1726            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 471, __FILE__, __LINE__, true);
    1727            0 :             return _r;
    1728              :           }
    1729            0 : next_after_fail578:;
    1730              :         }
    1731              :       else
    1732              :         {
    1733            0 :           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail579;
    1734            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail579;
    1735            0 :           {
    1736            0 :             tree res_op0;
    1737            0 :             res_op0 = captures[0];
    1738            0 :             tree res_op1;
    1739            0 :             res_op1 = captures[3];
    1740            0 :             tree _r;
    1741            0 :             _r = fold_build2_loc (loc, RSHIFT_EXPR, type, res_op0, res_op1);
    1742            0 :             if (TREE_SIDE_EFFECTS (captures[2]))
    1743            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1744            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 472, __FILE__, __LINE__, true);
    1745            0 :             return _r;
    1746              :           }
    1747              : next_after_fail579:;
    1748              :         }
    1749              :     }
    1750              :   return NULL_TREE;
    1751              : }
    1752              : 
    1753              : tree
    1754          232 : generic_simplify_329 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1755              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1756              :  const enum tree_code ARG_UNUSED (mod))
    1757              : {
    1758          232 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1759          232 :   if (!integer_zerop (captures[0])
    1760              : )
    1761              :     {
    1762           93 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail598;
    1763           93 :       {
    1764           93 :         tree _r;
    1765           93 :         _r =  build_zero_cst (type);
    1766           93 :         if (TREE_SIDE_EFFECTS (captures[0]))
    1767            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1768           93 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 489, __FILE__, __LINE__, true);
    1769           93 :         return _r;
    1770              :       }
    1771            0 : next_after_fail598:;
    1772              :     }
    1773              :   return NULL_TREE;
    1774              : }
    1775              : 
    1776              : tree
    1777            3 : generic_simplify_339 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1778              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1779              :  const combined_fn ARG_UNUSED (TANH),
    1780              :  const combined_fn ARG_UNUSED (SINH),
    1781              :  const combined_fn ARG_UNUSED (COSH))
    1782              : {
    1783            3 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1784            3 :   if (flag_unsafe_math_optimizations && canonicalize_math_p ()
    1785              : )
    1786              :     {
    1787            3 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail610;
    1788            3 :       {
    1789            3 :         tree res_op0;
    1790            3 :         res_op0 = build_one_cst (type);
    1791            3 :         tree res_op1;
    1792            3 :         {
    1793            3 :           tree _o1[1], _r1;
    1794            3 :           _o1[0] = captures[1];
    1795            3 :           _r1 = maybe_build_call_expr_loc (loc, COSH, TREE_TYPE (_o1[0]), 1, _o1[0]);
    1796            3 :           if (!_r1)
    1797            0 :             goto next_after_fail610;
    1798            3 :           res_op1 = _r1;
    1799              :         }
    1800            3 :         tree _r;
    1801            3 :         _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
    1802            3 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 501, __FILE__, __LINE__, true);
    1803            3 :         return _r;
    1804              :       }
    1805              : next_after_fail610:;
    1806              :     }
    1807              :   return NULL_TREE;
    1808              : }
    1809              : 
    1810              : tree
    1811            2 : generic_simplify_347 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1812              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    1813              :  const enum tree_code ARG_UNUSED (cmp),
    1814              :  const enum tree_code ARG_UNUSED (minmax))
    1815              : {
    1816            2 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1817            2 :   {
    1818            2 :  tree_code code = minmax_from_comparison (cmp, captures[0], captures[3], captures[0], captures[1]);
    1819            2 :       if (code == MIN_EXPR
    1820              : )
    1821              :         {
    1822            0 :           if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail621;
    1823            0 :           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail621;
    1824            0 :           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail621;
    1825            0 :           if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail621;
    1826            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail621;
    1827            0 :           {
    1828            0 :             tree res_op0;
    1829            0 :             {
    1830            0 :               tree _o1[2], _r1;
    1831            0 :               _o1[0] = captures[0];
    1832            0 :               _o1[1] = captures[3];
    1833            0 :               _r1 = fold_build2_loc (loc, MIN_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1834            0 :               res_op0 = _r1;
    1835              :             }
    1836            0 :             tree res_op1;
    1837            0 :             res_op1 = captures[2];
    1838            0 :             tree _r;
    1839            0 :             _r = fold_build2_loc (loc, minmax, type, res_op0, res_op1);
    1840            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 512, __FILE__, __LINE__, true);
    1841            0 :             return _r;
    1842              :           }
    1843              : next_after_fail621:;
    1844              :         }
    1845              :       else
    1846              :         {
    1847            2 :           if (code == MAX_EXPR
    1848              : )
    1849              :             {
    1850            2 :               if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail622;
    1851            2 :               if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail622;
    1852            2 :               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail622;
    1853            2 :               if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail622;
    1854            2 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail622;
    1855            2 :               {
    1856            2 :                 tree res_op0;
    1857            2 :                 {
    1858            2 :                   tree _o1[2], _r1;
    1859            2 :                   _o1[0] = captures[0];
    1860            2 :                   _o1[1] = captures[3];
    1861            2 :                   _r1 = fold_build2_loc (loc, MAX_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1862            2 :                   res_op0 = _r1;
    1863              :                 }
    1864            2 :                 tree res_op1;
    1865            2 :                 res_op1 = captures[2];
    1866            2 :                 tree _r;
    1867            2 :                 _r = fold_build2_loc (loc, minmax, type, res_op0, res_op1);
    1868            2 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 513, __FILE__, __LINE__, true);
    1869            2 :                 return _r;
    1870              :               }
    1871              : next_after_fail622:;
    1872              :             }
    1873              :         }
    1874              :   }
    1875              :   return NULL_TREE;
    1876              : }
    1877              : 
    1878              : tree
    1879           36 : generic_simplify_363 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1880              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    1881              :  const enum tree_code ARG_UNUSED (op))
    1882              : {
    1883           36 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1884           36 :   {
    1885           36 :  auto c1 = wi::to_wide (captures[1]);
    1886           36 :  auto c2 = wi::to_wide (captures[2]);
    1887           36 :       if (wi::popcount (c1) == 1
    1888          120 :  && ((op == PLUS_EXPR && wi::eq_p (wi::neg (c2), c1))
    1889           48 :  || (op == BIT_AND_EXPR && wi::eq_p (wi::bit_not (c2), c1)))
    1890              : )
    1891              :         {
    1892           24 :           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail640;
    1893           24 :           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail640;
    1894           24 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail640;
    1895           24 :           {
    1896           24 :             tree res_op0;
    1897           24 :             res_op0 = captures[0];
    1898           24 :             tree res_op1;
    1899           24 :             res_op1 = captures[1];
    1900           24 :             tree _r;
    1901           24 :             _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
    1902           24 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 531, __FILE__, __LINE__, true);
    1903           24 :             return _r;
    1904              :           }
    1905           12 : next_after_fail640:;
    1906              :         }
    1907              :   }
    1908           12 :   return NULL_TREE;
    1909              : }
    1910              : 
    1911              : tree
    1912         1609 : generic_simplify_373 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1913              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
    1914              : {
    1915         1609 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1916         1609 :   if (INTEGRAL_TYPE_P (type)
    1917              : )
    1918              :     {
    1919         1609 :       {
    1920         1609 :  tree itype = TREE_TYPE (captures[2]);
    1921         1609 :           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail651;
    1922         1609 :           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail651;
    1923         1609 :           if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail651;
    1924         1609 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail651;
    1925         1609 :           {
    1926         1609 :             tree res_op0;
    1927         1609 :             {
    1928         1609 :               tree _o1[2], _r1;
    1929         1609 :               _o1[0] = captures[2];
    1930         1609 :               {
    1931         1609 :                 tree _o2[1], _r2;
    1932         1609 :                 _o2[0] = captures[0];
    1933         1609 :                 if (TREE_TYPE (_o2[0]) != itype)
    1934              :                   {
    1935         1608 :                     _r2 = fold_build1_loc (loc, NOP_EXPR, itype, _o2[0]);
    1936              :                   }
    1937              :                 else
    1938              :                   _r2 = _o2[0];
    1939         1609 :                 _o1[1] = _r2;
    1940              :               }
    1941         1609 :               _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1942         1609 :               res_op0 = _r1;
    1943              :             }
    1944         1609 :             tree _r;
    1945         1609 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    1946         1609 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 541, __FILE__, __LINE__, true);
    1947         1609 :             return _r;
    1948              :           }
    1949              : next_after_fail651:;
    1950              :       }
    1951              :     }
    1952              :   return NULL_TREE;
    1953              : }
    1954              : 
    1955              : tree
    1956       475275 : generic_simplify_382 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1957              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1958              :  const enum tree_code ARG_UNUSED (op))
    1959              : {
    1960       475275 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1961       950549 :   if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    1962       950462 :  && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[1]))
    1963       292869 :  && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[1]))
    1964       950506 :  && (CONSTANT_CLASS_P (captures[1]) || single_use (captures[0]))
    1965              : )
    1966              :     {
    1967       292796 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail664;
    1968       292796 :       {
    1969       292796 :         tree res_op0;
    1970       292796 :         res_op0 = captures[1];
    1971       292796 :         tree res_op1;
    1972       292796 :         res_op1 =  build_zero_cst (TREE_TYPE (captures[1]));
    1973       292796 :         tree _r;
    1974       292796 :         _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
    1975       292796 :         if (TREE_SIDE_EFFECTS (captures[2]))
    1976            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1977       292796 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 553, __FILE__, __LINE__, true);
    1978       292796 :         return _r;
    1979              :       }
    1980            0 : next_after_fail664:;
    1981              :     }
    1982              :   return NULL_TREE;
    1983              : }
    1984              : 
    1985              : tree
    1986           64 : generic_simplify_389 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1987              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1988              :  const enum tree_code ARG_UNUSED (minmax),
    1989              :  const enum tree_code ARG_UNUSED (cmp),
    1990              :  const enum tree_code ARG_UNUSED (comb))
    1991              : {
    1992           64 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1993           64 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail672;
    1994           64 :   {
    1995           64 :     if (! tree_invariant_p (captures[2])) goto next_after_fail672;
    1996           64 :     tree res_op0;
    1997           64 :     {
    1998           64 :       tree _o1[2], _r1;
    1999           64 :       _o1[0] = captures[0];
    2000           64 :       _o1[1] = unshare_expr (captures[2]);
    2001           64 :       _r1 = fold_build2_loc (loc, cmp, type, _o1[0], _o1[1]);
    2002           64 :       res_op0 = _r1;
    2003              :     }
    2004           64 :     tree res_op1;
    2005           64 :     {
    2006           64 :       tree _o1[2], _r1;
    2007           64 :       _o1[0] = captures[1];
    2008           64 :       _o1[1] = captures[2];
    2009           64 :       _r1 = fold_build2_loc (loc, cmp, type, _o1[0], _o1[1]);
    2010           64 :       res_op1 = _r1;
    2011              :     }
    2012           64 :     tree _r;
    2013           64 :     _r = fold_build2_loc (loc, comb, type, res_op0, res_op1);
    2014           64 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 561, __FILE__, __LINE__, true);
    2015              :     return _r;
    2016              :   }
    2017              : next_after_fail672:;
    2018              :   return NULL_TREE;
    2019              : }
    2020              : 
    2021              : tree
    2022            0 : generic_simplify_400 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2023              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2024              :  const enum tree_code ARG_UNUSED (cmp),
    2025              :  const enum tree_code ARG_UNUSED (out))
    2026              : {
    2027            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2028            0 :   if (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
    2029            0 :  && types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[2]))
    2030              : )
    2031              :     {
    2032            0 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail715;
    2033            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail715;
    2034            0 :       {
    2035            0 :         tree res_op0;
    2036            0 :         {
    2037            0 :           tree _o1[1], _r1;
    2038            0 :           _o1[0] = captures[0];
    2039            0 :           _r1 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
    2040            0 :           res_op0 = _r1;
    2041              :         }
    2042            0 :         tree res_op1;
    2043            0 :         res_op1 =  build_zero_cst (TREE_TYPE (captures[1]));
    2044            0 :         tree _r;
    2045            0 :         _r = fold_build2_loc (loc, out, type, res_op0, res_op1);
    2046            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 587, __FILE__, __LINE__, true);
    2047            0 :         return _r;
    2048              :       }
    2049              : next_after_fail715:;
    2050              :     }
    2051              :   return NULL_TREE;
    2052              : }
    2053              : 
    2054              : tree
    2055       748827 : generic_simplify_407 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2056              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2057              :  const enum tree_code ARG_UNUSED (cmp),
    2058              :  const enum tree_code ARG_UNUSED (icmp))
    2059              : {
    2060       748827 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2061      1495472 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    2062       748827 :  && TYPE_UNSIGNED (TREE_TYPE (captures[0]))
    2063       330123 :  && TYPE_PRECISION (TREE_TYPE (captures[0])) > 1
    2064      1827777 :  && (wi::to_wide (captures[2])
    2065      1739196 :  == wi::max_value (TYPE_PRECISION (TREE_TYPE (captures[0])), SIGNED) - 1)
    2066              : )
    2067              :     {
    2068         4718 :       {
    2069         4718 :  tree stype = signed_type_for (TREE_TYPE (captures[0]));
    2070         4718 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail729;
    2071         4718 :           {
    2072         4718 :             tree res_op0;
    2073         4718 :             {
    2074         4718 :               tree _o1[1], _r1;
    2075         4718 :               _o1[0] = captures[0];
    2076         4718 :               if (TREE_TYPE (_o1[0]) != stype)
    2077              :                 {
    2078         4718 :                   _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
    2079              :                 }
    2080              :               else
    2081              :                 _r1 = _o1[0];
    2082         4718 :               res_op0 = _r1;
    2083              :             }
    2084         4718 :             tree res_op1;
    2085         4718 :             res_op1 =  build_int_cst (stype, 0);
    2086         4718 :             tree _r;
    2087         4718 :             _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
    2088         4718 :             if (TREE_SIDE_EFFECTS (captures[1]))
    2089            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2090         4718 :             if (TREE_SIDE_EFFECTS (captures[2]))
    2091            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2092         4718 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 601, __FILE__, __LINE__, true);
    2093         4718 :             return _r;
    2094              :           }
    2095            0 : next_after_fail729:;
    2096              :       }
    2097              :     }
    2098              :   return NULL_TREE;
    2099              : }
    2100              : 
    2101              : tree
    2102            0 : generic_simplify_413 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2103              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2104              :  const enum tree_code ARG_UNUSED (cmp),
    2105              :  const enum tree_code ARG_UNUSED (out))
    2106              : {
    2107            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2108            0 :   if (TYPE_UNSIGNED (TREE_TYPE (captures[2])) && !VECTOR_TYPE_P (TREE_TYPE (captures[2]))
    2109              : )
    2110              :     {
    2111            0 :       {
    2112            0 :  tree t = TREE_TYPE (captures[2]), cpx = build_complex_type (t);
    2113            0 :           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail735;
    2114            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail735;
    2115            0 :           {
    2116            0 :             tree res_op0;
    2117            0 :             {
    2118            0 :               tree _o1[1], _r1;
    2119            0 :               {
    2120            0 :                 tree _o2[2], _r2;
    2121            0 :                 _o2[0] = captures[2];
    2122            0 :                 _o2[1] = captures[1];
    2123            0 :                 _r2 = maybe_build_call_expr_loc (loc, CFN_MUL_OVERFLOW, cpx, 2, _o2[0], _o2[1]);
    2124            0 :                 if (!_r2)
    2125            0 :                   goto next_after_fail735;
    2126            0 :                 _o1[0] = _r2;
    2127              :               }
    2128            0 :               _r1 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
    2129            0 :               res_op0 = _r1;
    2130              :             }
    2131            0 :             tree res_op1;
    2132            0 :             res_op1 =  build_zero_cst (t);
    2133            0 :             tree _r;
    2134            0 :             _r = fold_build2_loc (loc, out, type, res_op0, res_op1);
    2135            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 589, __FILE__, __LINE__, true);
    2136            0 :             return _r;
    2137              :           }
    2138              : next_after_fail735:;
    2139              :       }
    2140              :     }
    2141              :   return NULL_TREE;
    2142              : }
    2143              : 
    2144              : tree
    2145      1640834 : generic_simplify_419 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2146              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2147              :  const enum tree_code ARG_UNUSED (shift))
    2148              : {
    2149      1640834 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2150      1640834 :   if ((
    2151              : 
    2152      1640834 :  || !sanitize_flags_p (SANITIZE_SHIFT_EXPONENT))
    2153      1638884 :  && (TYPE_UNSIGNED (type)
    2154       395038 :  || shift == LSHIFT_EXPR
    2155       200887 :  || tree_expr_nonnegative_p (captures[0]))
    2156      3080820 :  && wi::ges_p (wi::to_wide (uniform_integer_cst_p (captures[1])),
    2157      3079598 :  element_precision (type))
    2158              : )
    2159              :     {
    2160         1222 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail745;
    2161         1222 :       {
    2162         1222 :         tree _r;
    2163         1222 :         _r =  build_zero_cst (type);
    2164         1222 :         if (TREE_SIDE_EFFECTS (captures[0]))
    2165            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    2166         1222 :         if (TREE_SIDE_EFFECTS (captures[1]))
    2167            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2168         1222 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 613, __FILE__, __LINE__, true);
    2169         1222 :         return _r;
    2170              :       }
    2171            0 : next_after_fail745:;
    2172              :     }
    2173              :   return NULL_TREE;
    2174              : }
    2175              : 
    2176              : tree
    2177           67 : generic_simplify_428 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2178              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    2179              : {
    2180           67 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2181           67 :   if (wi::ltu_p (wi::to_wide (captures[1]), element_precision (type))
    2182              : )
    2183              :     {
    2184           67 :       if (TYPE_UNSIGNED (type)
    2185              : )
    2186              :         {
    2187            2 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail757;
    2188            2 :           {
    2189            2 :             tree res_op0;
    2190            2 :             {
    2191            2 :               tree _o1[1], _r1;
    2192            2 :               _o1[0] = captures[0];
    2193            2 :               if (TREE_TYPE (_o1[0]) != type)
    2194              :                 {
    2195            0 :                   _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    2196              :                 }
    2197              :               else
    2198              :                 _r1 = _o1[0];
    2199            2 :               res_op0 = _r1;
    2200              :             }
    2201            2 :             tree res_op1;
    2202            2 :             {
    2203            2 :               tree _o1[2], _r1;
    2204            2 :               _o1[0] =  build_minus_one_cst (type);
    2205            2 :               _o1[1] = captures[1];
    2206            2 :               _r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2207            2 :               res_op1 = _r1;
    2208              :             }
    2209            2 :             tree _r;
    2210            2 :             _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    2211            2 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 623, __FILE__, __LINE__, true);
    2212            2 :             return _r;
    2213              :           }
    2214            0 : next_after_fail757:;
    2215              :         }
    2216              :       else
    2217              :         {
    2218           65 :           if (INTEGRAL_TYPE_P (type)
    2219              : )
    2220              :             {
    2221           65 :               {
    2222           65 :  int width = element_precision (type) - tree_to_uhwi (captures[1]);
    2223           65 :  tree stype = NULL_TREE;
    2224          130 :  if (width <= MAX_FIXED_MODE_SIZE)
    2225           65 :  stype = build_nonstandard_integer_type (width, 0);
    2226           65 :                   if (stype && (width == 1 || type_has_mode_precision_p (stype))
    2227              : )
    2228              :                     {
    2229           25 :                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail758;
    2230           25 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail758;
    2231           25 :                       {
    2232           25 :                         tree res_op0;
    2233           25 :                         {
    2234           25 :                           tree _o1[1], _r1;
    2235           25 :                           _o1[0] = captures[0];
    2236           25 :                           if (TREE_TYPE (_o1[0]) != stype)
    2237              :                             {
    2238           25 :                               _r1 = fold_build1_loc (loc, NOP_EXPR, stype, _o1[0]);
    2239              :                             }
    2240              :                           else
    2241              :                             _r1 = _o1[0];
    2242           25 :                           res_op0 = _r1;
    2243              :                         }
    2244           25 :                         tree _r;
    2245           25 :                         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    2246           25 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 624, __FILE__, __LINE__, true);
    2247           25 :                         return _r;
    2248              :                       }
    2249              : next_after_fail758:;
    2250              :                     }
    2251              :               }
    2252              :             }
    2253              :         }
    2254              :     }
    2255              :   return NULL_TREE;
    2256              : }
    2257              : 
    2258              : tree
    2259       804907 : generic_simplify_435 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2260              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    2261              :  const enum tree_code ARG_UNUSED (op))
    2262              : {
    2263       804907 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2264       804907 :   if (INTEGRAL_TYPE_P (type)
    2265       706039 :  && op != MULT_EXPR
    2266       706039 :  && op != RDIV_EXPR
    2267       372223 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
    2268       313269 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    2269       313269 :  && type_has_mode_precision_p (TREE_TYPE (captures[2]))
    2270       267513 :  && type_has_mode_precision_p (TREE_TYPE (captures[4]))
    2271       267230 :  && type_has_mode_precision_p (type)
    2272       267208 :  && TYPE_PRECISION (TREE_TYPE (captures[1])) > TYPE_PRECISION (TREE_TYPE (captures[2]))
    2273        22561 :  && types_match (captures[2], type)
    2274       807514 :  && (types_match (captures[2], captures[4])
    2275         2538 :  || poly_int_tree_p (captures[3]))
    2276              : )
    2277              :     {
    2278           69 :       if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2]))
    2279              : )
    2280              :         {
    2281           15 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail770;
    2282           15 :           {
    2283           15 :             tree res_op0;
    2284           15 :             res_op0 = captures[2];
    2285           15 :             tree res_op1;
    2286           15 :             {
    2287           15 :               tree _o1[1], _r1;
    2288           15 :               _o1[0] = captures[4];
    2289           15 :               if (TREE_TYPE (_o1[0]) != type)
    2290              :                 {
    2291            0 :                   _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    2292              :                 }
    2293              :               else
    2294              :                 _r1 = _o1[0];
    2295           15 :               res_op1 = _r1;
    2296              :             }
    2297           15 :             tree _r;
    2298           15 :             _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
    2299           15 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 636, __FILE__, __LINE__, true);
    2300           15 :             return _r;
    2301              :           }
    2302            0 : next_after_fail770:;
    2303              :         }
    2304              :       else
    2305              :         {
    2306           54 :           {
    2307           54 :  tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
    2308           54 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail771;
    2309           54 :               {
    2310           54 :                 tree res_op0;
    2311           54 :                 {
    2312           54 :                   tree _o1[2], _r1;
    2313           54 :                   {
    2314           54 :                     tree _o2[1], _r2;
    2315           54 :                     _o2[0] = captures[2];
    2316           54 :                     if (TREE_TYPE (_o2[0]) != utype)
    2317              :                       {
    2318           54 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
    2319              :                       }
    2320              :                     else
    2321              :                       _r2 = _o2[0];
    2322           54 :                     _o1[0] = _r2;
    2323              :                   }
    2324           54 :                   {
    2325           54 :                     tree _o2[1], _r2;
    2326           54 :                     _o2[0] = captures[4];
    2327           54 :                     if (TREE_TYPE (_o2[0]) != utype)
    2328              :                       {
    2329           54 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
    2330              :                       }
    2331              :                     else
    2332              :                       _r2 = _o2[0];
    2333           54 :                     _o1[1] = _r2;
    2334              :                   }
    2335           54 :                   _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2336           54 :                   res_op0 = _r1;
    2337              :                 }
    2338           54 :                 tree _r;
    2339           54 :                 _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    2340           54 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 637, __FILE__, __LINE__, true);
    2341           54 :                 return _r;
    2342              :               }
    2343            0 : next_after_fail771:;
    2344              :           }
    2345              :         }
    2346              :     }
    2347              :   else
    2348              :     {
    2349       794262 :       if (FLOAT_TYPE_P (type)
    2350       815414 :  && DECIMAL_FLOAT_TYPE_P (TREE_TYPE (captures[0]))
    2351        10576 :  == DECIMAL_FLOAT_TYPE_P (type)
    2352              : )
    2353              :         {
    2354        10553 :           {
    2355        10553 :  tree arg0 = strip_float_extensions (captures[2]);
    2356        10553 :  tree arg1 = strip_float_extensions (captures[4]);
    2357        10553 :  tree itype = TREE_TYPE (captures[0]);
    2358        10553 :  tree ty1 = TREE_TYPE (arg0);
    2359        10553 :  tree ty2 = TREE_TYPE (arg1);
    2360        10553 :  enum tree_code code = TREE_CODE (itype);
    2361            0 :               if (FLOAT_TYPE_P (ty1)
    2362        10553 :  && FLOAT_TYPE_P (ty2)
    2363              : )
    2364              :                 {
    2365        10553 :                   {
    2366        10553 :  tree newtype = type;
    2367        10553 :  if (TYPE_MODE (ty1) == SDmode
    2368        10544 :  || TYPE_MODE (ty2) == SDmode
    2369        21097 :  || TYPE_MODE (type) == SDmode)
    2370            9 :  newtype = dfloat32_type_node;
    2371        10553 :  if (TYPE_MODE (ty1) == DDmode
    2372        10547 :  || TYPE_MODE (ty2) == DDmode
    2373        21100 :  || TYPE_MODE (type) == DDmode)
    2374            6 :  newtype = dfloat64_type_node;
    2375        10553 :  if (TYPE_MODE (ty1) == TDmode
    2376        10553 :  || TYPE_MODE (ty2) == TDmode
    2377        21106 :  || TYPE_MODE (type) == TDmode)
    2378           15 :  newtype = dfloat128_type_node;
    2379        10553 :                       if ((newtype == dfloat32_type_node
    2380        10553 :  || newtype == dfloat64_type_node
    2381        10553 :  || newtype == dfloat128_type_node)
    2382           15 :  && newtype == type
    2383        10559 :  && types_match (newtype, type)
    2384              : )
    2385              :                         {
    2386            6 :                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail772;
    2387            0 :                           if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail772;
    2388            0 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail772;
    2389            0 :                           {
    2390            0 :                             tree res_op0;
    2391            0 :                             {
    2392            0 :                               tree _o1[1], _r1;
    2393            0 :                               _o1[0] = captures[2];
    2394            0 :                               if (TREE_TYPE (_o1[0]) != newtype)
    2395              :                                 {
    2396            0 :                                   _r1 = fold_build1_loc (loc, NOP_EXPR, newtype, _o1[0]);
    2397              :                                 }
    2398              :                               else
    2399              :                                 _r1 = _o1[0];
    2400            0 :                               res_op0 = _r1;
    2401              :                             }
    2402            0 :                             tree res_op1;
    2403            0 :                             {
    2404            0 :                               tree _o1[1], _r1;
    2405            0 :                               _o1[0] = captures[4];
    2406            0 :                               if (TREE_TYPE (_o1[0]) != newtype)
    2407              :                                 {
    2408            0 :                                   _r1 = fold_build1_loc (loc, NOP_EXPR, newtype, _o1[0]);
    2409              :                                 }
    2410              :                               else
    2411              :                                 _r1 = _o1[0];
    2412            0 :                               res_op1 = _r1;
    2413              :                             }
    2414            0 :                             tree _r;
    2415            0 :                             _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
    2416            0 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 638, __FILE__, __LINE__, true);
    2417            0 :                             return _r;
    2418              :                           }
    2419              : next_after_fail772:;
    2420              :                         }
    2421              :                       else
    2422              :                         {
    2423        10547 :                           {
    2424        10547 :  if (element_precision (ty1) > element_precision (newtype))
    2425            4 :  newtype = ty1;
    2426        10547 :  if (element_precision (ty2) > element_precision (newtype))
    2427            2 :  newtype = ty2;
    2428        10547 :                               if (element_precision (newtype) < element_precision (itype)
    2429        10302 :  && (!VECTOR_MODE_P (TYPE_MODE (newtype))
    2430            0 :  || target_supports_op_p (newtype, op, optab_default))
    2431        10302 :  && (flag_unsafe_math_optimizations
    2432        10285 :  || (element_precision (newtype) == element_precision (type)
    2433        10281 :  && real_can_shorten_arithmetic (element_mode (itype),
    2434              :  element_mode (type))
    2435         3460 :  && !excess_precision_type (newtype)))
    2436        10572 :  && !types_match (itype, newtype)
    2437              : )
    2438              :                                 {
    2439           25 :                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail773;
    2440           25 :                                   if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail773;
    2441           17 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail773;
    2442           17 :                                   {
    2443           17 :                                     tree res_op0;
    2444           17 :                                     {
    2445           17 :                                       tree _o1[2], _r1;
    2446           17 :                                       {
    2447           17 :                                         tree _o2[1], _r2;
    2448           17 :                                         _o2[0] = captures[2];
    2449           17 :                                         if (TREE_TYPE (_o2[0]) != newtype)
    2450              :                                           {
    2451            0 :                                             _r2 = fold_build1_loc (loc, NOP_EXPR, newtype, _o2[0]);
    2452              :                                           }
    2453              :                                         else
    2454              :                                           _r2 = _o2[0];
    2455           17 :                                         _o1[0] = _r2;
    2456              :                                       }
    2457           17 :                                       {
    2458           17 :                                         tree _o2[1], _r2;
    2459           17 :                                         _o2[0] = captures[4];
    2460           17 :                                         if (TREE_TYPE (_o2[0]) != newtype)
    2461              :                                           {
    2462            0 :                                             _r2 = fold_build1_loc (loc, NOP_EXPR, newtype, _o2[0]);
    2463              :                                           }
    2464              :                                         else
    2465              :                                           _r2 = _o2[0];
    2466           17 :                                         _o1[1] = _r2;
    2467              :                                       }
    2468           17 :                                       _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2469           17 :                                       res_op0 = _r1;
    2470              :                                     }
    2471           17 :                                     tree _r;
    2472           17 :                                     _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    2473           17 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 639, __FILE__, __LINE__, true);
    2474           17 :                                     return _r;
    2475              :                                   }
    2476              : next_after_fail773:;
    2477              :                                 }
    2478              :                           }
    2479              :                         }
    2480              :                   }
    2481              :                 }
    2482              :           }
    2483              :         }
    2484              :     }
    2485              :   return NULL_TREE;
    2486              : }
    2487              : 
    2488              : tree
    2489          104 : generic_simplify_466 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2490              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    2491              : {
    2492          104 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2493          104 :   {
    2494          104 :  bool wascmp;
    2495          104 :       if (bitwise_inverted_equal_p (captures[0], captures[2], wascmp)
    2496          104 :  && (!wascmp || element_precision (type) == 1)
    2497              : )
    2498              :         {
    2499            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail813;
    2500            0 :           {
    2501            0 :             tree res_op0;
    2502            0 :             res_op0 = captures[0];
    2503            0 :             tree res_op1;
    2504            0 :             res_op1 = captures[1];
    2505            0 :             tree _r;
    2506            0 :             _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    2507            0 :             if (TREE_SIDE_EFFECTS (captures[2]))
    2508            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2509            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 666, __FILE__, __LINE__, true);
    2510            0 :             return _r;
    2511              :           }
    2512            0 : next_after_fail813:;
    2513              :         }
    2514              :   }
    2515          104 :   return NULL_TREE;
    2516              : }
    2517              : 
    2518              : tree
    2519            8 : generic_simplify_474 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2520              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2521              :  const enum tree_code ARG_UNUSED (eqne))
    2522              : {
    2523            8 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2524            8 :   if (eqne == EQ_EXPR
    2525              : )
    2526              :     {
    2527            4 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail822;
    2528            4 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail822;
    2529            4 :       {
    2530            4 :         tree _r;
    2531            4 :         _r =  constant_boolean_node (false, type);
    2532            4 :         if (TREE_SIDE_EFFECTS (captures[2]))
    2533            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2534            4 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 674, __FILE__, __LINE__, true);
    2535            4 :         return _r;
    2536              :       }
    2537              : next_after_fail822:;
    2538              :     }
    2539              :   else
    2540              :     {
    2541            4 :       if (eqne == NE_EXPR
    2542              : )
    2543              :         {
    2544            4 :           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail823;
    2545            4 :           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail823;
    2546            4 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail823;
    2547            4 :           {
    2548            4 :             tree _r;
    2549            4 :             _r = captures[0];
    2550            4 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 675, __FILE__, __LINE__, true);
    2551            4 :             return _r;
    2552              :           }
    2553              : next_after_fail823:;
    2554              :         }
    2555              :     }
    2556              :   return NULL_TREE;
    2557              : }
    2558              : 
    2559              : tree
    2560            4 : generic_simplify_485 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2561              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    2562              : {
    2563            4 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2564            4 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail866;
    2565            4 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail866;
    2566            4 :   {
    2567            4 :     tree _r;
    2568            4 :     _r = captures[2];
    2569            4 :     if (TREE_SIDE_EFFECTS (captures[1]))
    2570            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2571            4 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 690, __FILE__, __LINE__, true);
    2572              :     return _r;
    2573              :   }
    2574              : next_after_fail866:;
    2575              :   return NULL_TREE;
    2576              : }
    2577              : 
    2578              : tree
    2579        30873 : generic_simplify_489 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2580              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2581              :  const enum tree_code ARG_UNUSED (shift))
    2582              : {
    2583        30873 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2584        30873 :   if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
    2585        30873 :  && TYPE_PRECISION (type) <= HOST_BITS_PER_WIDE_INT
    2586        30873 :  && tree_fits_uhwi_p (captures[4])
    2587        30873 :  && tree_to_uhwi (captures[4]) > 0
    2588        61745 :  && tree_to_uhwi (captures[4]) < TYPE_PRECISION (type)
    2589              : )
    2590              :     {
    2591        30872 :       {
    2592        30872 :  unsigned int shiftc = tree_to_uhwi (captures[4]);
    2593        30872 :  unsigned HOST_WIDE_INT mask = TREE_INT_CST_LOW (captures[5]);
    2594        30872 :  unsigned HOST_WIDE_INT newmask, zerobits = 0;
    2595        30872 :  tree shift_type = TREE_TYPE (captures[2]);
    2596        30872 :  unsigned int prec;
    2597        30872 :  if (shift == LSHIFT_EXPR)
    2598         5090 :  zerobits = ((HOST_WIDE_INT_1U << shiftc) - 1);
    2599        25782 :  else if (shift == RSHIFT_EXPR
    2600        25782 :  && type_has_mode_precision_p (shift_type))
    2601              :  {
    2602        25782 :  prec = TYPE_PRECISION (TREE_TYPE (captures[2]));
    2603        25782 :  tree arg00 = captures[3];
    2604        25782 :  if (captures[2] != captures[3]
    2605        25782 :  && TYPE_UNSIGNED (TREE_TYPE (captures[3])))
    2606              :  {
    2607        25524 :  tree inner_type = TREE_TYPE (captures[3]);
    2608        25524 :  if (type_has_mode_precision_p (inner_type)
    2609        25524 :  && TYPE_PRECISION (inner_type) < prec)
    2610              :  {
    2611          270 :  prec = TYPE_PRECISION (inner_type);
    2612          270 :  if (shiftc < prec)
    2613          269 :  shift_type = inner_type;
    2614              :  }
    2615              :  }
    2616        25782 :  zerobits = HOST_WIDE_INT_M1U;
    2617        25782 :  if (shiftc < prec)
    2618              :  {
    2619        25781 :  zerobits >>= HOST_BITS_PER_WIDE_INT - shiftc;
    2620        25781 :  zerobits <<= prec - shiftc;
    2621              :  }
    2622        25782 :  if (!TYPE_UNSIGNED (TREE_TYPE (captures[2]))
    2623        25782 :  && prec == TYPE_PRECISION (TREE_TYPE (captures[2])))
    2624              :  {
    2625          824 :  if ((mask & zerobits) == 0)
    2626          817 :  shift_type = unsigned_type_for (TREE_TYPE (captures[2]));
    2627              :  else
    2628              :  zerobits = 0;
    2629              :  }
    2630              :  }
    2631        30865 :           if ((mask & zerobits) == mask
    2632              : )
    2633              :             {
    2634            1 :               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail870;
    2635            1 :               if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail870;
    2636            1 :               if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail870;
    2637            1 :               if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail870;
    2638            1 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail870;
    2639            1 :               {
    2640            1 :                 tree _r;
    2641            1 :                 _r =  build_int_cst (type, 0);
    2642            1 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 694, __FILE__, __LINE__, true);
    2643            1 :                 return _r;
    2644              :               }
    2645              : next_after_fail870:;
    2646              :             }
    2647              :           else
    2648              :             {
    2649        30871 :               {
    2650        30871 :  newmask = mask | zerobits;
    2651        30871 :                   if (newmask != mask && (newmask & (newmask + 1)) == 0
    2652              : )
    2653              :                     {
    2654              :                       {
    2655         6928 :  for (prec = BITS_PER_UNIT;
    2656        10484 :  prec < HOST_BITS_PER_WIDE_INT; prec <<= 1)
    2657         8436 :  if (newmask == (HOST_WIDE_INT_1U << prec) - 1)
    2658              :  break;
    2659         3556 :                           if (prec < HOST_BITS_PER_WIDE_INT
    2660         2048 :  || newmask == HOST_WIDE_INT_M1U
    2661              : )
    2662              :                             {
    2663         1914 :                               {
    2664         1914 :  tree newmaskt = build_int_cst_type (TREE_TYPE (captures[5]), newmask);
    2665         1914 :                                   if (!tree_int_cst_equal (newmaskt, captures[5])
    2666              : )
    2667              :                                     {
    2668         1914 :                                       if (shift_type != TREE_TYPE (captures[2])
    2669              : )
    2670              :                                         {
    2671           96 :                                           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail871;
    2672           96 :                                           if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail871;
    2673           96 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail871;
    2674           96 :                                           {
    2675           96 :                                             tree res_op0;
    2676           96 :                                             {
    2677           96 :                                               tree _o1[1], _r1;
    2678           96 :                                               {
    2679           96 :                                                 tree _o2[2], _r2;
    2680           96 :                                                 {
    2681           96 :                                                   tree _o3[1], _r3;
    2682           96 :                                                   _o3[0] = captures[2];
    2683           96 :                                                   if (TREE_TYPE (_o3[0]) != shift_type)
    2684              :                                                     {
    2685           96 :                                                       _r3 = fold_build1_loc (loc, NOP_EXPR, shift_type, _o3[0]);
    2686              :                                                     }
    2687              :                                                   else
    2688              :                                                     _r3 = _o3[0];
    2689           96 :                                                   _o2[0] = _r3;
    2690              :                                                 }
    2691           96 :                                                 _o2[1] = captures[4];
    2692           96 :                                                 _r2 = fold_build2_loc (loc, shift, shift_type, _o2[0], _o2[1]);
    2693           96 :                                                 _o1[0] = _r2;
    2694              :                                               }
    2695           96 :                                               if (TREE_TYPE (_o1[0]) != type)
    2696              :                                                 {
    2697           96 :                                                   _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    2698              :                                                 }
    2699              :                                               else
    2700              :                                                 _r1 = _o1[0];
    2701           96 :                                               res_op0 = _r1;
    2702              :                                             }
    2703           96 :                                             tree res_op1;
    2704           96 :                                             res_op1 =  newmaskt;
    2705           96 :                                             tree _r;
    2706           96 :                                             _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    2707           96 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 695, __FILE__, __LINE__, true);
    2708           96 :                                             return _r;
    2709              :                                           }
    2710              : next_after_fail871:;
    2711              :                                         }
    2712              :                                       else
    2713              :                                         {
    2714         1818 :                                           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail872;
    2715          883 :                                           if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail872;
    2716          883 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail872;
    2717          883 :                                           {
    2718          883 :                                             tree res_op0;
    2719          883 :                                             res_op0 = captures[0];
    2720          883 :                                             tree res_op1;
    2721          883 :                                             res_op1 =  newmaskt;
    2722          883 :                                             tree _r;
    2723          883 :                                             _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    2724          883 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 696, __FILE__, __LINE__, true);
    2725          883 :                                             return _r;
    2726              :                                           }
    2727              : next_after_fail872:;
    2728              :                                         }
    2729              :                                     }
    2730              :                               }
    2731              :                             }
    2732              :                       }
    2733              :                     }
    2734              :               }
    2735              :             }
    2736              :       }
    2737              :     }
    2738              :   return NULL_TREE;
    2739              : }
    2740              : 
    2741              : tree
    2742       415671 : generic_simplify_498 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2743              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2744              :  const enum tree_code ARG_UNUSED (op))
    2745              : {
    2746       415671 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2747       831342 :   if (INTEGRAL_TYPE_P (type)
    2748       415671 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
    2749        68227 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    2750        68227 :  && type_has_mode_precision_p (TREE_TYPE (captures[2]))
    2751        68227 :  && type_has_mode_precision_p (TREE_TYPE (captures[4]))
    2752        68227 :  && type_has_mode_precision_p (type)
    2753        68227 :  && TYPE_PRECISION (TREE_TYPE (captures[1])) > TYPE_PRECISION (TREE_TYPE (captures[2]))
    2754           33 :  && types_match (captures[2], captures[4])
    2755           33 :  && (tree_int_cst_min_precision (captures[5], TYPE_SIGN (TREE_TYPE (captures[2])))
    2756           33 :  <= TYPE_PRECISION (TREE_TYPE (captures[2])))
    2757       415698 :  && (wi::to_wide (captures[5])
    2758       415725 :  & wi::mask (TYPE_PRECISION (TREE_TYPE (captures[2])),
    2759       415725 :  true, TYPE_PRECISION (type))) == 0
    2760              : )
    2761              :     {
    2762           25 :       if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[2]))
    2763              : )
    2764              :         {
    2765           12 :           {
    2766           12 :  tree ntype = TREE_TYPE (captures[2]);
    2767           12 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail888;
    2768           12 :               {
    2769           12 :                 tree res_op0;
    2770           12 :                 {
    2771           12 :                   tree _o1[2], _r1;
    2772           12 :                   {
    2773           12 :                     tree _o2[2], _r2;
    2774           12 :                     _o2[0] = captures[2];
    2775           12 :                     _o2[1] = captures[4];
    2776           12 :                     _r2 = fold_build2_loc (loc, op, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    2777           12 :                     _o1[0] = _r2;
    2778              :                   }
    2779           12 :                   {
    2780           12 :                     tree _o2[1], _r2;
    2781           12 :                     _o2[0] = captures[5];
    2782           12 :                     if (TREE_TYPE (_o2[0]) != ntype)
    2783              :                       {
    2784           12 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, ntype, _o2[0]);
    2785              :                       }
    2786              :                     else
    2787              :                       _r2 = _o2[0];
    2788           12 :                     _o1[1] = _r2;
    2789              :                   }
    2790           12 :                   _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2791           12 :                   res_op0 = _r1;
    2792              :                 }
    2793           12 :                 tree _r;
    2794           12 :                 _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    2795           12 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 702, __FILE__, __LINE__, true);
    2796           12 :                 return _r;
    2797              :               }
    2798            0 : next_after_fail888:;
    2799              :           }
    2800              :         }
    2801              :       else
    2802              :         {
    2803           13 :           {
    2804           13 :  tree utype = unsigned_type_for (TREE_TYPE (captures[2]));
    2805           13 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail889;
    2806           13 :               {
    2807           13 :                 tree res_op0;
    2808           13 :                 {
    2809           13 :                   tree _o1[2], _r1;
    2810           13 :                   {
    2811           13 :                     tree _o2[2], _r2;
    2812           13 :                     {
    2813           13 :                       tree _o3[1], _r3;
    2814           13 :                       _o3[0] = captures[2];
    2815           13 :                       if (TREE_TYPE (_o3[0]) != utype)
    2816              :                         {
    2817           13 :                           _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
    2818              :                         }
    2819              :                       else
    2820              :                         _r3 = _o3[0];
    2821           13 :                       _o2[0] = _r3;
    2822              :                     }
    2823           13 :                     {
    2824           13 :                       tree _o3[1], _r3;
    2825           13 :                       _o3[0] = captures[4];
    2826           13 :                       if (TREE_TYPE (_o3[0]) != utype)
    2827              :                         {
    2828           13 :                           _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
    2829              :                         }
    2830              :                       else
    2831              :                         _r3 = _o3[0];
    2832           13 :                       _o2[1] = _r3;
    2833              :                     }
    2834           13 :                     _r2 = fold_build2_loc (loc, op, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    2835           13 :                     _o1[0] = _r2;
    2836              :                   }
    2837           13 :                   {
    2838           13 :                     tree _o2[1], _r2;
    2839           13 :                     _o2[0] = captures[5];
    2840           13 :                     if (TREE_TYPE (_o2[0]) != utype)
    2841              :                       {
    2842           13 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
    2843              :                       }
    2844              :                     else
    2845              :                       _r2 = _o2[0];
    2846           13 :                     _o1[1] = _r2;
    2847              :                   }
    2848           13 :                   _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2849           13 :                   res_op0 = _r1;
    2850              :                 }
    2851           13 :                 tree _r;
    2852           13 :                 _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    2853           13 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 703, __FILE__, __LINE__, true);
    2854           13 :                 return _r;
    2855              :               }
    2856            0 : next_after_fail889:;
    2857              :           }
    2858              :         }
    2859              :     }
    2860              :   return NULL_TREE;
    2861              : }
    2862              : 
    2863              : tree
    2864            0 : generic_simplify_529 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2865              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2866              :  const enum tree_code ARG_UNUSED (minmax))
    2867              : {
    2868            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2869            0 :   if (TYPE_UNSIGNED(type)
    2870              : )
    2871              :     {
    2872            0 :       if (minmax == MIN_EXPR
    2873              : )
    2874              :         {
    2875            0 :           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail923;
    2876            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail923;
    2877            0 :           {
    2878            0 :             tree _r;
    2879            0 :             _r = captures[1];
    2880            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 734, __FILE__, __LINE__, true);
    2881            0 :             return _r;
    2882              :           }
    2883              : next_after_fail923:;
    2884              :         }
    2885              :       else
    2886              :         {
    2887            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail924;
    2888            0 :           {
    2889            0 :             tree _r;
    2890            0 :             _r = captures[0];
    2891            0 :             if (TREE_SIDE_EFFECTS (captures[2]))
    2892            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2893            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 735, __FILE__, __LINE__, true);
    2894            0 :             return _r;
    2895              :           }
    2896            0 : next_after_fail924:;
    2897              :         }
    2898              :     }
    2899              :   return NULL_TREE;
    2900              : }
    2901              : 
    2902              : tree
    2903            2 : generic_simplify_537 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2904              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    2905              : {
    2906            2 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2907            2 :   if (TREE_CODE (type) != COMPLEX_TYPE
    2908            2 :  && (! ANY_INTEGRAL_TYPE_P (type)
    2909            1 :  || TYPE_OVERFLOW_UNDEFINED (type))
    2910              : )
    2911              :     {
    2912            2 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail944;
    2913            2 :       {
    2914            2 :         tree res_op0;
    2915            2 :         res_op0 = captures[0];
    2916            2 :         tree _r;
    2917            2 :         _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
    2918            2 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 743, __FILE__, __LINE__, true);
    2919            2 :         return _r;
    2920              :       }
    2921            0 : next_after_fail944:;
    2922              :     }
    2923              :   return NULL_TREE;
    2924              : }
    2925              : 
    2926              : tree
    2927           12 : generic_simplify_544 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2928              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    2929              :  const enum tree_code ARG_UNUSED (op))
    2930              : {
    2931           12 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2932           12 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail951;
    2933           12 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail951;
    2934           12 :   {
    2935           12 :     tree _r;
    2936           12 :     _r = captures[2];
    2937           12 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 534, __FILE__, __LINE__, true);
    2938              :     return _r;
    2939              :   }
    2940              : next_after_fail951:;
    2941              :   return NULL_TREE;
    2942              : }
    2943              : 
    2944              : tree
    2945            0 : generic_simplify_550 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2946              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    2947              :  const combined_fn ARG_UNUSED (cond_op))
    2948              : {
    2949            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2950            0 :   {
    2951            0 :  tree op_type = TREE_TYPE (captures[6]);
    2952            0 :       if (inverse_conditions_p (captures[0], captures[2])
    2953            0 :  && element_precision (type) == element_precision (op_type)
    2954              : )
    2955              :         {
    2956            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail957;
    2957            0 :           {
    2958            0 :             tree res_op0;
    2959            0 :             {
    2960            0 :               tree _o1[5], _r1;
    2961            0 :               _o1[0] = captures[2];
    2962            0 :               _o1[1] = captures[3];
    2963            0 :               _o1[2] = captures[4];
    2964            0 :               _o1[3] = captures[5];
    2965            0 :               {
    2966            0 :                 tree _o2[1], _r2;
    2967            0 :                 _o2[0] = captures[1];
    2968            0 :                 if (TREE_TYPE (_o2[0]) != op_type)
    2969              :                   {
    2970            0 :                     _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, op_type, _o2[0]);
    2971              :                   }
    2972              :                 else
    2973              :                   _r2 = _o2[0];
    2974            0 :                 _o1[4] = _r2;
    2975              :               }
    2976            0 :               _r1 = maybe_build_call_expr_loc (loc, cond_op, TREE_TYPE (_o1[1]), 5, _o1[0], _o1[1], _o1[2], _o1[3], _o1[4]);
    2977            0 :               if (!_r1)
    2978            0 :                 goto next_after_fail957;
    2979            0 :               res_op0 = _r1;
    2980              :             }
    2981            0 :             tree _r;
    2982            0 :             _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
    2983            0 :             if (TREE_SIDE_EFFECTS (captures[0]))
    2984            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    2985            0 :             if (TREE_SIDE_EFFECTS (captures[6]))
    2986            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[6]), _r);
    2987            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 751, __FILE__, __LINE__, true);
    2988            0 :             return _r;
    2989              :           }
    2990              : next_after_fail957:;
    2991              :         }
    2992              :   }
    2993              :   return NULL_TREE;
    2994              : }
    2995              : 
    2996              : tree
    2997            0 : generic_simplify_563 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2998              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    2999              :  const enum tree_code ARG_UNUSED (bitop),
    3000              :  const combined_fn ARG_UNUSED (bswap))
    3001              : {
    3002            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3003            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail973;
    3004            0 :   {
    3005            0 :     tree res_op0;
    3006            0 :     res_op0 = captures[0];
    3007            0 :     tree res_op1;
    3008            0 :     {
    3009            0 :       tree _o1[1], _r1;
    3010            0 :       _o1[0] = captures[1];
    3011            0 :       _r1 = maybe_build_call_expr_loc (loc, bswap, TREE_TYPE (_o1[0]), 1, _o1[0]);
    3012            0 :       if (!_r1)
    3013            0 :         goto next_after_fail973;
    3014            0 :       res_op1 = _r1;
    3015              :     }
    3016            0 :     tree _r;
    3017            0 :     _r = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
    3018            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 767, __FILE__, __LINE__, true);
    3019              :     return _r;
    3020              :   }
    3021              : next_after_fail973:;
    3022              :   return NULL_TREE;
    3023              : }
    3024              : 
    3025              : tree
    3026            0 : generic_simplify_572 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3027              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3028              :  const combined_fn ARG_UNUSED (tans),
    3029              :  const combined_fn ARG_UNUSED (atans))
    3030              : {
    3031            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3032            0 :   if (flag_unsafe_math_optimizations
    3033              : )
    3034              :     {
    3035            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail982;
    3036            0 :       {
    3037            0 :         tree _r;
    3038            0 :         _r = captures[0];
    3039            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 776, __FILE__, __LINE__, true);
    3040            0 :         return _r;
    3041              :       }
    3042            0 : next_after_fail982:;
    3043              :     }
    3044              :   return NULL_TREE;
    3045              : }
    3046              : 
    3047              : tree
    3048            0 : generic_simplify_577 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3049              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3050              :  const combined_fn ARG_UNUSED (froms),
    3051              :  const combined_fn ARG_UNUSED (tos))
    3052              : {
    3053            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3054            0 :   if (optimize && canonicalize_math_p ()
    3055            0 :  && targetm.libc_has_function (function_c99_misc, NULL_TREE)
    3056              : )
    3057              :     {
    3058            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail987;
    3059            0 :       {
    3060            0 :         tree res_op0;
    3061            0 :         {
    3062            0 :           tree _o1[1], _r1;
    3063            0 :           _o1[0] = captures[0];
    3064            0 :           _r1 = maybe_build_call_expr_loc (loc, tos, TREE_TYPE (_o1[0]), 1, _o1[0]);
    3065            0 :           if (!_r1)
    3066            0 :             goto next_after_fail987;
    3067            0 :           res_op0 = _r1;
    3068              :         }
    3069            0 :         tree _r;
    3070            0 :         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3071            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 781, __FILE__, __LINE__, true);
    3072            0 :         return _r;
    3073              :       }
    3074              : next_after_fail987:;
    3075              :     }
    3076              :   return NULL_TREE;
    3077              : }
    3078              : 
    3079              : tree
    3080            0 : generic_simplify_585 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3081              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3082              :  const combined_fn ARG_UNUSED (fns))
    3083              : {
    3084            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3085            0 :   if (canonicalize_math_p ()
    3086              : )
    3087              :     {
    3088            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail995;
    3089            0 :       {
    3090            0 :         tree res_op0;
    3091            0 :         res_op0 = captures[0];
    3092            0 :         tree _r;
    3093            0 :         _r = fold_build1_loc (loc, FIX_TRUNC_EXPR, type, res_op0);
    3094            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 789, __FILE__, __LINE__, true);
    3095            0 :         return _r;
    3096              :       }
    3097            0 : next_after_fail995:;
    3098              :     }
    3099              :   return NULL_TREE;
    3100              : }
    3101              : 
    3102              : tree
    3103            0 : generic_simplify_592 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3104              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    3105              :  const combined_fn ARG_UNUSED (fmas))
    3106              : {
    3107            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3108            0 :   if (canonicalize_math_after_vectorization_p ()
    3109              : )
    3110              :     {
    3111              :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1002;
    3112              :       {
    3113              :         tree res_op0;
    3114              :         res_op0 = captures[0];
    3115              :         tree res_op1;
    3116              :         res_op1 = captures[1];
    3117              :         tree res_op2;
    3118              :         res_op2 = captures[2];
    3119              :         tree _r;
    3120              :         _r = maybe_build_call_expr_loc (loc, CFN_FNMS, type, 3, res_op0, res_op1, res_op2);
    3121              :         if (!_r)
    3122              :           goto next_after_fail1002;
    3123              :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 796, __FILE__, __LINE__, true);
    3124              :         return _r;
    3125              :       }
    3126            0 : next_after_fail1002:;
    3127              :     }
    3128            0 :   return NULL_TREE;
    3129              : }
    3130              : 
    3131              : tree
    3132            0 : generic_simplify_603 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3133              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree ARG_UNUSED (_p3), tree ARG_UNUSED (_p4), tree *ARG_UNUSED (captures))
    3134              : {
    3135            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3136            0 :   if (canonicalize_math_after_vectorization_p ()
    3137              : )
    3138              :     {
    3139              :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1013;
    3140              :       {
    3141              :         tree res_op0;
    3142              :         res_op0 = captures[0];
    3143              :         tree res_op1;
    3144              :         res_op1 = captures[1];
    3145              :         tree res_op2;
    3146              :         res_op2 = captures[2];
    3147              :         tree res_op3;
    3148              :         res_op3 = captures[3];
    3149              :         tree res_op4;
    3150              :         res_op4 = captures[4];
    3151              :         tree _r;
    3152              :         _r = maybe_build_call_expr_loc (loc, CFN_COND_FNMS, type, 5, res_op0, res_op1, res_op2, res_op3, res_op4);
    3153              :         if (!_r)
    3154              :           goto next_after_fail1013;
    3155              :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 807, __FILE__, __LINE__, true);
    3156              :         return _r;
    3157              :       }
    3158            0 : next_after_fail1013:;
    3159              :     }
    3160            0 :   return NULL_TREE;
    3161              : }
    3162              : 
    3163              : tree
    3164            0 : generic_simplify_611 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3165              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3166              :  const combined_fn ARG_UNUSED (ctz))
    3167              : {
    3168            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3169            0 :   {
    3170            0 :  tree t = TREE_TYPE (captures[0]);
    3171            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1021;
    3172            0 :       {
    3173            0 :         tree res_op0;
    3174            0 :         {
    3175            0 :           tree _o1[1], _r1;
    3176            0 :           _o1[0] = captures[1];
    3177            0 :           if (TREE_TYPE (_o1[0]) != t)
    3178              :             {
    3179            0 :               _r1 = fold_build1_loc (loc, NOP_EXPR, t, _o1[0]);
    3180              :             }
    3181              :           else
    3182              :             _r1 = _o1[0];
    3183            0 :           res_op0 = _r1;
    3184              :         }
    3185            0 :         tree _r;
    3186            0 :         _r = maybe_build_call_expr_loc (loc, ctz, type, 1, res_op0);
    3187            0 :         if (!_r)
    3188            0 :           goto next_after_fail1021;
    3189            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 813, __FILE__, __LINE__, true);
    3190              :         return _r;
    3191              :       }
    3192              : next_after_fail1021:;
    3193              :   }
    3194              :   return NULL_TREE;
    3195              : }
    3196              : 
    3197              : tree
    3198            0 : generic_simplify_621 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3199              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3200              :  const enum tree_code ARG_UNUSED (rot),
    3201              :  const combined_fn ARG_UNUSED (parity))
    3202              : {
    3203            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3204            0 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    3205            0 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    3206            0 :  && (
    3207              : 
    3208            0 :  || !TREE_SIDE_EFFECTS (captures[3]))
    3209            0 :  && TYPE_PRECISION (TREE_TYPE (captures[0]))
    3210            0 :  >= TYPE_PRECISION (TREE_TYPE (captures[1]))
    3211              : )
    3212              :     {
    3213            0 :       {
    3214            0 :  tree type0 = TREE_TYPE (captures[0]);
    3215            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1032;
    3216            0 :           {
    3217            0 :             tree res_op0;
    3218            0 :             {
    3219            0 :               tree _o1[1], _r1;
    3220            0 :               _o1[0] = captures[2];
    3221            0 :               if (TREE_TYPE (_o1[0]) != type0)
    3222              :                 {
    3223            0 :                   _r1 = fold_build1_loc (loc, NOP_EXPR, type0, _o1[0]);
    3224              :                 }
    3225              :               else
    3226              :                 _r1 = _o1[0];
    3227            0 :               res_op0 = _r1;
    3228              :             }
    3229            0 :             tree _r;
    3230            0 :             _r = maybe_build_call_expr_loc (loc, parity, type, 1, res_op0);
    3231            0 :             if (!_r)
    3232            0 :               goto next_after_fail1032;
    3233            0 :             if (TREE_SIDE_EFFECTS (captures[3]))
    3234            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
    3235            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 821, __FILE__, __LINE__, true);
    3236            0 :             return _r;
    3237              :           }
    3238              : next_after_fail1032:;
    3239              :       }
    3240              :     }
    3241              :   return NULL_TREE;
    3242              : }
    3243              : 
    3244              : tree
    3245          943 : generic_simplify_ABSU_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0)
    3246              : {
    3247          943 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3248          943 :   switch (TREE_CODE (_p0))
    3249              :     {
    3250          541 :     CASE_CONVERT:
    3251          541 :       {
    3252          541 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3253          541 :         switch (TREE_CODE (_q20))
    3254              :           {
    3255            0 :           case ABSU_EXPR:
    3256            0 :             {
    3257            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3258            0 :               {
    3259            0 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 };
    3260            0 :                 if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
    3261              : )
    3262              :                   {
    3263            0 :                     if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1076;
    3264            0 :                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1076;
    3265            0 :                     {
    3266            0 :                       tree _r;
    3267            0 :                       _r = captures[1];
    3268            0 :                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 855, __FILE__, __LINE__, true);
    3269            0 :                       return _r;
    3270              :                     }
    3271            0 : next_after_fail1076:;
    3272              :                   }
    3273              :               }
    3274            0 :               break;
    3275              :             }
    3276              :           default:;
    3277              :           }
    3278              :         break;
    3279              :       }
    3280            6 :     case NEGATE_EXPR:
    3281            6 :       {
    3282            6 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3283            6 :         {
    3284            6 :           tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    3285            6 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1077;
    3286            6 :           {
    3287            6 :             tree res_op0;
    3288            6 :             res_op0 = captures[0];
    3289            6 :             tree _r;
    3290            6 :             _r = fold_build1_loc (loc, ABSU_EXPR, type, res_op0);
    3291            6 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 856, __FILE__, __LINE__, true);
    3292          943 :             return _r;
    3293              :           }
    3294            0 : next_after_fail1077:;
    3295              :         }
    3296            0 :         break;
    3297              :       }
    3298            0 :     case VEC_COND_EXPR:
    3299            0 :       {
    3300            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3301            0 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3302            0 :         tree _q22 = TREE_OPERAND (_p0, 2);
    3303            0 :         {
    3304            0 :           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22 };
    3305            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1078;
    3306            0 :           {
    3307            0 :             tree res_op0;
    3308            0 :             res_op0 = captures[1];
    3309            0 :             tree res_op1;
    3310            0 :             {
    3311            0 :               tree _o1[1], _r1;
    3312            0 :               _o1[0] = captures[2];
    3313            0 :               _r1 = fold_build1_loc (loc, ABSU_EXPR, type, _o1[0]);
    3314            0 :               if (EXPR_P (_r1))
    3315            0 :                 goto next_after_fail1078;
    3316            0 :               res_op1 = _r1;
    3317              :             }
    3318            0 :             tree res_op2;
    3319            0 :             {
    3320            0 :               tree _o1[1], _r1;
    3321            0 :               _o1[0] = captures[3];
    3322            0 :               _r1 = fold_build1_loc (loc, ABSU_EXPR, type, _o1[0]);
    3323            0 :               if (EXPR_P (_r1))
    3324            0 :                 goto next_after_fail1078;
    3325            0 :               res_op2 = _r1;
    3326              :             }
    3327            0 :             tree _r;
    3328            0 :             _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    3329            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 830, __FILE__, __LINE__, true);
    3330            0 :             return _r;
    3331              :           }
    3332            0 : next_after_fail1078:;
    3333              :         }
    3334            0 :         break;
    3335              :       }
    3336          937 :     default:;
    3337              :     }
    3338          937 : if (tree_expr_nonnegative_p (_p0))
    3339              :   {
    3340            0 :     {
    3341            0 :       tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    3342            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1079;
    3343            0 :       {
    3344            0 :         tree res_op0;
    3345            0 :         res_op0 = captures[0];
    3346            0 :         tree _r;
    3347            0 :         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3348            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 857, __FILE__, __LINE__, true);
    3349            0 :         return _r;
    3350              :       }
    3351            0 : next_after_fail1079:;
    3352              :     }
    3353              :   }
    3354              :   return NULL_TREE;
    3355              : }
    3356              : 
    3357              : tree
    3358      1919771 : generic_simplify_IMAGPART_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0)
    3359              : {
    3360      1919771 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3361      1919771 :   switch (TREE_CODE (_p0))
    3362              :     {
    3363         1731 :     case COMPLEX_EXPR:
    3364         1731 :       {
    3365         1731 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3366         1731 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3367         1731 :         {
    3368         1731 :           tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    3369         1731 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1148;
    3370         1731 :           {
    3371         1731 :             tree _r;
    3372         1731 :             _r = captures[1];
    3373         1731 :             if (TREE_SIDE_EFFECTS (captures[0]))
    3374          522 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    3375         1731 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 884, __FILE__, __LINE__, true);
    3376         1731 :             return _r;
    3377              :           }
    3378            0 : next_after_fail1148:;
    3379              :         }
    3380            0 :         break;
    3381              :       }
    3382        45288 :     CASE_CONVERT:
    3383        45288 :       {
    3384        45288 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3385        45288 :         switch (TREE_CODE (_q20))
    3386              :           {
    3387            0 :           case CONJ_EXPR:
    3388            0 :             {
    3389            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3390            0 :               {
    3391            0 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 };
    3392            0 :                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1149;
    3393            0 :                 {
    3394            0 :                   tree res_op0;
    3395            0 :                   {
    3396            0 :                     tree _o1[1], _r1;
    3397            0 :                     {
    3398            0 :                       tree _o2[1], _r2;
    3399            0 :                       _o2[0] = captures[2];
    3400            0 :                       _r2 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
    3401            0 :                       _o1[0] = _r2;
    3402              :                     }
    3403            0 :                     _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    3404            0 :                     res_op0 = _r1;
    3405              :                   }
    3406            0 :                   tree _r;
    3407            0 :                   _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3408            0 :                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 885, __FILE__, __LINE__, true);
    3409            0 :                   return _r;
    3410              :                 }
    3411            0 : next_after_fail1149:;
    3412              :               }
    3413            0 :               break;
    3414              :             }
    3415            0 :           case PLUS_EXPR:
    3416            0 :             {
    3417            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3418            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3419            0 :               {
    3420            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    3421            0 :                 const enum tree_code op = PLUS_EXPR;
    3422            0 :                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1150;
    3423            0 :                 {
    3424            0 :                   tree res_op0;
    3425            0 :                   {
    3426            0 :                     tree _o1[2], _r1;
    3427            0 :                     {
    3428            0 :                       tree _o2[1], _r2;
    3429            0 :                       _o2[0] = captures[2];
    3430            0 :                       _r2 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
    3431            0 :                       _o1[0] = _r2;
    3432              :                     }
    3433            0 :                     {
    3434            0 :                       tree _o2[1], _r2;
    3435            0 :                       _o2[0] = captures[3];
    3436            0 :                       _r2 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
    3437            0 :                       _o1[1] = _r2;
    3438              :                     }
    3439            0 :                     _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    3440            0 :                     res_op0 = _r1;
    3441              :                   }
    3442            0 :                   tree _r;
    3443            0 :                   _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3444            0 :                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 882, __FILE__, __LINE__, true);
    3445            0 :                   return _r;
    3446              :                 }
    3447            0 : next_after_fail1150:;
    3448              :               }
    3449            0 :               break;
    3450              :             }
    3451            0 :           case MINUS_EXPR:
    3452            0 :             {
    3453            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3454            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3455            0 :               {
    3456            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    3457            0 :                 const enum tree_code op = MINUS_EXPR;
    3458            0 :                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1151;
    3459            0 :                 {
    3460            0 :                   tree res_op0;
    3461            0 :                   {
    3462            0 :                     tree _o1[2], _r1;
    3463            0 :                     {
    3464            0 :                       tree _o2[1], _r2;
    3465            0 :                       _o2[0] = captures[2];
    3466            0 :                       _r2 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
    3467            0 :                       _o1[0] = _r2;
    3468              :                     }
    3469            0 :                     {
    3470            0 :                       tree _o2[1], _r2;
    3471            0 :                       _o2[0] = captures[3];
    3472            0 :                       _r2 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
    3473            0 :                       _o1[1] = _r2;
    3474              :                     }
    3475            0 :                     _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    3476            0 :                     res_op0 = _r1;
    3477              :                   }
    3478            0 :                   tree _r;
    3479            0 :                   _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3480            0 :                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 882, __FILE__, __LINE__, true);
    3481            0 :                   return _r;
    3482              :                 }
    3483            0 : next_after_fail1151:;
    3484              :               }
    3485            0 :               break;
    3486              :             }
    3487            0 :           case CALL_EXPR:
    3488            0 :             switch (get_call_combined_fn (_q20))
    3489              :               {
    3490            0 :               case CFN_BUILT_IN_CEXPIF:
    3491            0 :                 if (call_expr_nargs (_q20) == 1)
    3492              :     {
    3493            0 :                     tree _q30 = CALL_EXPR_ARG (_q20, 0);
    3494            0 :                     {
    3495            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 };
    3496            0 :                       if (single_use (captures[1]) && single_use (captures[0])
    3497              : )
    3498              :                         {
    3499            0 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1152;
    3500            0 :                           {
    3501            0 :                             tree res_op0;
    3502            0 :                             {
    3503            0 :                               tree _o1[1], _r1;
    3504            0 :                               _o1[0] = captures[2];
    3505            0 :                               _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SINF, TREE_TYPE (_o1[0]), 1, _o1[0]);
    3506            0 :                               if (!_r1)
    3507            0 :                                 goto next_after_fail1152;
    3508            0 :                               res_op0 = _r1;
    3509              :                             }
    3510            0 :                             tree _r;
    3511            0 :                             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3512            0 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 886, __FILE__, __LINE__, true);
    3513            0 :                             return _r;
    3514              :                           }
    3515            0 : next_after_fail1152:;
    3516              :                         }
    3517              :                     }
    3518              :                   }
    3519              :                 break;
    3520            0 :               case CFN_BUILT_IN_CEXPIL:
    3521            0 :                 if (call_expr_nargs (_q20) == 1)
    3522              :     {
    3523            0 :                     tree _q30 = CALL_EXPR_ARG (_q20, 0);
    3524            0 :                     {
    3525            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 };
    3526            0 :                       if (single_use (captures[1]) && single_use (captures[0])
    3527              : )
    3528              :                         {
    3529            0 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1153;
    3530            0 :                           {
    3531            0 :                             tree res_op0;
    3532            0 :                             {
    3533            0 :                               tree _o1[1], _r1;
    3534            0 :                               _o1[0] = captures[2];
    3535            0 :                               _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SINL, TREE_TYPE (_o1[0]), 1, _o1[0]);
    3536            0 :                               if (!_r1)
    3537            0 :                                 goto next_after_fail1153;
    3538            0 :                               res_op0 = _r1;
    3539              :                             }
    3540            0 :                             tree _r;
    3541            0 :                             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3542            0 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 886, __FILE__, __LINE__, true);
    3543            0 :                             return _r;
    3544              :                           }
    3545            0 : next_after_fail1153:;
    3546              :                         }
    3547              :                     }
    3548              :                   }
    3549              :                 break;
    3550            0 :               case CFN_BUILT_IN_CEXPI:
    3551            0 :                 if (call_expr_nargs (_q20) == 1)
    3552              :     {
    3553            0 :                     tree _q30 = CALL_EXPR_ARG (_q20, 0);
    3554            0 :                     {
    3555            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q30 };
    3556            0 :                       if (single_use (captures[1]) && single_use (captures[0])
    3557              : )
    3558              :                         {
    3559            0 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1154;
    3560            0 :                           {
    3561            0 :                             tree res_op0;
    3562            0 :                             {
    3563            0 :                               tree _o1[1], _r1;
    3564            0 :                               _o1[0] = captures[2];
    3565            0 :                               _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SIN, TREE_TYPE (_o1[0]), 1, _o1[0]);
    3566            0 :                               if (!_r1)
    3567            0 :                                 goto next_after_fail1154;
    3568            0 :                               res_op0 = _r1;
    3569              :                             }
    3570            0 :                             tree _r;
    3571            0 :                             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3572            0 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 886, __FILE__, __LINE__, true);
    3573            0 :                             return _r;
    3574              :                           }
    3575            0 : next_after_fail1154:;
    3576              :                         }
    3577              :                     }
    3578              :                   }
    3579              :                 break;
    3580              :               default:;
    3581              :               }
    3582              :             break;
    3583              :           default:;
    3584              :           }
    3585              :         break;
    3586              :       }
    3587           16 :     case CONJ_EXPR:
    3588           16 :       {
    3589           16 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3590           16 :         {
    3591           16 :           tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q20 };
    3592           16 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1155;
    3593           16 :           {
    3594           16 :             tree res_op0;
    3595           16 :             {
    3596           16 :               tree _o1[1], _r1;
    3597           16 :               {
    3598           16 :                 tree _o2[1], _r2;
    3599           16 :                 _o2[0] = captures[2];
    3600           16 :                 _r2 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
    3601           16 :                 _o1[0] = _r2;
    3602              :               }
    3603           16 :               _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    3604           16 :               res_op0 = _r1;
    3605              :             }
    3606           16 :             tree _r;
    3607           16 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3608           16 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 885, __FILE__, __LINE__, true);
    3609           16 :             return _r;
    3610              :           }
    3611            0 : next_after_fail1155:;
    3612              :         }
    3613            0 :         break;
    3614              :       }
    3615          365 :     case PLUS_EXPR:
    3616          365 :       {
    3617          365 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3618          365 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3619          365 :         {
    3620          365 :           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
    3621          365 :           const enum tree_code op = PLUS_EXPR;
    3622          365 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1156;
    3623          365 :           {
    3624          365 :             tree res_op0;
    3625          365 :             {
    3626          365 :               tree _o1[2], _r1;
    3627          365 :               {
    3628          365 :                 tree _o2[1], _r2;
    3629          365 :                 _o2[0] = captures[2];
    3630          365 :                 _r2 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
    3631          365 :                 _o1[0] = _r2;
    3632              :               }
    3633          365 :               {
    3634          365 :                 tree _o2[1], _r2;
    3635          365 :                 _o2[0] = captures[3];
    3636          365 :                 _r2 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
    3637          365 :                 _o1[1] = _r2;
    3638              :               }
    3639          365 :               _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    3640          365 :               res_op0 = _r1;
    3641              :             }
    3642          365 :             tree _r;
    3643          365 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3644          365 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 882, __FILE__, __LINE__, true);
    3645          365 :             return _r;
    3646              :           }
    3647            0 : next_after_fail1156:;
    3648              :         }
    3649            0 :         break;
    3650              :       }
    3651           47 :     case MINUS_EXPR:
    3652           47 :       {
    3653           47 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3654           47 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3655           47 :         {
    3656           47 :           tree captures[4] ATTRIBUTE_UNUSED = { _p0, _p0, _q20, _q21 };
    3657           47 :           const enum tree_code op = MINUS_EXPR;
    3658           47 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1157;
    3659           47 :           {
    3660           47 :             tree res_op0;
    3661           47 :             {
    3662           47 :               tree _o1[2], _r1;
    3663           47 :               {
    3664           47 :                 tree _o2[1], _r2;
    3665           47 :                 _o2[0] = captures[2];
    3666           47 :                 _r2 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
    3667           47 :                 _o1[0] = _r2;
    3668              :               }
    3669           47 :               {
    3670           47 :                 tree _o2[1], _r2;
    3671           47 :                 _o2[0] = captures[3];
    3672           47 :                 _r2 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o2[0])), _o2[0]);
    3673           47 :                 _o1[1] = _r2;
    3674              :               }
    3675           47 :               _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    3676           47 :               res_op0 = _r1;
    3677              :             }
    3678           47 :             tree _r;
    3679           47 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3680           47 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 882, __FILE__, __LINE__, true);
    3681           47 :             return _r;
    3682              :           }
    3683            0 : next_after_fail1157:;
    3684              :         }
    3685            0 :         break;
    3686              :       }
    3687        54944 :     case CALL_EXPR:
    3688        54944 :       switch (get_call_combined_fn (_p0))
    3689              :         {
    3690        20602 :         case CFN_MUL_OVERFLOW:
    3691        20602 :           if (call_expr_nargs (_p0) == 2)
    3692              :     {
    3693        20602 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    3694        20602 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    3695        20602 :               if (integer_nonzerop (_q21))
    3696              :                 {
    3697         2784 :                   {
    3698         2784 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    3699         2784 :                     tree res = generic_simplify_559 (loc, type, _p0, captures);
    3700         2784 :                     if (res) return res;
    3701              :                   }
    3702              :                 }
    3703        19649 :               if (integer_nonzerop (_q20))
    3704              :                 {
    3705         3002 :                   {
    3706         3002 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q21, _q20 };
    3707         3002 :                     tree res = generic_simplify_559 (loc, type, _p0, captures);
    3708         3002 :                     if (res) return res;
    3709              :                   }
    3710              :                 }
    3711              :             }
    3712              :           break;
    3713            0 :         case CFN_BUILT_IN_CEXPIF:
    3714            0 :           if (call_expr_nargs (_p0) == 1)
    3715              :     {
    3716            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    3717            0 :               {
    3718            0 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q20 };
    3719            0 :                 if (single_use (captures[1]) && single_use (captures[0])
    3720              : )
    3721              :                   {
    3722            0 :                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1158;
    3723            0 :                     {
    3724            0 :                       tree res_op0;
    3725            0 :                       {
    3726            0 :                         tree _o1[1], _r1;
    3727            0 :                         _o1[0] = captures[2];
    3728            0 :                         _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SINF, TREE_TYPE (_o1[0]), 1, _o1[0]);
    3729            0 :                         if (!_r1)
    3730            0 :                           goto next_after_fail1158;
    3731            0 :                         res_op0 = _r1;
    3732              :                       }
    3733            0 :                       tree _r;
    3734            0 :                       _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3735            0 :                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 886, __FILE__, __LINE__, true);
    3736            0 :                       return _r;
    3737              :                     }
    3738            0 : next_after_fail1158:;
    3739              :                   }
    3740              :               }
    3741              :             }
    3742              :           break;
    3743            0 :         case CFN_BUILT_IN_CEXPIL:
    3744            0 :           if (call_expr_nargs (_p0) == 1)
    3745              :     {
    3746            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    3747            0 :               {
    3748            0 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q20 };
    3749            0 :                 if (single_use (captures[1]) && single_use (captures[0])
    3750              : )
    3751              :                   {
    3752            0 :                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1159;
    3753            0 :                     {
    3754            0 :                       tree res_op0;
    3755            0 :                       {
    3756            0 :                         tree _o1[1], _r1;
    3757            0 :                         _o1[0] = captures[2];
    3758            0 :                         _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SINL, TREE_TYPE (_o1[0]), 1, _o1[0]);
    3759            0 :                         if (!_r1)
    3760            0 :                           goto next_after_fail1159;
    3761            0 :                         res_op0 = _r1;
    3762              :                       }
    3763            0 :                       tree _r;
    3764            0 :                       _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3765            0 :                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 886, __FILE__, __LINE__, true);
    3766            0 :                       return _r;
    3767              :                     }
    3768            0 : next_after_fail1159:;
    3769              :                   }
    3770              :               }
    3771              :             }
    3772              :           break;
    3773            1 :         case CFN_BUILT_IN_CEXPI:
    3774            1 :           if (call_expr_nargs (_p0) == 1)
    3775              :     {
    3776            1 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    3777            1 :               {
    3778            1 :                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p0, _q20 };
    3779            1 :                 if (single_use (captures[1]) && single_use (captures[0])
    3780              : )
    3781              :                   {
    3782            1 :                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1160;
    3783            1 :                     {
    3784            1 :                       tree res_op0;
    3785            1 :                       {
    3786            1 :                         tree _o1[1], _r1;
    3787            1 :                         _o1[0] = captures[2];
    3788            1 :                         _r1 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SIN, TREE_TYPE (_o1[0]), 1, _o1[0]);
    3789            1 :                         if (!_r1)
    3790            0 :                           goto next_after_fail1160;
    3791            1 :                         res_op0 = _r1;
    3792              :                       }
    3793            1 :                       tree _r;
    3794            1 :                       _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3795            1 :                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 886, __FILE__, __LINE__, true);
    3796            1 :                       return _r;
    3797              :                     }
    3798            0 : next_after_fail1160:;
    3799              :                   }
    3800              :               }
    3801              :             }
    3802              :           break;
    3803              :         default:;
    3804              :         }
    3805              :       break;
    3806              :     default:;
    3807              :     }
    3808              :   return NULL_TREE;
    3809              : }
    3810              : 
    3811              : tree
    3812     71687131 : generic_simplify_MULT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
    3813              : {
    3814     71687131 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3815     71687131 :   switch (TREE_CODE (_p1))
    3816              :     {
    3817          392 :     case VECTOR_CST:
    3818          392 :       {
    3819          392 :         {
    3820          392 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    3821          392 :           if (initializer_each_zero_or_onep (captures[1])
    3822            5 :  && !HONOR_SNANS (type)
    3823          397 :  && !HONOR_SIGNED_ZEROS (type)
    3824              : )
    3825              :             {
    3826            5 :               {
    3827            5 :  tree itype = FLOAT_TYPE_P (type) ? unsigned_type_for (type) : type;
    3828            5 :                   if (itype
    3829            5 :  && (!VECTOR_MODE_P (TYPE_MODE (type))
    3830            5 :  || (VECTOR_MODE_P (TYPE_MODE (itype))
    3831            5 :  && optab_handler (and_optab,
    3832            5 :  TYPE_MODE (itype)) != CODE_FOR_nothing))
    3833              : )
    3834              :                     {
    3835            5 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1394;
    3836            5 :                       {
    3837            5 :                         tree res_op0;
    3838            5 :                         {
    3839            5 :                           tree _o1[2], _r1;
    3840            5 :                           {
    3841            5 :                             tree _o2[1], _r2;
    3842            5 :                             _o2[0] = captures[0];
    3843            5 :                             if (TREE_TYPE (_o2[0]) != itype)
    3844              :                               {
    3845            1 :                                 _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, itype, _o2[0]);
    3846              :                               }
    3847              :                             else
    3848              :                               _r2 = _o2[0];
    3849            5 :                             _o1[0] = _r2;
    3850              :                           }
    3851            5 :                           {
    3852            5 :                             tree _o2[2], _r2;
    3853            5 :                             _o2[0] = captures[1];
    3854            5 :                             _o2[1] =  build_zero_cst (type);
    3855            5 :                             _r2 = fold_build2_loc (loc, NE_EXPR, itype, _o2[0], _o2[1]);
    3856            5 :                             _o1[1] = _r2;
    3857              :                           }
    3858            5 :                           _r1 = fold_build2_loc (loc, BIT_AND_EXPR, itype, _o1[0], _o1[1]);
    3859            5 :                           res_op0 = _r1;
    3860              :                         }
    3861            5 :                         tree _r;
    3862            5 :                         _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
    3863            5 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 962, __FILE__, __LINE__, true);
    3864            5 :                         return _r;
    3865              :                       }
    3866            0 : next_after_fail1394:;
    3867              :                     }
    3868              :               }
    3869              :             }
    3870              :         }
    3871          387 :         break;
    3872              :       }
    3873     71687126 :     default:;
    3874              :     }
    3875     71687126 : if (integer_zerop (_p1))
    3876              :   {
    3877        33972 :     {
    3878        33972 :       tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    3879        33972 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1395;
    3880        33972 :       {
    3881        33972 :         tree _r;
    3882        33972 :         _r = captures[1];
    3883        33972 :         if (TREE_SIDE_EFFECTS (captures[0]))
    3884         2459 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    3885        33972 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 963, __FILE__, __LINE__, true);
    3886        33972 :         return _r;
    3887              :       }
    3888            0 : next_after_fail1395:;
    3889              :     }
    3890              :   }
    3891     71653154 : if (real_zerop (_p1))
    3892              :   {
    3893          330 :     {
    3894          330 :       tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    3895          330 :       if (!tree_expr_maybe_nan_p (captures[0])
    3896          122 :  && (!HONOR_NANS (type) || !tree_expr_maybe_infinite_p (captures[0]))
    3897          340 :  && (!HONOR_SIGNED_ZEROS (type) || tree_expr_nonnegative_p (captures[0]))
    3898              : )
    3899              :         {
    3900            4 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1396;
    3901            4 :           {
    3902            4 :             tree _r;
    3903            4 :             _r = captures[1];
    3904            4 :             if (TREE_SIDE_EFFECTS (captures[0]))
    3905            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    3906            4 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 964, __FILE__, __LINE__, true);
    3907            4 :             return _r;
    3908              :           }
    3909            0 : next_after_fail1396:;
    3910              :         }
    3911              :     }
    3912              :   }
    3913     71653150 : if (real_onep (_p1))
    3914              :   {
    3915         1237 :     {
    3916         1237 :       tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    3917         1237 :       if (!tree_expr_maybe_signaling_nan_p (captures[0])
    3918         1237 :  && (!HONOR_SIGNED_ZEROS (type)
    3919         1116 :  || !COMPLEX_FLOAT_TYPE_P (type))
    3920              : )
    3921              :         {
    3922          754 :           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1397;
    3923          754 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1397;
    3924          754 :           {
    3925          754 :             tree res_op0;
    3926          754 :             res_op0 = captures[0];
    3927          754 :             tree _r;
    3928          754 :             _r = non_lvalue_loc (loc, res_op0);
    3929          754 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 965, __FILE__, __LINE__, true);
    3930          754 :             return _r;
    3931              :           }
    3932              : next_after_fail1397:;
    3933              :         }
    3934              :     }
    3935              :   }
    3936     71652396 : if (real_minus_onep (_p1))
    3937              :   {
    3938        42251 :     {
    3939        42251 :       tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    3940        42251 :       if (!tree_expr_maybe_signaling_nan_p (captures[0])
    3941        42251 :  && (!HONOR_SIGNED_ZEROS (type)
    3942        39337 :  || !COMPLEX_FLOAT_TYPE_P (type))
    3943              : )
    3944              :         {
    3945        41867 :           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1398;
    3946        41867 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1398;
    3947        41867 :           {
    3948        41867 :             tree res_op0;
    3949        41867 :             res_op0 = captures[0];
    3950        41867 :             tree _r;
    3951        41867 :             _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    3952        41867 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 966, __FILE__, __LINE__, true);
    3953        41867 :             return _r;
    3954              :           }
    3955              : next_after_fail1398:;
    3956              :         }
    3957              :     }
    3958              :   }
    3959     71610529 :   switch (TREE_CODE (_p0))
    3960              :     {
    3961        62900 :     case BIT_AND_EXPR:
    3962        62900 :       {
    3963        62900 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3964        62900 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3965        62900 :         switch (TREE_CODE (_q20))
    3966              :           {
    3967          275 :           case RSHIFT_EXPR:
    3968          275 :             {
    3969          275 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3970          275 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3971          275 :               if (uniform_integer_cst_p (_q31))
    3972              :                 {
    3973           14 :                   if (uniform_integer_cst_p (_q21))
    3974              :                     {
    3975           14 :                       if (uniform_integer_cst_p (_p1))
    3976              :                         {
    3977           14 :                           {
    3978           14 :                             tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q21, _p1 };
    3979           14 :                             {
    3980           14 :  tree rshift_cst = uniform_integer_cst_p (captures[1]);
    3981           14 :  tree bit_and_cst = uniform_integer_cst_p (captures[2]);
    3982           14 :  tree mult_cst = uniform_integer_cst_p (captures[3]);
    3983           14 :                                 if (VECTOR_TYPE_P (type)
    3984            0 :  && tree_fits_uhwi_p (rshift_cst)
    3985            0 :  && tree_fits_uhwi_p (mult_cst)
    3986            0 :  && tree_fits_uhwi_p (bit_and_cst)
    3987              : )
    3988              :                                   {
    3989            0 :                                     {
    3990            0 :  HOST_WIDE_INT vec_elem_bits = vector_element_bits (type);
    3991            0 :  poly_int64 vec_nelts = TYPE_VECTOR_SUBPARTS (type);
    3992            0 :  poly_int64 vec_bits = vec_elem_bits * vec_nelts;
    3993            0 :  unsigned HOST_WIDE_INT cmp_bits_i, bit_and_i, mult_i;
    3994            0 :  unsigned HOST_WIDE_INT target_mult_i, target_bit_and_i;
    3995            0 :  cmp_bits_i = tree_to_uhwi (rshift_cst) + 1;
    3996            0 :  mult_i = tree_to_uhwi (mult_cst);
    3997            0 :  target_mult_i = (HOST_WIDE_INT_1U << cmp_bits_i) - 1;
    3998            0 :  bit_and_i = tree_to_uhwi (bit_and_cst);
    3999            0 :  target_bit_and_i = 0;
    4000            0 :  for (unsigned i = 0; i < vec_elem_bits / cmp_bits_i; i++)
    4001            0 :  target_bit_and_i = (target_bit_and_i << cmp_bits_i) | 1U;
    4002            0 :                                         if ((exact_log2 (cmp_bits_i)) >= 0
    4003            0 :  && cmp_bits_i < HOST_BITS_PER_WIDE_INT
    4004            0 :  && multiple_p (vec_bits, cmp_bits_i)
    4005            0 :  && vec_elem_bits <= HOST_BITS_PER_WIDE_INT
    4006            0 :  && target_mult_i == mult_i
    4007            0 :  && target_bit_and_i == bit_and_i
    4008              : )
    4009              :                                           {
    4010            0 :                                             {
    4011            0 :  tree cmp_type = build_nonstandard_integer_type (cmp_bits_i, 0);
    4012            0 :  poly_int64 vector_type_nelts = exact_div (vec_bits, cmp_bits_i);
    4013            0 :  tree vec_cmp_type = build_vector_type (cmp_type, vector_type_nelts);
    4014            0 :  tree vec_truth_type = truth_type_for (vec_cmp_type);
    4015            0 :  tree zeros = build_zero_cst (vec_cmp_type);
    4016            0 :  tree ones = build_all_ones_cst (vec_cmp_type);
    4017            0 :                                                 if (expand_vec_cmp_expr_p (vec_cmp_type, vec_truth_type, LT_EXPR)
    4018            0 :  && expand_vec_cond_expr_p (vec_cmp_type, vec_truth_type)
    4019              : )
    4020              :                                                   {
    4021            0 :                                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1399;
    4022            0 :                                                     {
    4023            0 :                                                       tree res_op0;
    4024            0 :                                                       {
    4025            0 :                                                         tree _o1[3], _r1;
    4026            0 :                                                         {
    4027            0 :                                                           tree _o2[2], _r2;
    4028            0 :                                                           {
    4029            0 :                                                             tree _o3[1], _r3;
    4030            0 :                                                             _o3[0] = captures[0];
    4031            0 :                                                             if (TREE_TYPE (_o3[0]) != vec_cmp_type)
    4032              :                                                               {
    4033            0 :                                                                 _r3 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, vec_cmp_type, _o3[0]);
    4034              :                                                               }
    4035              :                                                             else
    4036              :                                                               _r3 = _o3[0];
    4037            0 :                                                             _o2[0] = _r3;
    4038              :                                                           }
    4039            0 :                                                           _o2[1] =  zeros;
    4040            0 :                                                           _r2 = fold_build2_loc (loc, LT_EXPR, vec_truth_type, _o2[0], _o2[1]);
    4041            0 :                                                           _o1[0] = _r2;
    4042              :                                                         }
    4043            0 :                                                         _o1[1] =  ones;
    4044            0 :                                                         _o1[2] =  zeros;
    4045            0 :                                                         _r1 = fold_build3_loc (loc, VEC_COND_EXPR, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2]);
    4046            0 :                                                         res_op0 = _r1;
    4047              :                                                       }
    4048            0 :                                                       tree _r;
    4049            0 :                                                       _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
    4050            0 :                                                       if (TREE_SIDE_EFFECTS (captures[1]))
    4051            0 :                                                         _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    4052            0 :                                                       if (TREE_SIDE_EFFECTS (captures[2]))
    4053            0 :                                                         _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    4054            0 :                                                       if (TREE_SIDE_EFFECTS (captures[3]))
    4055            0 :                                                         _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
    4056            0 :                                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 967, __FILE__, __LINE__, true);
    4057            0 :                                                       return _r;
    4058              :                                                     }
    4059            0 : next_after_fail1399:;
    4060              :                                                   }
    4061              :                                             }
    4062              :                                           }
    4063              :                                     }
    4064              :                                   }
    4065              :                             }
    4066              :                           }
    4067              :                         }
    4068              :                     }
    4069              :                 }
    4070              :               break;
    4071              :             }
    4072              :           default:;
    4073              :           }
    4074              :         break;
    4075              :       }
    4076     71610529 :     default:;
    4077              :     }
    4078     71610529 :   switch (TREE_CODE (_p1))
    4079              :     {
    4080         3039 :     case COND_EXPR:
    4081         3039 :       {
    4082         3039 :         tree _q30 = TREE_OPERAND (_p1, 0);
    4083         3039 :         tree _q31 = TREE_OPERAND (_p1, 1);
    4084         3039 :         tree _q32 = TREE_OPERAND (_p1, 2);
    4085         3039 :         switch (TREE_CODE (_q30))
    4086              :           {
    4087          506 :           case GT_EXPR:
    4088          506 :             {
    4089          506 :               tree _q40 = TREE_OPERAND (_q30, 0);
    4090          506 :               tree _q41 = TREE_OPERAND (_q30, 1);
    4091          506 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    4092              :                 {
    4093            0 :                   if (real_zerop (_q41))
    4094              :                     {
    4095            0 :                       if (real_onep (_q31))
    4096              :                         {
    4097            0 :                           if (real_minus_onep (_q32))
    4098              :                             {
    4099            0 :                               {
    4100            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    4101            0 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4102              : )
    4103              :                                   {
    4104            0 :                                     if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1400;
    4105            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1400;
    4106            0 :                                     {
    4107            0 :                                       tree res_op0;
    4108            0 :                                       {
    4109            0 :                                         tree _o1[1], _r1;
    4110            0 :                                         _o1[0] = captures[0];
    4111            0 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4112            0 :                                         res_op0 = _r1;
    4113              :                                       }
    4114            0 :                                       tree _r;
    4115            0 :                                       _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4116            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 968, __FILE__, __LINE__, true);
    4117            0 :                                       return _r;
    4118              :                                     }
    4119            0 : next_after_fail1400:;
    4120              :                                   }
    4121              :                               }
    4122              :                             }
    4123              :                         }
    4124              :                     }
    4125              :                 }
    4126              :               break;
    4127              :             }
    4128           20 :           case GE_EXPR:
    4129           20 :             {
    4130           20 :               tree _q40 = TREE_OPERAND (_q30, 0);
    4131           20 :               tree _q41 = TREE_OPERAND (_q30, 1);
    4132           20 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    4133              :                 {
    4134            0 :                   if (real_zerop (_q41))
    4135              :                     {
    4136            0 :                       if (real_onep (_q31))
    4137              :                         {
    4138            0 :                           if (real_minus_onep (_q32))
    4139              :                             {
    4140            0 :                               {
    4141            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    4142            0 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4143              : )
    4144              :                                   {
    4145            0 :                                     if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1401;
    4146            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1401;
    4147            0 :                                     {
    4148            0 :                                       tree res_op0;
    4149            0 :                                       {
    4150            0 :                                         tree _o1[1], _r1;
    4151            0 :                                         _o1[0] = captures[0];
    4152            0 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4153            0 :                                         res_op0 = _r1;
    4154              :                                       }
    4155            0 :                                       tree _r;
    4156            0 :                                       _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4157            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 968, __FILE__, __LINE__, true);
    4158            0 :                                       return _r;
    4159              :                                     }
    4160            0 : next_after_fail1401:;
    4161              :                                   }
    4162              :                               }
    4163              :                             }
    4164              :                         }
    4165              :                     }
    4166              :                 }
    4167              :               break;
    4168              :             }
    4169           51 :           case LT_EXPR:
    4170           51 :             {
    4171           51 :               tree _q40 = TREE_OPERAND (_q30, 0);
    4172           51 :               tree _q41 = TREE_OPERAND (_q30, 1);
    4173           51 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    4174              :                 {
    4175            0 :                   if (real_zerop (_q41))
    4176              :                     {
    4177            0 :                       if (real_onep (_q31))
    4178              :                         {
    4179            0 :                           if (real_minus_onep (_q32))
    4180              :                             {
    4181            0 :                               {
    4182            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    4183            0 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4184              : )
    4185              :                                   {
    4186            0 :                                     if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1402;
    4187            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1402;
    4188            0 :                                     {
    4189            0 :                                       tree res_op0;
    4190            0 :                                       {
    4191            0 :                                         tree _o1[1], _r1;
    4192            0 :                                         _o1[0] = captures[0];
    4193            0 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4194            0 :                                         res_op0 = _r1;
    4195              :                                       }
    4196            0 :                                       tree _r;
    4197            0 :                                       _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    4198            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 968, __FILE__, __LINE__, true);
    4199            0 :                                       return _r;
    4200              :                                     }
    4201            0 : next_after_fail1402:;
    4202              :                                   }
    4203              :                               }
    4204              :                             }
    4205              :                         }
    4206              :                     }
    4207              :                 }
    4208              :               break;
    4209              :             }
    4210            5 :           case LE_EXPR:
    4211            5 :             {
    4212            5 :               tree _q40 = TREE_OPERAND (_q30, 0);
    4213            5 :               tree _q41 = TREE_OPERAND (_q30, 1);
    4214            5 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    4215              :                 {
    4216            0 :                   if (real_zerop (_q41))
    4217              :                     {
    4218            0 :                       if (real_onep (_q31))
    4219              :                         {
    4220            0 :                           if (real_minus_onep (_q32))
    4221              :                             {
    4222            0 :                               {
    4223            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    4224            0 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4225              : )
    4226              :                                   {
    4227            0 :                                     if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1403;
    4228            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1403;
    4229            0 :                                     {
    4230            0 :                                       tree res_op0;
    4231            0 :                                       {
    4232            0 :                                         tree _o1[1], _r1;
    4233            0 :                                         _o1[0] = captures[0];
    4234            0 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4235            0 :                                         res_op0 = _r1;
    4236              :                                       }
    4237            0 :                                       tree _r;
    4238            0 :                                       _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    4239            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 968, __FILE__, __LINE__, true);
    4240            0 :                                       return _r;
    4241              :                                     }
    4242            0 : next_after_fail1403:;
    4243              :                                   }
    4244              :                               }
    4245              :                             }
    4246              :                         }
    4247              :                     }
    4248              :                 }
    4249              :               break;
    4250              :             }
    4251              :           default:;
    4252              :           }
    4253              :         break;
    4254              :       }
    4255     71610529 :     default:;
    4256              :     }
    4257     71610529 :   switch (TREE_CODE (_p0))
    4258              :     {
    4259        87094 :     case COND_EXPR:
    4260        87094 :       {
    4261        87094 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4262        87094 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4263        87094 :         tree _q22 = TREE_OPERAND (_p0, 2);
    4264        87094 :         switch (TREE_CODE (_q20))
    4265              :           {
    4266        22123 :           case GT_EXPR:
    4267        22123 :             {
    4268        22123 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4269        22123 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4270        22123 :               if (real_zerop (_q31))
    4271              :                 {
    4272            4 :                   if (real_onep (_q21))
    4273              :                     {
    4274            3 :                       if (real_minus_onep (_q22))
    4275              :                         {
    4276            1 :                           if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    4277              :                             {
    4278            1 :                               {
    4279            1 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
    4280            1 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4281              : )
    4282              :                                   {
    4283            1 :                                     if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1404;
    4284            1 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1404;
    4285            1 :                                     {
    4286            1 :                                       tree res_op0;
    4287            1 :                                       {
    4288            1 :                                         tree _o1[1], _r1;
    4289            1 :                                         _o1[0] = captures[0];
    4290            1 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4291            1 :                                         res_op0 = _r1;
    4292              :                                       }
    4293            1 :                                       tree _r;
    4294            1 :                                       _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4295            1 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 968, __FILE__, __LINE__, true);
    4296            1 :                                       return _r;
    4297              :                                     }
    4298            0 : next_after_fail1404:;
    4299              :                                   }
    4300              :                               }
    4301              :                             }
    4302              :                         }
    4303              :                     }
    4304            3 :                   if (real_minus_onep (_q21))
    4305              :                     {
    4306            1 :                       if (real_onep (_q22))
    4307              :                         {
    4308            1 :                           if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    4309              :                             {
    4310            1 :                               {
    4311            1 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q22 };
    4312            1 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4313              : )
    4314              :                                   {
    4315            1 :                                     if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1405;
    4316            1 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1405;
    4317            1 :                                     {
    4318            1 :                                       tree res_op0;
    4319            1 :                                       {
    4320            1 :                                         tree _o1[1], _r1;
    4321            1 :                                         _o1[0] = captures[0];
    4322            1 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4323            1 :                                         res_op0 = _r1;
    4324              :                                       }
    4325            1 :                                       tree _r;
    4326            1 :                                       _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    4327            1 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 969, __FILE__, __LINE__, true);
    4328            1 :                                       return _r;
    4329              :                                     }
    4330            0 : next_after_fail1405:;
    4331              :                                   }
    4332              :                               }
    4333              :                             }
    4334              :                         }
    4335              :                     }
    4336              :                 }
    4337              :               break;
    4338              :             }
    4339         8279 :           case GE_EXPR:
    4340         8279 :             {
    4341         8279 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4342         8279 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4343         8279 :               if (real_zerop (_q31))
    4344              :                 {
    4345            2 :                   if (real_onep (_q21))
    4346              :                     {
    4347            1 :                       if (real_minus_onep (_q22))
    4348              :                         {
    4349            1 :                           if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    4350              :                             {
    4351            1 :                               {
    4352            1 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
    4353            1 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4354              : )
    4355              :                                   {
    4356            1 :                                     if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1406;
    4357            1 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1406;
    4358            1 :                                     {
    4359            1 :                                       tree res_op0;
    4360            1 :                                       {
    4361            1 :                                         tree _o1[1], _r1;
    4362            1 :                                         _o1[0] = captures[0];
    4363            1 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4364            1 :                                         res_op0 = _r1;
    4365              :                                       }
    4366            1 :                                       tree _r;
    4367            1 :                                       _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4368            1 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 968, __FILE__, __LINE__, true);
    4369            1 :                                       return _r;
    4370              :                                     }
    4371            0 : next_after_fail1406:;
    4372              :                                   }
    4373              :                               }
    4374              :                             }
    4375              :                         }
    4376              :                     }
    4377            1 :                   if (real_minus_onep (_q21))
    4378              :                     {
    4379            1 :                       if (real_onep (_q22))
    4380              :                         {
    4381            1 :                           if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    4382              :                             {
    4383            1 :                               {
    4384            1 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q22 };
    4385            1 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4386              : )
    4387              :                                   {
    4388            1 :                                     if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1407;
    4389            1 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1407;
    4390            1 :                                     {
    4391            1 :                                       tree res_op0;
    4392            1 :                                       {
    4393            1 :                                         tree _o1[1], _r1;
    4394            1 :                                         _o1[0] = captures[0];
    4395            1 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4396            1 :                                         res_op0 = _r1;
    4397              :                                       }
    4398            1 :                                       tree _r;
    4399            1 :                                       _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    4400            1 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 969, __FILE__, __LINE__, true);
    4401            1 :                                       return _r;
    4402              :                                     }
    4403            0 : next_after_fail1407:;
    4404              :                                   }
    4405              :                               }
    4406              :                             }
    4407              :                         }
    4408              :                     }
    4409              :                 }
    4410              :               break;
    4411              :             }
    4412         7748 :           case LT_EXPR:
    4413         7748 :             {
    4414         7748 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4415         7748 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4416         7748 :               if (real_zerop (_q31))
    4417              :                 {
    4418            2 :                   if (real_onep (_q21))
    4419              :                     {
    4420            1 :                       if (real_minus_onep (_q22))
    4421              :                         {
    4422            1 :                           if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    4423              :                             {
    4424            1 :                               {
    4425            1 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
    4426            1 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4427              : )
    4428              :                                   {
    4429            1 :                                     if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1408;
    4430            1 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1408;
    4431            1 :                                     {
    4432            1 :                                       tree res_op0;
    4433            1 :                                       {
    4434            1 :                                         tree _o1[1], _r1;
    4435            1 :                                         _o1[0] = captures[0];
    4436            1 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4437            1 :                                         res_op0 = _r1;
    4438              :                                       }
    4439            1 :                                       tree _r;
    4440            1 :                                       _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    4441            1 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 968, __FILE__, __LINE__, true);
    4442            1 :                                       return _r;
    4443              :                                     }
    4444            0 : next_after_fail1408:;
    4445              :                                   }
    4446              :                               }
    4447              :                             }
    4448              :                         }
    4449              :                     }
    4450            1 :                   if (real_minus_onep (_q21))
    4451              :                     {
    4452            1 :                       if (real_onep (_q22))
    4453              :                         {
    4454            1 :                           if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    4455              :                             {
    4456            1 :                               {
    4457            1 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q22 };
    4458            1 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4459              : )
    4460              :                                   {
    4461            1 :                                     if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1409;
    4462            1 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1409;
    4463            1 :                                     {
    4464            1 :                                       tree res_op0;
    4465            1 :                                       {
    4466            1 :                                         tree _o1[1], _r1;
    4467            1 :                                         _o1[0] = captures[0];
    4468            1 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4469            1 :                                         res_op0 = _r1;
    4470              :                                       }
    4471            1 :                                       tree _r;
    4472            1 :                                       _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4473            1 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 969, __FILE__, __LINE__, true);
    4474            1 :                                       return _r;
    4475              :                                     }
    4476            0 : next_after_fail1409:;
    4477              :                                   }
    4478              :                               }
    4479              :                             }
    4480              :                         }
    4481              :                     }
    4482              :                 }
    4483              :               break;
    4484              :             }
    4485         3259 :           case LE_EXPR:
    4486         3259 :             {
    4487         3259 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4488         3259 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4489         3259 :               if (real_zerop (_q31))
    4490              :                 {
    4491            2 :                   if (real_onep (_q21))
    4492              :                     {
    4493            1 :                       if (real_minus_onep (_q22))
    4494              :                         {
    4495            1 :                           if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    4496              :                             {
    4497            1 :                               {
    4498            1 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
    4499            1 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4500              : )
    4501              :                                   {
    4502            1 :                                     if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1410;
    4503            1 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1410;
    4504            1 :                                     {
    4505            1 :                                       tree res_op0;
    4506            1 :                                       {
    4507            1 :                                         tree _o1[1], _r1;
    4508            1 :                                         _o1[0] = captures[0];
    4509            1 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4510            1 :                                         res_op0 = _r1;
    4511              :                                       }
    4512            1 :                                       tree _r;
    4513            1 :                                       _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    4514            1 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 968, __FILE__, __LINE__, true);
    4515            1 :                                       return _r;
    4516              :                                     }
    4517            0 : next_after_fail1410:;
    4518              :                                   }
    4519              :                               }
    4520              :                             }
    4521              :                         }
    4522              :                     }
    4523            1 :                   if (real_minus_onep (_q21))
    4524              :                     {
    4525            1 :                       if (real_onep (_q22))
    4526              :                         {
    4527            1 :                           if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    4528              :                             {
    4529            1 :                               {
    4530            1 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q22 };
    4531            1 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4532              : )
    4533              :                                   {
    4534            1 :                                     if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1411;
    4535            1 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1411;
    4536            1 :                                     {
    4537            1 :                                       tree res_op0;
    4538            1 :                                       {
    4539            1 :                                         tree _o1[1], _r1;
    4540            1 :                                         _o1[0] = captures[0];
    4541            1 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4542            1 :                                         res_op0 = _r1;
    4543              :                                       }
    4544            1 :                                       tree _r;
    4545            1 :                                       _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4546            1 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 969, __FILE__, __LINE__, true);
    4547            1 :                                       return _r;
    4548              :                                     }
    4549            0 : next_after_fail1411:;
    4550              :                                   }
    4551              :                               }
    4552              :                             }
    4553              :                         }
    4554              :                     }
    4555              :                 }
    4556              :               break;
    4557              :             }
    4558              :           default:;
    4559              :           }
    4560              :         break;
    4561              :       }
    4562     71610521 :     default:;
    4563              :     }
    4564     71610521 :   switch (TREE_CODE (_p1))
    4565              :     {
    4566         3039 :     case COND_EXPR:
    4567         3039 :       {
    4568         3039 :         tree _q30 = TREE_OPERAND (_p1, 0);
    4569         3039 :         tree _q31 = TREE_OPERAND (_p1, 1);
    4570         3039 :         tree _q32 = TREE_OPERAND (_p1, 2);
    4571         3039 :         switch (TREE_CODE (_q30))
    4572              :           {
    4573          506 :           case GT_EXPR:
    4574          506 :             {
    4575          506 :               tree _q40 = TREE_OPERAND (_q30, 0);
    4576          506 :               tree _q41 = TREE_OPERAND (_q30, 1);
    4577          506 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    4578              :                 {
    4579            0 :                   if (real_zerop (_q41))
    4580              :                     {
    4581            0 :                       if (real_minus_onep (_q31))
    4582              :                         {
    4583            0 :                           if (real_onep (_q32))
    4584              :                             {
    4585            0 :                               {
    4586            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q32 };
    4587            0 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4588              : )
    4589              :                                   {
    4590            0 :                                     if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1412;
    4591            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1412;
    4592            0 :                                     {
    4593            0 :                                       tree res_op0;
    4594            0 :                                       {
    4595            0 :                                         tree _o1[1], _r1;
    4596            0 :                                         _o1[0] = captures[0];
    4597            0 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4598            0 :                                         res_op0 = _r1;
    4599              :                                       }
    4600            0 :                                       tree _r;
    4601            0 :                                       _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    4602            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 969, __FILE__, __LINE__, true);
    4603            0 :                                       return _r;
    4604              :                                     }
    4605            0 : next_after_fail1412:;
    4606              :                                   }
    4607              :                               }
    4608              :                             }
    4609              :                         }
    4610              :                     }
    4611              :                 }
    4612              :               break;
    4613              :             }
    4614           20 :           case GE_EXPR:
    4615           20 :             {
    4616           20 :               tree _q40 = TREE_OPERAND (_q30, 0);
    4617           20 :               tree _q41 = TREE_OPERAND (_q30, 1);
    4618           20 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    4619              :                 {
    4620            0 :                   if (real_zerop (_q41))
    4621              :                     {
    4622            0 :                       if (real_minus_onep (_q31))
    4623              :                         {
    4624            0 :                           if (real_onep (_q32))
    4625              :                             {
    4626            0 :                               {
    4627            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q32 };
    4628            0 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4629              : )
    4630              :                                   {
    4631            0 :                                     if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1413;
    4632            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1413;
    4633            0 :                                     {
    4634            0 :                                       tree res_op0;
    4635            0 :                                       {
    4636            0 :                                         tree _o1[1], _r1;
    4637            0 :                                         _o1[0] = captures[0];
    4638            0 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4639            0 :                                         res_op0 = _r1;
    4640              :                                       }
    4641            0 :                                       tree _r;
    4642            0 :                                       _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    4643            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 969, __FILE__, __LINE__, true);
    4644            0 :                                       return _r;
    4645              :                                     }
    4646            0 : next_after_fail1413:;
    4647              :                                   }
    4648              :                               }
    4649              :                             }
    4650              :                         }
    4651              :                     }
    4652              :                 }
    4653              :               break;
    4654              :             }
    4655           51 :           case LT_EXPR:
    4656           51 :             {
    4657           51 :               tree _q40 = TREE_OPERAND (_q30, 0);
    4658           51 :               tree _q41 = TREE_OPERAND (_q30, 1);
    4659           51 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    4660              :                 {
    4661            0 :                   if (real_zerop (_q41))
    4662              :                     {
    4663            0 :                       if (real_minus_onep (_q31))
    4664              :                         {
    4665            0 :                           if (real_onep (_q32))
    4666              :                             {
    4667            0 :                               {
    4668            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q32 };
    4669            0 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4670              : )
    4671              :                                   {
    4672            0 :                                     if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1414;
    4673            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1414;
    4674            0 :                                     {
    4675            0 :                                       tree res_op0;
    4676            0 :                                       {
    4677            0 :                                         tree _o1[1], _r1;
    4678            0 :                                         _o1[0] = captures[0];
    4679            0 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4680            0 :                                         res_op0 = _r1;
    4681              :                                       }
    4682            0 :                                       tree _r;
    4683            0 :                                       _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4684            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 969, __FILE__, __LINE__, true);
    4685            0 :                                       return _r;
    4686              :                                     }
    4687            0 : next_after_fail1414:;
    4688              :                                   }
    4689              :                               }
    4690              :                             }
    4691              :                         }
    4692              :                     }
    4693              :                 }
    4694              :               break;
    4695              :             }
    4696            5 :           case LE_EXPR:
    4697            5 :             {
    4698            5 :               tree _q40 = TREE_OPERAND (_q30, 0);
    4699            5 :               tree _q41 = TREE_OPERAND (_q30, 1);
    4700            5 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    4701              :                 {
    4702            0 :                   if (real_zerop (_q41))
    4703              :                     {
    4704            0 :                       if (real_minus_onep (_q31))
    4705              :                         {
    4706            0 :                           if (real_onep (_q32))
    4707              :                             {
    4708            0 :                               {
    4709            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q32 };
    4710            0 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4711              : )
    4712              :                                   {
    4713            0 :                                     if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1415;
    4714            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1415;
    4715            0 :                                     {
    4716            0 :                                       tree res_op0;
    4717            0 :                                       {
    4718            0 :                                         tree _o1[1], _r1;
    4719            0 :                                         _o1[0] = captures[0];
    4720            0 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4721            0 :                                         res_op0 = _r1;
    4722              :                                       }
    4723            0 :                                       tree _r;
    4724            0 :                                       _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4725            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 969, __FILE__, __LINE__, true);
    4726            0 :                                       return _r;
    4727              :                                     }
    4728            0 : next_after_fail1415:;
    4729              :                                   }
    4730              :                               }
    4731              :                             }
    4732              :                         }
    4733              :                     }
    4734              :                 }
    4735              :               break;
    4736              :             }
    4737              :           default:;
    4738              :           }
    4739              :         break;
    4740              :       }
    4741       864991 :     case CALL_EXPR:
    4742       864991 :       switch (get_call_combined_fn (_p1))
    4743              :         {
    4744           20 :         case CFN_BUILT_IN_COPYSIGNF16:
    4745           20 :           if (call_expr_nargs (_p1) == 2)
    4746              :     {
    4747           20 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    4748           20 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    4749           20 :               if (real_onep (_q30))
    4750              :                 {
    4751           20 :                   if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    4752              :                     {
    4753            0 :                       {
    4754            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4755            0 :                         tree res = generic_simplify_179 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF16);
    4756            0 :                         if (res) return res;
    4757              :                       }
    4758              :                     }
    4759              :                 }
    4760              :             }
    4761              :           break;
    4762            0 :         case CFN_BUILT_IN_COPYSIGNF32:
    4763            0 :           if (call_expr_nargs (_p1) == 2)
    4764              :     {
    4765            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    4766            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    4767            0 :               if (real_onep (_q30))
    4768              :                 {
    4769            0 :                   if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    4770              :                     {
    4771            0 :                       {
    4772            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4773            0 :                         tree res = generic_simplify_179 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF32);
    4774            0 :                         if (res) return res;
    4775              :                       }
    4776              :                     }
    4777              :                 }
    4778              :             }
    4779              :           break;
    4780            0 :         case CFN_BUILT_IN_COPYSIGNF64:
    4781            0 :           if (call_expr_nargs (_p1) == 2)
    4782              :     {
    4783            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    4784            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    4785            0 :               if (real_onep (_q30))
    4786              :                 {
    4787            0 :                   if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    4788              :                     {
    4789            0 :                       {
    4790            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4791            0 :                         tree res = generic_simplify_179 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF64);
    4792            0 :                         if (res) return res;
    4793              :                       }
    4794              :                     }
    4795              :                 }
    4796              :             }
    4797              :           break;
    4798            0 :         case CFN_BUILT_IN_COPYSIGNF128X:
    4799            0 :           if (call_expr_nargs (_p1) == 2)
    4800              :     {
    4801            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    4802            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    4803            0 :               if (real_onep (_q30))
    4804              :                 {
    4805            0 :                   if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    4806              :                     {
    4807            0 :                       {
    4808            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4809            0 :                         tree res = generic_simplify_179 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF128X);
    4810            0 :                         if (res) return res;
    4811              :                       }
    4812              :                     }
    4813              :                 }
    4814              :             }
    4815              :           break;
    4816            0 :         case CFN_BUILT_IN_COPYSIGNF128:
    4817            0 :           if (call_expr_nargs (_p1) == 2)
    4818              :     {
    4819            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    4820            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    4821            0 :               if (real_onep (_q30))
    4822              :                 {
    4823            0 :                   if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    4824              :                     {
    4825            0 :                       {
    4826            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4827            0 :                         tree res = generic_simplify_179 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF128);
    4828            0 :                         if (res) return res;
    4829              :                       }
    4830              :                     }
    4831              :                 }
    4832              :             }
    4833              :           break;
    4834            0 :         case CFN_BUILT_IN_COPYSIGNF32X:
    4835            0 :           if (call_expr_nargs (_p1) == 2)
    4836              :     {
    4837            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    4838            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    4839            0 :               if (real_onep (_q30))
    4840              :                 {
    4841            0 :                   if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    4842              :                     {
    4843            0 :                       {
    4844            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4845            0 :                         tree res = generic_simplify_179 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF32X);
    4846            0 :                         if (res) return res;
    4847              :                       }
    4848              :                     }
    4849              :                 }
    4850              :             }
    4851              :           break;
    4852            0 :         case CFN_BUILT_IN_COPYSIGNF64X:
    4853            0 :           if (call_expr_nargs (_p1) == 2)
    4854              :     {
    4855            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    4856            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    4857            0 :               if (real_onep (_q30))
    4858              :                 {
    4859            0 :                   if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    4860              :                     {
    4861            0 :                       {
    4862            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4863            0 :                         tree res = generic_simplify_179 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF64X);
    4864            0 :                         if (res) return res;
    4865              :                       }
    4866              :                     }
    4867              :                 }
    4868              :             }
    4869              :           break;
    4870           18 :         case CFN_BUILT_IN_COPYSIGN:
    4871           18 :           if (call_expr_nargs (_p1) == 2)
    4872              :     {
    4873           18 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    4874           18 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    4875           18 :               if (real_onep (_q30))
    4876              :                 {
    4877           14 :                   if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    4878              :                     {
    4879            0 :                       {
    4880            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4881            0 :                         tree res = generic_simplify_179 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGN);
    4882            0 :                         if (res) return res;
    4883              :                       }
    4884              :                     }
    4885              :                 }
    4886              :             }
    4887              :           break;
    4888           14 :         case CFN_BUILT_IN_COPYSIGNF:
    4889           14 :           if (call_expr_nargs (_p1) == 2)
    4890              :     {
    4891           14 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    4892           14 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    4893           14 :               if (real_onep (_q30))
    4894              :                 {
    4895           12 :                   if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    4896              :                     {
    4897            0 :                       {
    4898            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4899            0 :                         tree res = generic_simplify_179 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF);
    4900            0 :                         if (res) return res;
    4901              :                       }
    4902              :                     }
    4903              :                 }
    4904              :             }
    4905              :           break;
    4906            0 :         case CFN_BUILT_IN_COPYSIGNL:
    4907            0 :           if (call_expr_nargs (_p1) == 2)
    4908              :     {
    4909            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    4910            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    4911            0 :               if (real_onep (_q30))
    4912              :                 {
    4913            0 :                   if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    4914              :                     {
    4915            0 :                       {
    4916            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4917            0 :                         tree res = generic_simplify_179 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNL);
    4918            0 :                         if (res) return res;
    4919              :                       }
    4920              :                     }
    4921              :                 }
    4922              :             }
    4923              :           break;
    4924            0 :         case CFN_COPYSIGN:
    4925            0 :           if (call_expr_nargs (_p1) == 2)
    4926              :     {
    4927            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    4928            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    4929            0 :               if (real_onep (_q30))
    4930              :                 {
    4931            0 :                   if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    4932              :                     {
    4933            0 :                       {
    4934            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4935            0 :                         tree res = generic_simplify_179 (loc, type, _p0, _p1, captures, CFN_COPYSIGN);
    4936            0 :                         if (res) return res;
    4937              :                       }
    4938              :                     }
    4939              :                 }
    4940              :             }
    4941              :           break;
    4942              :         default:;
    4943              :         }
    4944              :       break;
    4945     71610521 :     default:;
    4946              :     }
    4947     71610521 :   switch (TREE_CODE (_p0))
    4948              :     {
    4949      2633703 :     case CALL_EXPR:
    4950      2633703 :       switch (get_call_combined_fn (_p0))
    4951              :         {
    4952            1 :         case CFN_BUILT_IN_COPYSIGNF16:
    4953            1 :           if (call_expr_nargs (_p0) == 2)
    4954              :     {
    4955            1 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    4956            1 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    4957            1 :               if (real_onep (_q20))
    4958              :                 {
    4959            1 :                   if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    4960              :                     {
    4961            0 :                       {
    4962            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _q21 };
    4963            0 :                         tree res = generic_simplify_180 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF16);
    4964            0 :                         if (res) return res;
    4965              :                       }
    4966              :                     }
    4967            1 :                   switch (TREE_CODE (_q21))
    4968              :                     {
    4969            0 :                     case NEGATE_EXPR:
    4970            0 :                       {
    4971            0 :                         tree _q40 = TREE_OPERAND (_q21, 0);
    4972            0 :                         if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    4973              :                           {
    4974            0 :                             {
    4975            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
    4976            0 :                               tree res = generic_simplify_181 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF16);
    4977            0 :                               if (res) return res;
    4978              :                             }
    4979              :                           }
    4980              :                         break;
    4981              :                       }
    4982              :                     default:;
    4983              :                     }
    4984              :                 }
    4985              :             }
    4986              :           break;
    4987            0 :         case CFN_BUILT_IN_COPYSIGNF32:
    4988            0 :           if (call_expr_nargs (_p0) == 2)
    4989              :     {
    4990            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    4991            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    4992            0 :               if (real_onep (_q20))
    4993              :                 {
    4994            0 :                   if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    4995              :                     {
    4996            0 :                       {
    4997            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _q21 };
    4998            0 :                         tree res = generic_simplify_180 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF32);
    4999            0 :                         if (res) return res;
    5000              :                       }
    5001              :                     }
    5002            0 :                   switch (TREE_CODE (_q21))
    5003              :                     {
    5004            0 :                     case NEGATE_EXPR:
    5005            0 :                       {
    5006            0 :                         tree _q40 = TREE_OPERAND (_q21, 0);
    5007            0 :                         if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    5008              :                           {
    5009            0 :                             {
    5010            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
    5011            0 :                               tree res = generic_simplify_181 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF32);
    5012            0 :                               if (res) return res;
    5013              :                             }
    5014              :                           }
    5015              :                         break;
    5016              :                       }
    5017              :                     default:;
    5018              :                     }
    5019              :                 }
    5020              :             }
    5021              :           break;
    5022            0 :         case CFN_BUILT_IN_COPYSIGNF64:
    5023            0 :           if (call_expr_nargs (_p0) == 2)
    5024              :     {
    5025            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    5026            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    5027            0 :               if (real_onep (_q20))
    5028              :                 {
    5029            0 :                   if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5030              :                     {
    5031            0 :                       {
    5032            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _q21 };
    5033            0 :                         tree res = generic_simplify_180 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF64);
    5034            0 :                         if (res) return res;
    5035              :                       }
    5036              :                     }
    5037            0 :                   switch (TREE_CODE (_q21))
    5038              :                     {
    5039            0 :                     case NEGATE_EXPR:
    5040            0 :                       {
    5041            0 :                         tree _q40 = TREE_OPERAND (_q21, 0);
    5042            0 :                         if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    5043              :                           {
    5044            0 :                             {
    5045            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
    5046            0 :                               tree res = generic_simplify_181 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF64);
    5047            0 :                               if (res) return res;
    5048              :                             }
    5049              :                           }
    5050              :                         break;
    5051              :                       }
    5052              :                     default:;
    5053              :                     }
    5054              :                 }
    5055              :             }
    5056              :           break;
    5057            0 :         case CFN_BUILT_IN_COPYSIGNF128X:
    5058            0 :           if (call_expr_nargs (_p0) == 2)
    5059              :     {
    5060            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    5061            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    5062            0 :               if (real_onep (_q20))
    5063              :                 {
    5064            0 :                   if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5065              :                     {
    5066            0 :                       {
    5067            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _q21 };
    5068            0 :                         tree res = generic_simplify_180 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF128X);
    5069            0 :                         if (res) return res;
    5070              :                       }
    5071              :                     }
    5072            0 :                   switch (TREE_CODE (_q21))
    5073              :                     {
    5074            0 :                     case NEGATE_EXPR:
    5075            0 :                       {
    5076            0 :                         tree _q40 = TREE_OPERAND (_q21, 0);
    5077            0 :                         if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    5078              :                           {
    5079            0 :                             {
    5080            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
    5081            0 :                               tree res = generic_simplify_181 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF128X);
    5082            0 :                               if (res) return res;
    5083              :                             }
    5084              :                           }
    5085              :                         break;
    5086              :                       }
    5087              :                     default:;
    5088              :                     }
    5089              :                 }
    5090              :             }
    5091              :           break;
    5092            8 :         case CFN_BUILT_IN_COPYSIGNF128:
    5093            8 :           if (call_expr_nargs (_p0) == 2)
    5094              :     {
    5095            8 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    5096            8 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    5097            8 :               if (real_onep (_q20))
    5098              :                 {
    5099            0 :                   if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5100              :                     {
    5101            0 :                       {
    5102            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _q21 };
    5103            0 :                         tree res = generic_simplify_180 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF128);
    5104            0 :                         if (res) return res;
    5105              :                       }
    5106              :                     }
    5107            0 :                   switch (TREE_CODE (_q21))
    5108              :                     {
    5109            0 :                     case NEGATE_EXPR:
    5110            0 :                       {
    5111            0 :                         tree _q40 = TREE_OPERAND (_q21, 0);
    5112            0 :                         if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    5113              :                           {
    5114            0 :                             {
    5115            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
    5116            0 :                               tree res = generic_simplify_181 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF128);
    5117            0 :                               if (res) return res;
    5118              :                             }
    5119              :                           }
    5120              :                         break;
    5121              :                       }
    5122              :                     default:;
    5123              :                     }
    5124              :                 }
    5125              :             }
    5126              :           break;
    5127            0 :         case CFN_BUILT_IN_COPYSIGNF32X:
    5128            0 :           if (call_expr_nargs (_p0) == 2)
    5129              :     {
    5130            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    5131            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    5132            0 :               if (real_onep (_q20))
    5133              :                 {
    5134            0 :                   if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5135              :                     {
    5136            0 :                       {
    5137            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _q21 };
    5138            0 :                         tree res = generic_simplify_180 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF32X);
    5139            0 :                         if (res) return res;
    5140              :                       }
    5141              :                     }
    5142            0 :                   switch (TREE_CODE (_q21))
    5143              :                     {
    5144            0 :                     case NEGATE_EXPR:
    5145            0 :                       {
    5146            0 :                         tree _q40 = TREE_OPERAND (_q21, 0);
    5147            0 :                         if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    5148              :                           {
    5149            0 :                             {
    5150            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
    5151            0 :                               tree res = generic_simplify_181 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF32X);
    5152            0 :                               if (res) return res;
    5153              :                             }
    5154              :                           }
    5155              :                         break;
    5156              :                       }
    5157              :                     default:;
    5158              :                     }
    5159              :                 }
    5160              :             }
    5161              :           break;
    5162            0 :         case CFN_BUILT_IN_COPYSIGNF64X:
    5163            0 :           if (call_expr_nargs (_p0) == 2)
    5164              :     {
    5165            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    5166            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    5167            0 :               if (real_onep (_q20))
    5168              :                 {
    5169            0 :                   if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5170              :                     {
    5171            0 :                       {
    5172            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _q21 };
    5173            0 :                         tree res = generic_simplify_180 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF64X);
    5174            0 :                         if (res) return res;
    5175              :                       }
    5176              :                     }
    5177            0 :                   switch (TREE_CODE (_q21))
    5178              :                     {
    5179            0 :                     case NEGATE_EXPR:
    5180            0 :                       {
    5181            0 :                         tree _q40 = TREE_OPERAND (_q21, 0);
    5182            0 :                         if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    5183              :                           {
    5184            0 :                             {
    5185            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
    5186            0 :                               tree res = generic_simplify_181 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF64X);
    5187            0 :                               if (res) return res;
    5188              :                             }
    5189              :                           }
    5190              :                         break;
    5191              :                       }
    5192              :                     default:;
    5193              :                     }
    5194              :                 }
    5195              :             }
    5196              :           break;
    5197           18 :         case CFN_BUILT_IN_COPYSIGN:
    5198           18 :           if (call_expr_nargs (_p0) == 2)
    5199              :     {
    5200           18 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    5201           18 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    5202           18 :               if (real_onep (_q20))
    5203              :                 {
    5204            3 :                   if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5205              :                     {
    5206            0 :                       {
    5207            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _q21 };
    5208            0 :                         tree res = generic_simplify_180 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGN);
    5209            0 :                         if (res) return res;
    5210              :                       }
    5211              :                     }
    5212            3 :                   switch (TREE_CODE (_q21))
    5213              :                     {
    5214            0 :                     case NEGATE_EXPR:
    5215            0 :                       {
    5216            0 :                         tree _q40 = TREE_OPERAND (_q21, 0);
    5217            0 :                         if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    5218              :                           {
    5219            0 :                             {
    5220            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
    5221            0 :                               tree res = generic_simplify_181 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGN);
    5222            0 :                               if (res) return res;
    5223              :                             }
    5224              :                           }
    5225              :                         break;
    5226              :                       }
    5227              :                     default:;
    5228              :                     }
    5229              :                 }
    5230              :             }
    5231              :           break;
    5232           36 :         case CFN_BUILT_IN_COPYSIGNF:
    5233           36 :           if (call_expr_nargs (_p0) == 2)
    5234              :     {
    5235           36 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    5236           36 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    5237           36 :               if (real_onep (_q20))
    5238              :                 {
    5239           12 :                   if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5240              :                     {
    5241            4 :                       {
    5242            4 :                         tree captures[1] ATTRIBUTE_UNUSED = { _q21 };
    5243            4 :                         tree res = generic_simplify_180 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF);
    5244            4 :                         if (res) return res;
    5245              :                       }
    5246              :                     }
    5247           12 :                   switch (TREE_CODE (_q21))
    5248              :                     {
    5249            0 :                     case NEGATE_EXPR:
    5250            0 :                       {
    5251            0 :                         tree _q40 = TREE_OPERAND (_q21, 0);
    5252            0 :                         if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    5253              :                           {
    5254            0 :                             {
    5255            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
    5256            0 :                               tree res = generic_simplify_181 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF);
    5257            0 :                               if (res) return res;
    5258              :                             }
    5259              :                           }
    5260              :                         break;
    5261              :                       }
    5262              :                     default:;
    5263              :                     }
    5264              :                 }
    5265              :             }
    5266              :           break;
    5267            8 :         case CFN_BUILT_IN_COPYSIGNL:
    5268            8 :           if (call_expr_nargs (_p0) == 2)
    5269              :     {
    5270            8 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    5271            8 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    5272            8 :               if (real_onep (_q20))
    5273              :                 {
    5274            0 :                   if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5275              :                     {
    5276            0 :                       {
    5277            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _q21 };
    5278            0 :                         tree res = generic_simplify_180 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNL);
    5279            0 :                         if (res) return res;
    5280              :                       }
    5281              :                     }
    5282            0 :                   switch (TREE_CODE (_q21))
    5283              :                     {
    5284            0 :                     case NEGATE_EXPR:
    5285            0 :                       {
    5286            0 :                         tree _q40 = TREE_OPERAND (_q21, 0);
    5287            0 :                         if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    5288              :                           {
    5289            0 :                             {
    5290            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
    5291            0 :                               tree res = generic_simplify_181 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNL);
    5292            0 :                               if (res) return res;
    5293              :                             }
    5294              :                           }
    5295              :                         break;
    5296              :                       }
    5297              :                     default:;
    5298              :                     }
    5299              :                 }
    5300              :             }
    5301              :           break;
    5302            0 :         case CFN_COPYSIGN:
    5303            0 :           if (call_expr_nargs (_p0) == 2)
    5304              :     {
    5305            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    5306            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    5307            0 :               if (real_onep (_q20))
    5308              :                 {
    5309            0 :                   if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5310              :                     {
    5311            0 :                       {
    5312            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _q21 };
    5313            0 :                         tree res = generic_simplify_180 (loc, type, _p0, _p1, captures, CFN_COPYSIGN);
    5314            0 :                         if (res) return res;
    5315              :                       }
    5316              :                     }
    5317            0 :                   switch (TREE_CODE (_q21))
    5318              :                     {
    5319            0 :                     case NEGATE_EXPR:
    5320            0 :                       {
    5321            0 :                         tree _q40 = TREE_OPERAND (_q21, 0);
    5322            0 :                         if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    5323              :                           {
    5324            0 :                             {
    5325            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
    5326            0 :                               tree res = generic_simplify_181 (loc, type, _p0, _p1, captures, CFN_COPYSIGN);
    5327            0 :                               if (res) return res;
    5328              :                             }
    5329              :                           }
    5330              :                         break;
    5331              :                       }
    5332              :                     default:;
    5333              :                     }
    5334              :                 }
    5335              :             }
    5336              :           break;
    5337              :         default:;
    5338              :         }
    5339              :       break;
    5340     71610521 :     default:;
    5341              :     }
    5342     71610521 :   switch (TREE_CODE (_p1))
    5343              :     {
    5344       864991 :     case CALL_EXPR:
    5345       864991 :       switch (get_call_combined_fn (_p1))
    5346              :         {
    5347           20 :         case CFN_BUILT_IN_COPYSIGNF16:
    5348           20 :           if (call_expr_nargs (_p1) == 2)
    5349              :     {
    5350           20 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    5351           20 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    5352           20 :               if (real_onep (_q30))
    5353              :                 {
    5354           20 :                   switch (TREE_CODE (_q31))
    5355              :                     {
    5356            0 :                     case NEGATE_EXPR:
    5357            0 :                       {
    5358            0 :                         tree _q50 = TREE_OPERAND (_q31, 0);
    5359            0 :                         if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    5360              :                           {
    5361            0 :                             {
    5362            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5363            0 :                               tree res = generic_simplify_182 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF16);
    5364            0 :                               if (res) return res;
    5365              :                             }
    5366              :                           }
    5367              :                         break;
    5368              :                       }
    5369              :                     default:;
    5370              :                     }
    5371              :                 }
    5372              :             }
    5373              :           break;
    5374            0 :         case CFN_BUILT_IN_COPYSIGNF32:
    5375            0 :           if (call_expr_nargs (_p1) == 2)
    5376              :     {
    5377            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    5378            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    5379            0 :               if (real_onep (_q30))
    5380              :                 {
    5381            0 :                   switch (TREE_CODE (_q31))
    5382              :                     {
    5383            0 :                     case NEGATE_EXPR:
    5384            0 :                       {
    5385            0 :                         tree _q50 = TREE_OPERAND (_q31, 0);
    5386            0 :                         if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    5387              :                           {
    5388            0 :                             {
    5389            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5390            0 :                               tree res = generic_simplify_182 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF32);
    5391            0 :                               if (res) return res;
    5392              :                             }
    5393              :                           }
    5394              :                         break;
    5395              :                       }
    5396              :                     default:;
    5397              :                     }
    5398              :                 }
    5399              :             }
    5400              :           break;
    5401            0 :         case CFN_BUILT_IN_COPYSIGNF64:
    5402            0 :           if (call_expr_nargs (_p1) == 2)
    5403              :     {
    5404            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    5405            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    5406            0 :               if (real_onep (_q30))
    5407              :                 {
    5408            0 :                   switch (TREE_CODE (_q31))
    5409              :                     {
    5410            0 :                     case NEGATE_EXPR:
    5411            0 :                       {
    5412            0 :                         tree _q50 = TREE_OPERAND (_q31, 0);
    5413            0 :                         if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    5414              :                           {
    5415            0 :                             {
    5416            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5417            0 :                               tree res = generic_simplify_182 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF64);
    5418            0 :                               if (res) return res;
    5419              :                             }
    5420              :                           }
    5421              :                         break;
    5422              :                       }
    5423              :                     default:;
    5424              :                     }
    5425              :                 }
    5426              :             }
    5427              :           break;
    5428            0 :         case CFN_BUILT_IN_COPYSIGNF128X:
    5429            0 :           if (call_expr_nargs (_p1) == 2)
    5430              :     {
    5431            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    5432            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    5433            0 :               if (real_onep (_q30))
    5434              :                 {
    5435            0 :                   switch (TREE_CODE (_q31))
    5436              :                     {
    5437            0 :                     case NEGATE_EXPR:
    5438            0 :                       {
    5439            0 :                         tree _q50 = TREE_OPERAND (_q31, 0);
    5440            0 :                         if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    5441              :                           {
    5442            0 :                             {
    5443            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5444            0 :                               tree res = generic_simplify_182 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF128X);
    5445            0 :                               if (res) return res;
    5446              :                             }
    5447              :                           }
    5448              :                         break;
    5449              :                       }
    5450              :                     default:;
    5451              :                     }
    5452              :                 }
    5453              :             }
    5454              :           break;
    5455            0 :         case CFN_BUILT_IN_COPYSIGNF128:
    5456            0 :           if (call_expr_nargs (_p1) == 2)
    5457              :     {
    5458            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    5459            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    5460            0 :               if (real_onep (_q30))
    5461              :                 {
    5462            0 :                   switch (TREE_CODE (_q31))
    5463              :                     {
    5464            0 :                     case NEGATE_EXPR:
    5465            0 :                       {
    5466            0 :                         tree _q50 = TREE_OPERAND (_q31, 0);
    5467            0 :                         if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    5468              :                           {
    5469            0 :                             {
    5470            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5471            0 :                               tree res = generic_simplify_182 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF128);
    5472            0 :                               if (res) return res;
    5473              :                             }
    5474              :                           }
    5475              :                         break;
    5476              :                       }
    5477              :                     default:;
    5478              :                     }
    5479              :                 }
    5480              :             }
    5481              :           break;
    5482            0 :         case CFN_BUILT_IN_COPYSIGNF32X:
    5483            0 :           if (call_expr_nargs (_p1) == 2)
    5484              :     {
    5485            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    5486            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    5487            0 :               if (real_onep (_q30))
    5488              :                 {
    5489            0 :                   switch (TREE_CODE (_q31))
    5490              :                     {
    5491            0 :                     case NEGATE_EXPR:
    5492            0 :                       {
    5493            0 :                         tree _q50 = TREE_OPERAND (_q31, 0);
    5494            0 :                         if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    5495              :                           {
    5496            0 :                             {
    5497            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5498            0 :                               tree res = generic_simplify_182 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF32X);
    5499            0 :                               if (res) return res;
    5500              :                             }
    5501              :                           }
    5502              :                         break;
    5503              :                       }
    5504              :                     default:;
    5505              :                     }
    5506              :                 }
    5507              :             }
    5508              :           break;
    5509            0 :         case CFN_BUILT_IN_COPYSIGNF64X:
    5510            0 :           if (call_expr_nargs (_p1) == 2)
    5511              :     {
    5512            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    5513            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    5514            0 :               if (real_onep (_q30))
    5515              :                 {
    5516            0 :                   switch (TREE_CODE (_q31))
    5517              :                     {
    5518            0 :                     case NEGATE_EXPR:
    5519            0 :                       {
    5520            0 :                         tree _q50 = TREE_OPERAND (_q31, 0);
    5521            0 :                         if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    5522              :                           {
    5523            0 :                             {
    5524            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5525            0 :                               tree res = generic_simplify_182 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF64X);
    5526            0 :                               if (res) return res;
    5527              :                             }
    5528              :                           }
    5529              :                         break;
    5530              :                       }
    5531              :                     default:;
    5532              :                     }
    5533              :                 }
    5534              :             }
    5535              :           break;
    5536           18 :         case CFN_BUILT_IN_COPYSIGN:
    5537           18 :           if (call_expr_nargs (_p1) == 2)
    5538              :     {
    5539           18 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    5540           18 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    5541           18 :               if (real_onep (_q30))
    5542              :                 {
    5543           14 :                   switch (TREE_CODE (_q31))
    5544              :                     {
    5545            0 :                     case NEGATE_EXPR:
    5546            0 :                       {
    5547            0 :                         tree _q50 = TREE_OPERAND (_q31, 0);
    5548            0 :                         if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    5549              :                           {
    5550            0 :                             {
    5551            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5552            0 :                               tree res = generic_simplify_182 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGN);
    5553            0 :                               if (res) return res;
    5554              :                             }
    5555              :                           }
    5556              :                         break;
    5557              :                       }
    5558              :                     default:;
    5559              :                     }
    5560              :                 }
    5561              :             }
    5562              :           break;
    5563           14 :         case CFN_BUILT_IN_COPYSIGNF:
    5564           14 :           if (call_expr_nargs (_p1) == 2)
    5565              :     {
    5566           14 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    5567           14 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    5568           14 :               if (real_onep (_q30))
    5569              :                 {
    5570           12 :                   switch (TREE_CODE (_q31))
    5571              :                     {
    5572            0 :                     case NEGATE_EXPR:
    5573            0 :                       {
    5574            0 :                         tree _q50 = TREE_OPERAND (_q31, 0);
    5575            0 :                         if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    5576              :                           {
    5577            0 :                             {
    5578            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5579            0 :                               tree res = generic_simplify_182 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF);
    5580            0 :                               if (res) return res;
    5581              :                             }
    5582              :                           }
    5583              :                         break;
    5584              :                       }
    5585              :                     default:;
    5586              :                     }
    5587              :                 }
    5588              :             }
    5589              :           break;
    5590            0 :         case CFN_BUILT_IN_COPYSIGNL:
    5591            0 :           if (call_expr_nargs (_p1) == 2)
    5592              :     {
    5593            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    5594            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    5595            0 :               if (real_onep (_q30))
    5596              :                 {
    5597            0 :                   switch (TREE_CODE (_q31))
    5598              :                     {
    5599            0 :                     case NEGATE_EXPR:
    5600            0 :                       {
    5601            0 :                         tree _q50 = TREE_OPERAND (_q31, 0);
    5602            0 :                         if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    5603              :                           {
    5604            0 :                             {
    5605            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5606            0 :                               tree res = generic_simplify_182 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNL);
    5607            0 :                               if (res) return res;
    5608              :                             }
    5609              :                           }
    5610              :                         break;
    5611              :                       }
    5612              :                     default:;
    5613              :                     }
    5614              :                 }
    5615              :             }
    5616              :           break;
    5617            0 :         case CFN_COPYSIGN:
    5618            0 :           if (call_expr_nargs (_p1) == 2)
    5619              :     {
    5620            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    5621            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    5622            0 :               if (real_onep (_q30))
    5623              :                 {
    5624            0 :                   switch (TREE_CODE (_q31))
    5625              :                     {
    5626            0 :                     case NEGATE_EXPR:
    5627            0 :                       {
    5628            0 :                         tree _q50 = TREE_OPERAND (_q31, 0);
    5629            0 :                         if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    5630              :                           {
    5631            0 :                             {
    5632            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5633            0 :                               tree res = generic_simplify_182 (loc, type, _p0, _p1, captures, CFN_COPYSIGN);
    5634            0 :                               if (res) return res;
    5635              :                             }
    5636              :                           }
    5637              :                         break;
    5638              :                       }
    5639              :                     default:;
    5640              :                     }
    5641              :                 }
    5642              :             }
    5643              :           break;
    5644              :         default:;
    5645              :         }
    5646              :       break;
    5647     71610521 :     default:;
    5648              :     }
    5649     71610521 : if (integer_onep (_p1))
    5650              :   {
    5651      3339519 :     {
    5652      3339519 :       tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5653      3339519 :       tree res = generic_simplify_183 (loc, type, _p0, _p1, captures, MULT_EXPR);
    5654      3339519 :       if (res) return res;
    5655              :     }
    5656              :   }
    5657     68271002 :   switch (TREE_CODE (_p0))
    5658              :     {
    5659      5696756 :     case MULT_EXPR:
    5660      5696756 :       {
    5661      5696756 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5662      5696756 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5663      5696756 :         switch (TREE_CODE (_q21))
    5664              :           {
    5665      1139367 :           case INTEGER_CST:
    5666      1139367 :             {
    5667      1139367 :               switch (TREE_CODE (_p1))
    5668              :                 {
    5669       981262 :                 case INTEGER_CST:
    5670       981262 :                   {
    5671       981262 :                     {
    5672       981262 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    5673       981262 :                       {
    5674       981262 :  wi::overflow_type overflow;
    5675       981262 :  wide_int mul = wi::mul (wi::to_wide (captures[1]), wi::to_wide (captures[2]),
    5676      1962524 :  TYPE_SIGN (type), &overflow);
    5677       981262 :                           if (!overflow || TYPE_OVERFLOW_WRAPS (type)
    5678              : )
    5679              :                             {
    5680       981232 :                               if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1416;
    5681       981232 :                               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1416;
    5682       981232 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1416;
    5683       981232 :                               {
    5684       981232 :                                 tree res_op0;
    5685       981232 :                                 res_op0 = captures[0];
    5686       981232 :                                 tree res_op1;
    5687       981232 :                                 res_op1 =  wide_int_to_tree (type, mul);
    5688       981232 :                                 tree _r;
    5689       981232 :                                 _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    5690       981232 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 970, __FILE__, __LINE__, true);
    5691       981232 :                                 return _r;
    5692              :                               }
    5693           30 : next_after_fail1416:;
    5694              :                             }
    5695       981232 :                       }
    5696              :                     }
    5697           30 :                     break;
    5698              :                   }
    5699              :                 default:;
    5700              :                 }
    5701              :               break;
    5702              :             }
    5703              :           default:;
    5704              :           }
    5705              :         break;
    5706              :       }
    5707      7826009 :     case PLUS_EXPR:
    5708      7826009 :       {
    5709      7826009 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5710      7826009 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5711      7826009 :         switch (TREE_CODE (_q20))
    5712              :           {
    5713      1249545 :           case MULT_EXPR:
    5714      1249545 :             {
    5715      1249545 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5716      1249545 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5717      1249545 :               switch (TREE_CODE (_q31))
    5718              :                 {
    5719       304076 :                 case INTEGER_CST:
    5720       304076 :                   {
    5721       304076 :                     switch (TREE_CODE (_q21))
    5722              :                       {
    5723        32357 :                       case INTEGER_CST:
    5724        32357 :                         {
    5725        32357 :                           switch (TREE_CODE (_p1))
    5726              :                             {
    5727        12041 :                             case INTEGER_CST:
    5728        12041 :                               {
    5729        12041 :                                 {
    5730        12041 :                                   tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
    5731        12041 :                                   {
    5732        12041 :  bool overflowed = true;
    5733        12041 :  wi::overflow_type ovf1, ovf2;
    5734        12041 :  wide_int mul = wi::mul (wi::to_wide (captures[3]), wi::to_wide (captures[5]),
    5735        24082 :  TYPE_SIGN (type), &ovf1);
    5736        12041 :  wide_int add = wi::mul (wi::to_wide (captures[4]), wi::to_wide (captures[5]),
    5737        24082 :  TYPE_SIGN (type), &ovf2);
    5738        12041 :  if (TYPE_OVERFLOW_UNDEFINED (type))
    5739              :  {
    5740              :  }
    5741              :  else
    5742         4074 :  overflowed = false;
    5743         4074 :                                       if (!overflowed
    5744              : )
    5745              :                                         {
    5746         4074 :                                           if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1417;
    5747         4074 :                                           if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1417;
    5748         4074 :                                           if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1417;
    5749         4074 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1417;
    5750         4074 :                                           {
    5751         4074 :                                             tree res_op0;
    5752         4074 :                                             {
    5753         4074 :                                               tree _o1[2], _r1;
    5754         4074 :                                               _o1[0] = captures[2];
    5755         4074 :                                               _o1[1] =  wide_int_to_tree (type, mul);
    5756         4074 :                                               _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    5757         4074 :                                               res_op0 = _r1;
    5758              :                                             }
    5759         4074 :                                             tree res_op1;
    5760         4074 :                                             res_op1 =  wide_int_to_tree (type, add);
    5761         4074 :                                             tree _r;
    5762         4074 :                                             _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
    5763         4074 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 971, __FILE__, __LINE__, true);
    5764         4074 :                                             return _r;
    5765              :                                           }
    5766         7967 : next_after_fail1417:;
    5767              :                                         }
    5768        12041 :                                   }
    5769              :                                 }
    5770         7967 :                                 break;
    5771              :                               }
    5772              :                             default:;
    5773              :                             }
    5774              :                           break;
    5775              :                         }
    5776              :                       default:;
    5777              :                       }
    5778              :                     break;
    5779              :                   }
    5780              :                 default:;
    5781              :                 }
    5782              :               break;
    5783              :             }
    5784              :           default:;
    5785              :           }
    5786              :         break;
    5787              :       }
    5788        98793 :     case TRUNC_DIV_EXPR:
    5789        98793 :       {
    5790        98793 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5791        98793 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5792        98793 :         if (integer_pow2p (_q21))
    5793              :           {
    5794        74843 :             if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5795              :               {
    5796        51779 :                 {
    5797        51779 :                   tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    5798        51779 :                   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && TYPE_UNSIGNED (TREE_TYPE (captures[0]))
    5799              : )
    5800              :                     {
    5801        51715 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1418;
    5802        51715 :                       {
    5803        51715 :                         tree res_op0;
    5804        51715 :                         res_op0 = captures[0];
    5805        51715 :                         tree res_op1;
    5806        51715 :                         {
    5807        51715 :                           tree _o1[1], _r1;
    5808        51715 :                           _o1[0] = captures[1];
    5809        51715 :                           _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    5810        51715 :                           res_op1 = _r1;
    5811              :                         }
    5812        51715 :                         tree _r;
    5813        51715 :                         _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    5814        51715 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 972, __FILE__, __LINE__, true);
    5815        51715 :                         return _r;
    5816              :                       }
    5817            0 : next_after_fail1418:;
    5818              :                     }
    5819              :                 }
    5820              :               }
    5821              :           }
    5822              :         break;
    5823              :       }
    5824          260 :     case ABS_EXPR:
    5825          260 :       {
    5826          260 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5827          260 :         if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    5828              :           {
    5829            2 :             {
    5830            2 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
    5831            2 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1419;
    5832            2 :               {
    5833            2 :                 if (! tree_invariant_p (captures[1])) goto next_after_fail1419;
    5834            0 :                 tree res_op0;
    5835            0 :                 res_op0 = unshare_expr (captures[1]);
    5836            0 :                 tree res_op1;
    5837            0 :                 res_op1 = captures[1];
    5838            0 :                 tree _r;
    5839            0 :                 _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    5840            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 973, __FILE__, __LINE__, true);
    5841            0 :                 return _r;
    5842              :               }
    5843            2 : next_after_fail1419:;
    5844              :             }
    5845              :           }
    5846              :         break;
    5847              :       }
    5848            0 :     case ABSU_EXPR:
    5849            0 :       {
    5850            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5851            0 :         if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    5852              :           {
    5853            0 :             {
    5854            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20 };
    5855            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1420;
    5856            0 :               {
    5857            0 :                 tree res_op0;
    5858            0 :                 {
    5859            0 :                   tree _o1[1], _r1;
    5860            0 :                   _o1[0] = captures[1];
    5861            0 :                   if (TREE_TYPE (_o1[0]) != type)
    5862              :                     {
    5863            0 :                       _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    5864              :                     }
    5865              :                   else
    5866              :                     _r1 = _o1[0];
    5867            0 :                   captures[2] = _r1;
    5868              :                 }
    5869            0 :                 res_op0 = unshare_expr (captures[2]);
    5870            0 :                 tree res_op1;
    5871            0 :                 res_op1 = captures[2];
    5872            0 :                 tree _r;
    5873            0 :                 _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    5874            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 974, __FILE__, __LINE__, true);
    5875            0 :                 return _r;
    5876              :               }
    5877            0 : next_after_fail1420:;
    5878              :             }
    5879              :           }
    5880              :         break;
    5881              :       }
    5882      2416590 :     case CALL_EXPR:
    5883      2416590 :       switch (get_call_combined_fn (_p0))
    5884              :         {
    5885            1 :         case CFN_BUILT_IN_COPYSIGNF16:
    5886            1 :           if (call_expr_nargs (_p0) == 2)
    5887              :     {
    5888            1 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    5889            1 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    5890            1 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    5891              :                 {
    5892            0 :                   {
    5893            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    5894            0 :                     tree res = generic_simplify_184 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF16);
    5895            0 :                     if (res) return res;
    5896              :                   }
    5897              :                 }
    5898              :             }
    5899              :           break;
    5900            0 :         case CFN_BUILT_IN_COPYSIGNF32:
    5901            0 :           if (call_expr_nargs (_p0) == 2)
    5902              :     {
    5903            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    5904            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    5905            0 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    5906              :                 {
    5907            0 :                   {
    5908            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    5909            0 :                     tree res = generic_simplify_184 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF32);
    5910            0 :                     if (res) return res;
    5911              :                   }
    5912              :                 }
    5913              :             }
    5914              :           break;
    5915            0 :         case CFN_BUILT_IN_COPYSIGNF64:
    5916            0 :           if (call_expr_nargs (_p0) == 2)
    5917              :     {
    5918            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    5919            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    5920            0 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    5921              :                 {
    5922            0 :                   {
    5923            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    5924            0 :                     tree res = generic_simplify_184 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF64);
    5925            0 :                     if (res) return res;
    5926              :                   }
    5927              :                 }
    5928              :             }
    5929              :           break;
    5930            0 :         case CFN_BUILT_IN_COPYSIGNF128X:
    5931            0 :           if (call_expr_nargs (_p0) == 2)
    5932              :     {
    5933            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    5934            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    5935            0 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    5936              :                 {
    5937            0 :                   {
    5938            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    5939            0 :                     tree res = generic_simplify_184 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF128X);
    5940            0 :                     if (res) return res;
    5941              :                   }
    5942              :                 }
    5943              :             }
    5944              :           break;
    5945            8 :         case CFN_BUILT_IN_COPYSIGNF128:
    5946            8 :           if (call_expr_nargs (_p0) == 2)
    5947              :     {
    5948            8 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    5949            8 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    5950            8 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    5951              :                 {
    5952            0 :                   {
    5953            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    5954            0 :                     tree res = generic_simplify_184 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF128);
    5955            0 :                     if (res) return res;
    5956              :                   }
    5957              :                 }
    5958              :             }
    5959              :           break;
    5960            0 :         case CFN_BUILT_IN_COPYSIGNF32X:
    5961            0 :           if (call_expr_nargs (_p0) == 2)
    5962              :     {
    5963            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    5964            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    5965            0 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    5966              :                 {
    5967            0 :                   {
    5968            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    5969            0 :                     tree res = generic_simplify_184 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF32X);
    5970            0 :                     if (res) return res;
    5971              :                   }
    5972              :                 }
    5973              :             }
    5974              :           break;
    5975            0 :         case CFN_BUILT_IN_COPYSIGNF64X:
    5976            0 :           if (call_expr_nargs (_p0) == 2)
    5977              :     {
    5978            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    5979            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    5980            0 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    5981              :                 {
    5982            0 :                   {
    5983            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    5984            0 :                     tree res = generic_simplify_184 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF64X);
    5985            0 :                     if (res) return res;
    5986              :                   }
    5987              :                 }
    5988              :             }
    5989              :           break;
    5990           18 :         case CFN_BUILT_IN_COPYSIGN:
    5991           18 :           if (call_expr_nargs (_p0) == 2)
    5992              :     {
    5993           18 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    5994           18 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    5995           18 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    5996              :                 {
    5997            0 :                   {
    5998            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    5999            0 :                     tree res = generic_simplify_184 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGN);
    6000            0 :                     if (res) return res;
    6001              :                   }
    6002              :                 }
    6003              :             }
    6004              :           break;
    6005           36 :         case CFN_BUILT_IN_COPYSIGNF:
    6006           36 :           if (call_expr_nargs (_p0) == 2)
    6007              :     {
    6008           36 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    6009           36 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    6010           36 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    6011              :                 {
    6012            0 :                   {
    6013            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    6014            0 :                     tree res = generic_simplify_184 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF);
    6015            0 :                     if (res) return res;
    6016              :                   }
    6017              :                 }
    6018              :             }
    6019              :           break;
    6020            8 :         case CFN_BUILT_IN_COPYSIGNL:
    6021            8 :           if (call_expr_nargs (_p0) == 2)
    6022              :     {
    6023            8 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    6024            8 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    6025            8 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    6026              :                 {
    6027            0 :                   {
    6028            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    6029            0 :                     tree res = generic_simplify_184 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNL);
    6030            0 :                     if (res) return res;
    6031              :                   }
    6032              :                 }
    6033              :             }
    6034              :           break;
    6035            0 :         case CFN_COPYSIGN:
    6036            0 :           if (call_expr_nargs (_p0) == 2)
    6037              :     {
    6038            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    6039            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    6040            0 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    6041              :                 {
    6042            0 :                   {
    6043            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    6044            0 :                     tree res = generic_simplify_184 (loc, type, _p0, _p1, captures, CFN_COPYSIGN);
    6045            0 :                     if (res) return res;
    6046              :                   }
    6047              :                 }
    6048              :             }
    6049              :           break;
    6050              :         default:;
    6051              :         }
    6052              :       break;
    6053     67233981 :     default:;
    6054              :     }
    6055     67233981 :   switch (TREE_CODE (_p1))
    6056              :     {
    6057      7394226 :     CASE_CONVERT:
    6058      7394226 :       {
    6059      7394226 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6060      7394226 :         switch (TREE_CODE (_q30))
    6061              :           {
    6062            0 :           case LSHIFT_EXPR:
    6063            0 :             {
    6064            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    6065            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    6066            0 :               if (integer_onep (_q40))
    6067              :                 {
    6068            0 :                   {
    6069            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q41 };
    6070            0 :                     tree res = generic_simplify_185 (loc, type, _p0, _p1, captures);
    6071            0 :                     if (res) return res;
    6072              :                   }
    6073              :                 }
    6074              :               break;
    6075              :             }
    6076              :           default:;
    6077              :           }
    6078              :         break;
    6079              :       }
    6080     67233981 :     default:;
    6081              :     }
    6082     67233981 :   switch (TREE_CODE (_p0))
    6083              :     {
    6084     32219330 :     CASE_CONVERT:
    6085     32219330 :       {
    6086     32219330 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6087     32219330 :         switch (TREE_CODE (_q20))
    6088              :           {
    6089           20 :           case LSHIFT_EXPR:
    6090           20 :             {
    6091           20 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6092           20 :               tree _q31 = TREE_OPERAND (_q20, 1);
    6093           20 :               if (integer_onep (_q30))
    6094              :                 {
    6095            1 :                   {
    6096            1 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _q31 };
    6097            1 :                     tree res = generic_simplify_185 (loc, type, _p0, _p1, captures);
    6098            1 :                     if (res) return res;
    6099              :                   }
    6100              :                 }
    6101              :               break;
    6102              :             }
    6103            1 :           case EQ_EXPR:
    6104            1 :             {
    6105            1 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6106            1 :               tree _q31 = TREE_OPERAND (_q20, 1);
    6107            1 :               if (integer_zerop (_q31))
    6108              :                 {
    6109            1 :                   if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    6110              :                     {
    6111            0 :                       {
    6112            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
    6113            0 :                         tree res = generic_simplify_186 (loc, type, _p0, _p1, captures);
    6114            0 :                         if (res) return res;
    6115              :                       }
    6116              :                     }
    6117              :                 }
    6118              :               break;
    6119              :             }
    6120              :           default:;
    6121              :           }
    6122              :         break;
    6123              :       }
    6124     67233981 :     default:;
    6125              :     }
    6126     67233981 :   switch (TREE_CODE (_p1))
    6127              :     {
    6128          844 :     case LSHIFT_EXPR:
    6129          844 :       {
    6130          844 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6131          844 :         tree _q31 = TREE_OPERAND (_p1, 1);
    6132          844 :         if (integer_onep (_q30))
    6133              :           {
    6134          165 :             {
    6135          165 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
    6136          165 :               tree res = generic_simplify_185 (loc, type, _p0, _p1, captures);
    6137          165 :               if (res) return res;
    6138              :             }
    6139              :           }
    6140              :         break;
    6141              :       }
    6142     67233816 :     default:;
    6143              :     }
    6144     67233816 :   switch (TREE_CODE (_p0))
    6145              :     {
    6146         3701 :     case LSHIFT_EXPR:
    6147         3701 :       {
    6148         3701 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6149         3701 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6150         3701 :         if (integer_onep (_q20))
    6151              :           {
    6152         3479 :             {
    6153         3479 :               tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q21 };
    6154         3479 :               tree res = generic_simplify_185 (loc, type, _p0, _p1, captures);
    6155         3479 :               if (res) return res;
    6156              :             }
    6157              :           }
    6158              :         break;
    6159              :       }
    6160     67230337 :     default:;
    6161              :     }
    6162     67230337 :   switch (TREE_CODE (_p1))
    6163              :     {
    6164      7393835 :     CASE_CONVERT:
    6165      7393835 :       {
    6166      7393835 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6167      7393835 :         switch (TREE_CODE (_q30))
    6168              :           {
    6169            0 :           case EQ_EXPR:
    6170            0 :             {
    6171            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    6172            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    6173            0 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    6174              :                 {
    6175            0 :                   if (integer_zerop (_q41))
    6176              :                     {
    6177            0 :                       {
    6178            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    6179            0 :                         tree res = generic_simplify_187 (loc, type, _p0, _p1, captures);
    6180            0 :                         if (res) return res;
    6181              :                       }
    6182              :                     }
    6183              :                 }
    6184              :               break;
    6185              :             }
    6186              :           default:;
    6187              :           }
    6188              :         break;
    6189              :       }
    6190            0 :     case EQ_EXPR:
    6191            0 :       {
    6192            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6193            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
    6194            0 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    6195              :           {
    6196            0 :             if (integer_zerop (_q31))
    6197              :               {
    6198            0 :                 {
    6199            0 :                   tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    6200            0 :                   tree res = generic_simplify_187 (loc, type, _p0, _p1, captures);
    6201            0 :                   if (res) return res;
    6202              :                 }
    6203              :               }
    6204              :           }
    6205              :         break;
    6206              :       }
    6207     67230337 :     default:;
    6208              :     }
    6209     67230337 :   switch (TREE_CODE (_p0))
    6210              :     {
    6211          183 :     case EQ_EXPR:
    6212          183 :       {
    6213          183 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6214          183 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6215          183 :         if (integer_zerop (_q21))
    6216              :           {
    6217           59 :             if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    6218              :               {
    6219            3 :                 {
    6220            3 :                   tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    6221            3 :                   tree res = generic_simplify_186 (loc, type, _p0, _p1, captures);
    6222            3 :                   if (res) return res;
    6223              :                 }
    6224              :               }
    6225              :           }
    6226              :         break;
    6227              :       }
    6228     67230334 :     default:;
    6229              :     }
    6230     67230334 :   switch (TREE_CODE (_p1))
    6231              :     {
    6232            0 :     case VEC_COND_EXPR:
    6233            0 :       {
    6234            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6235            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
    6236            0 :         tree _q32 = TREE_OPERAND (_p1, 2);
    6237            0 :         switch (TREE_CODE (_q30))
    6238              :           {
    6239            0 :           case EQ_EXPR:
    6240            0 :             {
    6241            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    6242            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    6243            0 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    6244              :                 {
    6245            0 :                   if (integer_zerop (_q41))
    6246              :                     {
    6247            0 :                       if (integer_zerop (_q32))
    6248              :                         {
    6249            0 :                           {
    6250            0 :                             tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    6251            0 :                             if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1421;
    6252            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1421;
    6253            0 :                             {
    6254            0 :                               tree _r;
    6255            0 :                               _r =  build_zero_cst (type);
    6256            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 975, __FILE__, __LINE__, true);
    6257            0 :                               return _r;
    6258              :                             }
    6259            0 : next_after_fail1421:;
    6260              :                           }
    6261              :                         }
    6262              :                     }
    6263              :                 }
    6264              :               break;
    6265              :             }
    6266              :           default:;
    6267              :           }
    6268              :         break;
    6269              :       }
    6270     67230334 :     default:;
    6271              :     }
    6272     67230334 :   switch (TREE_CODE (_p0))
    6273              :     {
    6274           37 :     case VEC_COND_EXPR:
    6275           37 :       {
    6276           37 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6277           37 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6278           37 :         tree _q22 = TREE_OPERAND (_p0, 2);
    6279           37 :         switch (TREE_CODE (_q20))
    6280              :           {
    6281            1 :           case EQ_EXPR:
    6282            1 :             {
    6283            1 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6284            1 :               tree _q31 = TREE_OPERAND (_q20, 1);
    6285            1 :               if (integer_zerop (_q31))
    6286              :                 {
    6287            1 :                   if (integer_zerop (_q22))
    6288              :                     {
    6289            1 :                       if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    6290              :                         {
    6291            1 :                           {
    6292            1 :                             tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
    6293            1 :                             if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1422;
    6294            1 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1422;
    6295            1 :                             {
    6296            1 :                               tree _r;
    6297            1 :                               _r =  build_zero_cst (type);
    6298            1 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 975, __FILE__, __LINE__, true);
    6299            1 :                               return _r;
    6300              :                             }
    6301            0 : next_after_fail1422:;
    6302              :                           }
    6303              :                         }
    6304              :                     }
    6305              :                 }
    6306              :               break;
    6307              :             }
    6308            0 :           case NE_EXPR:
    6309            0 :             {
    6310            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6311            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    6312            0 :               if (integer_zerop (_q31))
    6313              :                 {
    6314            0 :                   if (integer_zerop (_q21))
    6315              :                     {
    6316            0 :                       if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    6317              :                         {
    6318            0 :                           {
    6319            0 :                             tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q22 };
    6320            0 :                             if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1423;
    6321            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1423;
    6322            0 :                             {
    6323            0 :                               tree _r;
    6324            0 :                               _r =  build_zero_cst (type);
    6325            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 976, __FILE__, __LINE__, true);
    6326            0 :                               return _r;
    6327              :                             }
    6328            0 : next_after_fail1423:;
    6329              :                           }
    6330              :                         }
    6331              :                     }
    6332              :                 }
    6333              :               break;
    6334              :             }
    6335              :           default:;
    6336              :           }
    6337              :         break;
    6338              :       }
    6339     67230333 :     default:;
    6340              :     }
    6341     67230333 :   switch (TREE_CODE (_p1))
    6342              :     {
    6343            0 :     case VEC_COND_EXPR:
    6344            0 :       {
    6345            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6346            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
    6347            0 :         tree _q32 = TREE_OPERAND (_p1, 2);
    6348            0 :         switch (TREE_CODE (_q30))
    6349              :           {
    6350            0 :           case NE_EXPR:
    6351            0 :             {
    6352            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    6353            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    6354            0 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    6355              :                 {
    6356            0 :                   if (integer_zerop (_q41))
    6357              :                     {
    6358            0 :                       if (integer_zerop (_q31))
    6359              :                         {
    6360            0 :                           {
    6361            0 :                             tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q32 };
    6362            0 :                             if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1424;
    6363            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1424;
    6364            0 :                             {
    6365            0 :                               tree _r;
    6366            0 :                               _r =  build_zero_cst (type);
    6367            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 976, __FILE__, __LINE__, true);
    6368            0 :                               return _r;
    6369              :                             }
    6370            0 : next_after_fail1424:;
    6371              :                           }
    6372              :                         }
    6373              :                     }
    6374              :                 }
    6375              :               break;
    6376              :             }
    6377              :           default:;
    6378              :           }
    6379              :         break;
    6380              :       }
    6381     67230333 :     default:;
    6382              :     }
    6383     67230333 :   switch (TREE_CODE (_p0))
    6384              :     {
    6385       736757 :     case RDIV_EXPR:
    6386       736757 :       {
    6387       736757 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6388       736757 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6389       736757 :         switch (TREE_CODE (_q20))
    6390              :           {
    6391        56137 :           case REAL_CST:
    6392        56137 :             {
    6393        56137 :               switch (TREE_CODE (_p1))
    6394              :                 {
    6395            1 :                 case REAL_CST:
    6396            1 :                   {
    6397            1 :                     {
    6398            1 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    6399            1 :                       if (flag_associative_math
    6400            1 :  && single_use (captures[0])
    6401              : )
    6402              :                         {
    6403            1 :                           {
    6404            1 :  tree tem = const_binop (MULT_EXPR, type, captures[1], captures[3]);
    6405            1 :                               if (tem
    6406              : )
    6407              :                                 {
    6408            1 :                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1425;
    6409            1 :                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1425;
    6410            1 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1425;
    6411            1 :                                   {
    6412            1 :                                     tree res_op0;
    6413            1 :                                     res_op0 =  tem;
    6414            1 :                                     tree res_op1;
    6415            1 :                                     res_op1 = captures[2];
    6416            1 :                                     tree _r;
    6417            1 :                                     _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
    6418            1 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 977, __FILE__, __LINE__, true);
    6419            1 :                                     return _r;
    6420              :                                   }
    6421            0 : next_after_fail1425:;
    6422              :                                 }
    6423              :                           }
    6424              :                         }
    6425              :                     }
    6426            0 :                     break;
    6427              :                   }
    6428              :                 default:;
    6429              :                 }
    6430              :               break;
    6431              :             }
    6432              :           default:;
    6433              :           }
    6434              :         break;
    6435              :       }
    6436     67230332 :     default:;
    6437              :     }
    6438     67230332 : {
    6439     67230332 :   tree _p0_pops[1];
    6440     67230332 :   if (tree_nop_convert (_p0, _p0_pops))
    6441              :     {
    6442     23262339 :       tree _q20 = _p0_pops[0];
    6443     23262339 :       switch (TREE_CODE (_q20))
    6444              :         {
    6445            4 :         case BIT_IOR_EXPR:
    6446            4 :           {
    6447            4 :             tree _q30 = TREE_OPERAND (_q20, 0);
    6448            4 :             tree _q31 = TREE_OPERAND (_q20, 1);
    6449            4 :             switch (TREE_CODE (_q30))
    6450              :               {
    6451            4 :               case NEGATE_EXPR:
    6452            4 :                 {
    6453            4 :                   tree _q40 = TREE_OPERAND (_q30, 0);
    6454            4 :                   switch (TREE_CODE (_q40))
    6455              :                     {
    6456            0 :                     CASE_CONVERT:
    6457            0 :                       {
    6458            0 :                         tree _q50 = TREE_OPERAND (_q40, 0);
    6459            0 :                         switch (TREE_CODE (_q50))
    6460              :                           {
    6461            0 :                           case LT_EXPR:
    6462            0 :                             {
    6463            0 :                               tree _q60 = TREE_OPERAND (_q50, 0);
    6464            0 :                               tree _q61 = TREE_OPERAND (_q50, 1);
    6465            0 :                               if (integer_zerop (_q61))
    6466              :                                 {
    6467            0 :                                   if (integer_onep (_q31))
    6468              :                                     {
    6469            0 :                                       {
    6470            0 :                                         tree _p1_pops[1];
    6471            0 :                                         if (tree_nop_convert (_p1, _p1_pops))
    6472              :                                           {
    6473            0 :                                             tree _q100 = _p1_pops[0];
    6474            0 :                                             if ((_q100 == _q60 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q60, 0) && types_match (_q100, _q60)))
    6475              :                                               {
    6476            0 :                                                 {
    6477            0 :                                                   tree captures[1] ATTRIBUTE_UNUSED = { _q60 };
    6478            0 :                                                   tree res = generic_simplify_188 (loc, type, _p0, _p1, captures);
    6479            0 :                                                   if (res) return res;
    6480              :                                                 }
    6481              :                                               }
    6482              :                                           }
    6483              :                                       }
    6484            0 :                                       if ((_p1 == _q60 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q60, 0) && types_match (_p1, _q60)))
    6485              :                                         {
    6486            0 :                                           {
    6487            0 :                                             tree captures[1] ATTRIBUTE_UNUSED = { _q60 };
    6488            0 :                                             tree res = generic_simplify_188 (loc, type, _p0, _p1, captures);
    6489            0 :                                             if (res) return res;
    6490              :                                           }
    6491              :                                         }
    6492              :                                     }
    6493              :                                 }
    6494              :                               break;
    6495              :                             }
    6496              :                           default:;
    6497              :                           }
    6498              :                         break;
    6499              :                       }
    6500            4 :                     case LT_EXPR:
    6501            4 :                       {
    6502            4 :                         tree _q50 = TREE_OPERAND (_q40, 0);
    6503            4 :                         tree _q51 = TREE_OPERAND (_q40, 1);
    6504            4 :                         if (integer_zerop (_q51))
    6505              :                           {
    6506            4 :                             if (integer_onep (_q31))
    6507              :                               {
    6508            4 :                                 {
    6509            4 :                                   tree _p1_pops[1];
    6510            4 :                                   if (tree_nop_convert (_p1, _p1_pops))
    6511              :                                     {
    6512            4 :                                       tree _q90 = _p1_pops[0];
    6513            4 :                                       if ((_q90 == _q50 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q50, 0) && types_match (_q90, _q50)))
    6514              :                                         {
    6515            4 :                                           {
    6516            4 :                                             tree captures[1] ATTRIBUTE_UNUSED = { _q50 };
    6517            4 :                                             tree res = generic_simplify_188 (loc, type, _p0, _p1, captures);
    6518            4 :                                             if (res) return res;
    6519              :                                           }
    6520              :                                         }
    6521              :                                     }
    6522              :                                 }
    6523            0 :                                 if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50)))
    6524              :                                   {
    6525            0 :                                     {
    6526            0 :                                       tree captures[1] ATTRIBUTE_UNUSED = { _q50 };
    6527            0 :                                       tree res = generic_simplify_188 (loc, type, _p0, _p1, captures);
    6528            0 :                                       if (res) return res;
    6529              :                                     }
    6530              :                                   }
    6531              :                               }
    6532              :                           }
    6533              :                         break;
    6534              :                       }
    6535              :                     default:;
    6536              :                     }
    6537              :                   break;
    6538              :                 }
    6539            0 :               default:;
    6540              :               }
    6541            0 :           {
    6542            0 :             tree _q30_pops[1];
    6543            0 :             if (tree_nop_convert (_q30, _q30_pops))
    6544              :               {
    6545            0 :                 tree _q40 = _q30_pops[0];
    6546            0 :                 switch (TREE_CODE (_q40))
    6547              :                   {
    6548            0 :                   case NEGATE_EXPR:
    6549            0 :                     {
    6550            0 :                       tree _q50 = TREE_OPERAND (_q40, 0);
    6551            0 :                       switch (TREE_CODE (_q50))
    6552              :                         {
    6553            0 :                         CASE_CONVERT:
    6554            0 :                           {
    6555            0 :                             tree _q60 = TREE_OPERAND (_q50, 0);
    6556            0 :                             switch (TREE_CODE (_q60))
    6557              :                               {
    6558            0 :                               case LT_EXPR:
    6559            0 :                                 {
    6560            0 :                                   tree _q70 = TREE_OPERAND (_q60, 0);
    6561            0 :                                   tree _q71 = TREE_OPERAND (_q60, 1);
    6562            0 :                                   if (integer_zerop (_q71))
    6563              :                                     {
    6564            0 :                                       if (integer_onep (_q31))
    6565              :                                         {
    6566            0 :                                           {
    6567            0 :                                             tree _p1_pops[1];
    6568            0 :                                             if (tree_nop_convert (_p1, _p1_pops))
    6569              :                                               {
    6570            0 :                                                 tree _q110 = _p1_pops[0];
    6571            0 :                                                 if ((_q110 == _q70 && ! TREE_SIDE_EFFECTS (_q110)) || (operand_equal_p (_q110, _q70, 0) && types_match (_q110, _q70)))
    6572              :                                                   {
    6573            0 :                                                     {
    6574            0 :                                                       tree captures[1] ATTRIBUTE_UNUSED = { _q70 };
    6575            0 :                                                       tree res = generic_simplify_188 (loc, type, _p0, _p1, captures);
    6576            0 :                                                       if (res) return res;
    6577              :                                                     }
    6578              :                                                   }
    6579              :                                               }
    6580              :                                           }
    6581            0 :                                           if ((_p1 == _q70 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q70, 0) && types_match (_p1, _q70)))
    6582              :                                             {
    6583            0 :                                               {
    6584            0 :                                                 tree captures[1] ATTRIBUTE_UNUSED = { _q70 };
    6585            0 :                                                 tree res = generic_simplify_188 (loc, type, _p0, _p1, captures);
    6586            0 :                                                 if (res) return res;
    6587              :                                               }
    6588              :                                             }
    6589              :                                         }
    6590              :                                     }
    6591              :                                   break;
    6592              :                                 }
    6593              :                               default:;
    6594              :                               }
    6595              :                             break;
    6596              :                           }
    6597            0 :                         case LT_EXPR:
    6598            0 :                           {
    6599            0 :                             tree _q60 = TREE_OPERAND (_q50, 0);
    6600            0 :                             tree _q61 = TREE_OPERAND (_q50, 1);
    6601            0 :                             if (integer_zerop (_q61))
    6602              :                               {
    6603            0 :                                 if (integer_onep (_q31))
    6604              :                                   {
    6605            0 :                                     {
    6606            0 :                                       tree _p1_pops[1];
    6607            0 :                                       if (tree_nop_convert (_p1, _p1_pops))
    6608              :                                         {
    6609            0 :                                           tree _q100 = _p1_pops[0];
    6610            0 :                                           if ((_q100 == _q60 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q60, 0) && types_match (_q100, _q60)))
    6611              :                                             {
    6612            0 :                                               {
    6613            0 :                                                 tree captures[1] ATTRIBUTE_UNUSED = { _q60 };
    6614            0 :                                                 tree res = generic_simplify_188 (loc, type, _p0, _p1, captures);
    6615            0 :                                                 if (res) return res;
    6616              :                                               }
    6617              :                                             }
    6618              :                                         }
    6619              :                                     }
    6620            0 :                                     if ((_p1 == _q60 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q60, 0) && types_match (_p1, _q60)))
    6621              :                                       {
    6622            0 :                                         {
    6623            0 :                                           tree captures[1] ATTRIBUTE_UNUSED = { _q60 };
    6624            0 :                                           tree res = generic_simplify_188 (loc, type, _p0, _p1, captures);
    6625            0 :                                           if (res) return res;
    6626              :                                         }
    6627              :                                       }
    6628              :                                   }
    6629              :                               }
    6630              :                             break;
    6631              :                           }
    6632              :                         default:;
    6633              :                         }
    6634              :                       break;
    6635              :                     }
    6636              :                   default:;
    6637              :                   }
    6638              :               }
    6639              :           }
    6640            0 :             break;
    6641              :           }
    6642     23262335 :         default:;
    6643              :         }
    6644     23262335 :       switch (TREE_CODE (_p1))
    6645              :         {
    6646            0 :         case BIT_IOR_EXPR:
    6647            0 :           {
    6648            0 :             tree _q40 = TREE_OPERAND (_p1, 0);
    6649            0 :             tree _q41 = TREE_OPERAND (_p1, 1);
    6650            0 :             switch (TREE_CODE (_q40))
    6651              :               {
    6652            0 :               case NEGATE_EXPR:
    6653            0 :                 {
    6654            0 :                   tree _q50 = TREE_OPERAND (_q40, 0);
    6655            0 :                   switch (TREE_CODE (_q50))
    6656              :                     {
    6657            0 :                     CASE_CONVERT:
    6658            0 :                       {
    6659            0 :                         tree _q60 = TREE_OPERAND (_q50, 0);
    6660            0 :                         switch (TREE_CODE (_q60))
    6661              :                           {
    6662            0 :                           case LT_EXPR:
    6663            0 :                             {
    6664            0 :                               tree _q70 = TREE_OPERAND (_q60, 0);
    6665            0 :                               tree _q71 = TREE_OPERAND (_q60, 1);
    6666            0 :                               if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
    6667              :                                 {
    6668            0 :                                   if (integer_zerop (_q71))
    6669              :                                     {
    6670            0 :                                       if (integer_onep (_q41))
    6671              :                                         {
    6672            0 :                                           {
    6673            0 :                                             tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    6674            0 :                                             tree res = generic_simplify_189 (loc, type, _p0, _p1, captures);
    6675            0 :                                             if (res) return res;
    6676              :                                           }
    6677              :                                         }
    6678              :                                     }
    6679              :                                 }
    6680              :                               break;
    6681              :                             }
    6682              :                           default:;
    6683              :                           }
    6684              :                         break;
    6685              :                       }
    6686            0 :                     case LT_EXPR:
    6687            0 :                       {
    6688            0 :                         tree _q60 = TREE_OPERAND (_q50, 0);
    6689            0 :                         tree _q61 = TREE_OPERAND (_q50, 1);
    6690            0 :                         if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    6691              :                           {
    6692            0 :                             if (integer_zerop (_q61))
    6693              :                               {
    6694            0 :                                 if (integer_onep (_q41))
    6695              :                                   {
    6696            0 :                                     {
    6697            0 :                                       tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    6698            0 :                                       tree res = generic_simplify_189 (loc, type, _p0, _p1, captures);
    6699            0 :                                       if (res) return res;
    6700              :                                     }
    6701              :                                   }
    6702              :                               }
    6703              :                           }
    6704              :                         break;
    6705              :                       }
    6706              :                     default:;
    6707              :                     }
    6708              :                   break;
    6709              :                 }
    6710            0 :               default:;
    6711              :               }
    6712            0 :           {
    6713            0 :             tree _q40_pops[1];
    6714            0 :             if (tree_nop_convert (_q40, _q40_pops))
    6715              :               {
    6716            0 :                 tree _q50 = _q40_pops[0];
    6717            0 :                 switch (TREE_CODE (_q50))
    6718              :                   {
    6719            0 :                   case NEGATE_EXPR:
    6720            0 :                     {
    6721            0 :                       tree _q60 = TREE_OPERAND (_q50, 0);
    6722            0 :                       switch (TREE_CODE (_q60))
    6723              :                         {
    6724            0 :                         CASE_CONVERT:
    6725            0 :                           {
    6726            0 :                             tree _q70 = TREE_OPERAND (_q60, 0);
    6727            0 :                             switch (TREE_CODE (_q70))
    6728              :                               {
    6729            0 :                               case LT_EXPR:
    6730            0 :                                 {
    6731            0 :                                   tree _q80 = TREE_OPERAND (_q70, 0);
    6732            0 :                                   tree _q81 = TREE_OPERAND (_q70, 1);
    6733            0 :                                   if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
    6734              :                                     {
    6735            0 :                                       if (integer_zerop (_q81))
    6736              :                                         {
    6737            0 :                                           if (integer_onep (_q41))
    6738              :                                             {
    6739            0 :                                               {
    6740            0 :                                                 tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    6741            0 :                                                 tree res = generic_simplify_189 (loc, type, _p0, _p1, captures);
    6742            0 :                                                 if (res) return res;
    6743              :                                               }
    6744              :                                             }
    6745              :                                         }
    6746              :                                     }
    6747              :                                   break;
    6748              :                                 }
    6749              :                               default:;
    6750              :                               }
    6751              :                             break;
    6752              :                           }
    6753            0 :                         case LT_EXPR:
    6754            0 :                           {
    6755            0 :                             tree _q70 = TREE_OPERAND (_q60, 0);
    6756            0 :                             tree _q71 = TREE_OPERAND (_q60, 1);
    6757            0 :                             if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
    6758              :                               {
    6759            0 :                                 if (integer_zerop (_q71))
    6760              :                                   {
    6761            0 :                                     if (integer_onep (_q41))
    6762              :                                       {
    6763            0 :                                         {
    6764            0 :                                           tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    6765            0 :                                           tree res = generic_simplify_189 (loc, type, _p0, _p1, captures);
    6766            0 :                                           if (res) return res;
    6767              :                                         }
    6768              :                                       }
    6769              :                                   }
    6770              :                               }
    6771              :                             break;
    6772              :                           }
    6773              :                         default:;
    6774              :                         }
    6775              :                       break;
    6776              :                     }
    6777              :                   default:;
    6778              :                   }
    6779              :               }
    6780              :           }
    6781            0 :             break;
    6782              :           }
    6783     23262335 :         default:;
    6784              :         }
    6785     23262335 :     {
    6786     23262335 :       tree _p1_pops[1];
    6787     23262335 :       if (tree_nop_convert (_p1, _p1_pops))
    6788              :         {
    6789      2501004 :           tree _q40 = _p1_pops[0];
    6790      2501004 :           switch (TREE_CODE (_q40))
    6791              :             {
    6792            0 :             case BIT_IOR_EXPR:
    6793            0 :               {
    6794            0 :                 tree _q50 = TREE_OPERAND (_q40, 0);
    6795            0 :                 tree _q51 = TREE_OPERAND (_q40, 1);
    6796            0 :                 switch (TREE_CODE (_q50))
    6797              :                   {
    6798            0 :                   case NEGATE_EXPR:
    6799            0 :                     {
    6800            0 :                       tree _q60 = TREE_OPERAND (_q50, 0);
    6801            0 :                       switch (TREE_CODE (_q60))
    6802              :                         {
    6803            0 :                         CASE_CONVERT:
    6804            0 :                           {
    6805            0 :                             tree _q70 = TREE_OPERAND (_q60, 0);
    6806            0 :                             switch (TREE_CODE (_q70))
    6807              :                               {
    6808            0 :                               case LT_EXPR:
    6809            0 :                                 {
    6810            0 :                                   tree _q80 = TREE_OPERAND (_q70, 0);
    6811            0 :                                   tree _q81 = TREE_OPERAND (_q70, 1);
    6812            0 :                                   if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
    6813              :                                     {
    6814            0 :                                       if (integer_zerop (_q81))
    6815              :                                         {
    6816            0 :                                           if (integer_onep (_q51))
    6817              :                                             {
    6818            0 :                                               {
    6819            0 :                                                 tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    6820            0 :                                                 tree res = generic_simplify_189 (loc, type, _p0, _p1, captures);
    6821            0 :                                                 if (res) return res;
    6822              :                                               }
    6823              :                                             }
    6824              :                                         }
    6825              :                                     }
    6826              :                                   break;
    6827              :                                 }
    6828              :                               default:;
    6829              :                               }
    6830              :                             break;
    6831              :                           }
    6832            0 :                         case LT_EXPR:
    6833            0 :                           {
    6834            0 :                             tree _q70 = TREE_OPERAND (_q60, 0);
    6835            0 :                             tree _q71 = TREE_OPERAND (_q60, 1);
    6836            0 :                             if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
    6837              :                               {
    6838            0 :                                 if (integer_zerop (_q71))
    6839              :                                   {
    6840            0 :                                     if (integer_onep (_q51))
    6841              :                                       {
    6842            0 :                                         {
    6843            0 :                                           tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    6844            0 :                                           tree res = generic_simplify_189 (loc, type, _p0, _p1, captures);
    6845            0 :                                           if (res) return res;
    6846              :                                         }
    6847              :                                       }
    6848              :                                   }
    6849              :                               }
    6850              :                             break;
    6851              :                           }
    6852              :                         default:;
    6853              :                         }
    6854              :                       break;
    6855              :                     }
    6856            0 :                   default:;
    6857              :                   }
    6858            0 :               {
    6859            0 :                 tree _q50_pops[1];
    6860            0 :                 if (tree_nop_convert (_q50, _q50_pops))
    6861              :                   {
    6862            0 :                     tree _q60 = _q50_pops[0];
    6863            0 :                     switch (TREE_CODE (_q60))
    6864              :                       {
    6865            0 :                       case NEGATE_EXPR:
    6866            0 :                         {
    6867            0 :                           tree _q70 = TREE_OPERAND (_q60, 0);
    6868            0 :                           switch (TREE_CODE (_q70))
    6869              :                             {
    6870            0 :                             CASE_CONVERT:
    6871            0 :                               {
    6872            0 :                                 tree _q80 = TREE_OPERAND (_q70, 0);
    6873            0 :                                 switch (TREE_CODE (_q80))
    6874              :                                   {
    6875            0 :                                   case LT_EXPR:
    6876            0 :                                     {
    6877            0 :                                       tree _q90 = TREE_OPERAND (_q80, 0);
    6878            0 :                                       tree _q91 = TREE_OPERAND (_q80, 1);
    6879            0 :                                       if ((_q90 == _q20 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q20, 0) && types_match (_q90, _q20)))
    6880              :                                         {
    6881            0 :                                           if (integer_zerop (_q91))
    6882              :                                             {
    6883            0 :                                               if (integer_onep (_q51))
    6884              :                                                 {
    6885            0 :                                                   {
    6886            0 :                                                     tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    6887            0 :                                                     tree res = generic_simplify_189 (loc, type, _p0, _p1, captures);
    6888            0 :                                                     if (res) return res;
    6889              :                                                   }
    6890              :                                                 }
    6891              :                                             }
    6892              :                                         }
    6893              :                                       break;
    6894              :                                     }
    6895              :                                   default:;
    6896              :                                   }
    6897              :                                 break;
    6898              :                               }
    6899            0 :                             case LT_EXPR:
    6900            0 :                               {
    6901            0 :                                 tree _q80 = TREE_OPERAND (_q70, 0);
    6902            0 :                                 tree _q81 = TREE_OPERAND (_q70, 1);
    6903            0 :                                 if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
    6904              :                                   {
    6905            0 :                                     if (integer_zerop (_q81))
    6906              :                                       {
    6907            0 :                                         if (integer_onep (_q51))
    6908              :                                           {
    6909            0 :                                             {
    6910            0 :                                               tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    6911            0 :                                               tree res = generic_simplify_189 (loc, type, _p0, _p1, captures);
    6912            0 :                                               if (res) return res;
    6913              :                                             }
    6914              :                                           }
    6915              :                                       }
    6916              :                                   }
    6917              :                                 break;
    6918              :                               }
    6919              :                             default:;
    6920              :                             }
    6921              :                           break;
    6922              :                         }
    6923              :                       default:;
    6924              :                       }
    6925              :                   }
    6926              :               }
    6927            0 :                 break;
    6928              :               }
    6929              :             default:;
    6930              :             }
    6931              :         }
    6932              :     }
    6933              :     }
    6934              : }
    6935     67230328 :   {
    6936     67230328 :     tree _p1_pops[1];
    6937     67230328 :     if (tree_nop_convert (_p1, _p1_pops))
    6938              :       {
    6939      7305335 :         tree _q30 = _p1_pops[0];
    6940      7305335 :         switch (TREE_CODE (_q30))
    6941              :           {
    6942            0 :           case BIT_IOR_EXPR:
    6943            0 :             {
    6944            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    6945            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    6946            0 :               switch (TREE_CODE (_q40))
    6947              :                 {
    6948            0 :                 case NEGATE_EXPR:
    6949            0 :                   {
    6950            0 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    6951            0 :                     switch (TREE_CODE (_q50))
    6952              :                       {
    6953            0 :                       CASE_CONVERT:
    6954            0 :                         {
    6955            0 :                           tree _q60 = TREE_OPERAND (_q50, 0);
    6956            0 :                           switch (TREE_CODE (_q60))
    6957              :                             {
    6958            0 :                             case LT_EXPR:
    6959            0 :                               {
    6960            0 :                                 tree _q70 = TREE_OPERAND (_q60, 0);
    6961            0 :                                 tree _q71 = TREE_OPERAND (_q60, 1);
    6962            0 :                                 if ((_q70 == _p0 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p0, 0) && types_match (_q70, _p0)))
    6963              :                                   {
    6964            0 :                                     if (integer_zerop (_q71))
    6965              :                                       {
    6966            0 :                                         if (integer_onep (_q41))
    6967              :                                           {
    6968            0 :                                             {
    6969            0 :                                               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    6970            0 :                                               tree res = generic_simplify_189 (loc, type, _p0, _p1, captures);
    6971            0 :                                               if (res) return res;
    6972              :                                             }
    6973              :                                           }
    6974              :                                       }
    6975              :                                   }
    6976              :                                 break;
    6977              :                               }
    6978              :                             default:;
    6979              :                             }
    6980              :                           break;
    6981              :                         }
    6982              :                       default:;
    6983              :                       }
    6984              :                     break;
    6985              :                   }
    6986            0 :                 default:;
    6987              :                 }
    6988            0 :             {
    6989            0 :               tree _q40_pops[1];
    6990            0 :               if (tree_nop_convert (_q40, _q40_pops))
    6991              :                 {
    6992            0 :                   tree _q50 = _q40_pops[0];
    6993            0 :                   switch (TREE_CODE (_q50))
    6994              :                     {
    6995            0 :                     case NEGATE_EXPR:
    6996            0 :                       {
    6997            0 :                         tree _q60 = TREE_OPERAND (_q50, 0);
    6998            0 :                         switch (TREE_CODE (_q60))
    6999              :                           {
    7000            0 :                           CASE_CONVERT:
    7001            0 :                             {
    7002            0 :                               tree _q70 = TREE_OPERAND (_q60, 0);
    7003            0 :                               switch (TREE_CODE (_q70))
    7004              :                                 {
    7005            0 :                                 case LT_EXPR:
    7006            0 :                                   {
    7007            0 :                                     tree _q80 = TREE_OPERAND (_q70, 0);
    7008            0 :                                     tree _q81 = TREE_OPERAND (_q70, 1);
    7009            0 :                                     if ((_q80 == _p0 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _p0, 0) && types_match (_q80, _p0)))
    7010              :                                       {
    7011            0 :                                         if (integer_zerop (_q81))
    7012              :                                           {
    7013            0 :                                             if (integer_onep (_q41))
    7014              :                                               {
    7015            0 :                                                 {
    7016            0 :                                                   tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    7017            0 :                                                   tree res = generic_simplify_189 (loc, type, _p0, _p1, captures);
    7018            0 :                                                   if (res) return res;
    7019              :                                                 }
    7020              :                                               }
    7021              :                                           }
    7022              :                                       }
    7023              :                                     break;
    7024              :                                   }
    7025              :                                 default:;
    7026              :                                 }
    7027              :                               break;
    7028              :                             }
    7029              :                           default:;
    7030              :                           }
    7031              :                         break;
    7032              :                       }
    7033              :                     default:;
    7034              :                     }
    7035              :                 }
    7036              :             }
    7037            0 :               break;
    7038              :             }
    7039              :           default:;
    7040              :           }
    7041              :       }
    7042              :   }
    7043     67230328 :   switch (TREE_CODE (_p0))
    7044              :     {
    7045          299 :     case BIT_IOR_EXPR:
    7046          299 :       {
    7047          299 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7048          299 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7049          299 :         switch (TREE_CODE (_q20))
    7050              :           {
    7051            1 :           case NEGATE_EXPR:
    7052            1 :             {
    7053            1 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7054            1 :               switch (TREE_CODE (_q30))
    7055              :                 {
    7056            0 :                 CASE_CONVERT:
    7057            0 :                   {
    7058            0 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    7059            0 :                     switch (TREE_CODE (_q40))
    7060              :                       {
    7061            0 :                       case LT_EXPR:
    7062            0 :                         {
    7063            0 :                           tree _q50 = TREE_OPERAND (_q40, 0);
    7064            0 :                           tree _q51 = TREE_OPERAND (_q40, 1);
    7065            0 :                           if (integer_zerop (_q51))
    7066              :                             {
    7067            0 :                               if (integer_onep (_q21))
    7068              :                                 {
    7069            0 :                                   {
    7070            0 :                                     tree _p1_pops[1];
    7071            0 :                                     if (tree_nop_convert (_p1, _p1_pops))
    7072              :                                       {
    7073            0 :                                         tree _q90 = _p1_pops[0];
    7074            0 :                                         if ((_q90 == _q50 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q50, 0) && types_match (_q90, _q50)))
    7075              :                                           {
    7076            0 :                                             {
    7077            0 :                                               tree captures[1] ATTRIBUTE_UNUSED = { _q50 };
    7078            0 :                                               tree res = generic_simplify_188 (loc, type, _p0, _p1, captures);
    7079            0 :                                               if (res) return res;
    7080              :                                             }
    7081              :                                           }
    7082              :                                       }
    7083              :                                   }
    7084            0 :                                   if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50)))
    7085              :                                     {
    7086            0 :                                       {
    7087            0 :                                         tree captures[1] ATTRIBUTE_UNUSED = { _q50 };
    7088            0 :                                         tree res = generic_simplify_188 (loc, type, _p0, _p1, captures);
    7089            0 :                                         if (res) return res;
    7090              :                                       }
    7091              :                                     }
    7092              :                                 }
    7093              :                             }
    7094              :                           break;
    7095              :                         }
    7096              :                       default:;
    7097              :                       }
    7098              :                     break;
    7099              :                   }
    7100            1 :                 case LT_EXPR:
    7101            1 :                   {
    7102            1 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    7103            1 :                     tree _q41 = TREE_OPERAND (_q30, 1);
    7104            1 :                     if (integer_zerop (_q41))
    7105              :                       {
    7106            1 :                         if (integer_onep (_q21))
    7107              :                           {
    7108            1 :                             {
    7109            1 :                               tree _p1_pops[1];
    7110            1 :                               if (tree_nop_convert (_p1, _p1_pops))
    7111              :                                 {
    7112            0 :                                   tree _q80 = _p1_pops[0];
    7113            0 :                                   if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
    7114              :                                     {
    7115            0 :                                       {
    7116            0 :                                         tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
    7117            0 :                                         tree res = generic_simplify_188 (loc, type, _p0, _p1, captures);
    7118            0 :                                         if (res) return res;
    7119              :                                       }
    7120              :                                     }
    7121              :                                 }
    7122              :                             }
    7123            1 :                             if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    7124              :                               {
    7125            1 :                                 {
    7126            1 :                                   tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
    7127            1 :                                   tree res = generic_simplify_188 (loc, type, _p0, _p1, captures);
    7128            1 :                                   if (res) return res;
    7129              :                                 }
    7130              :                               }
    7131              :                           }
    7132              :                       }
    7133              :                     break;
    7134              :                   }
    7135              :                 default:;
    7136              :                 }
    7137              :               break;
    7138              :             }
    7139          298 :           default:;
    7140              :           }
    7141          298 :       {
    7142          298 :         tree _q20_pops[1];
    7143          298 :         if (tree_nop_convert (_q20, _q20_pops))
    7144              :           {
    7145            1 :             tree _q30 = _q20_pops[0];
    7146            1 :             switch (TREE_CODE (_q30))
    7147              :               {
    7148            1 :               case NEGATE_EXPR:
    7149            1 :                 {
    7150            1 :                   tree _q40 = TREE_OPERAND (_q30, 0);
    7151            1 :                   switch (TREE_CODE (_q40))
    7152              :                     {
    7153            0 :                     CASE_CONVERT:
    7154            0 :                       {
    7155            0 :                         tree _q50 = TREE_OPERAND (_q40, 0);
    7156            0 :                         switch (TREE_CODE (_q50))
    7157              :                           {
    7158            0 :                           case LT_EXPR:
    7159            0 :                             {
    7160            0 :                               tree _q60 = TREE_OPERAND (_q50, 0);
    7161            0 :                               tree _q61 = TREE_OPERAND (_q50, 1);
    7162            0 :                               if (integer_zerop (_q61))
    7163              :                                 {
    7164            0 :                                   if (integer_onep (_q21))
    7165              :                                     {
    7166            0 :                                       {
    7167            0 :                                         tree _p1_pops[1];
    7168            0 :                                         if (tree_nop_convert (_p1, _p1_pops))
    7169              :                                           {
    7170            0 :                                             tree _q100 = _p1_pops[0];
    7171            0 :                                             if ((_q100 == _q60 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q60, 0) && types_match (_q100, _q60)))
    7172              :                                               {
    7173            0 :                                                 {
    7174            0 :                                                   tree captures[1] ATTRIBUTE_UNUSED = { _q60 };
    7175            0 :                                                   tree res = generic_simplify_188 (loc, type, _p0, _p1, captures);
    7176            0 :                                                   if (res) return res;
    7177              :                                                 }
    7178              :                                               }
    7179              :                                           }
    7180              :                                       }
    7181            0 :                                       if ((_p1 == _q60 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q60, 0) && types_match (_p1, _q60)))
    7182              :                                         {
    7183            0 :                                           {
    7184            0 :                                             tree captures[1] ATTRIBUTE_UNUSED = { _q60 };
    7185            0 :                                             tree res = generic_simplify_188 (loc, type, _p0, _p1, captures);
    7186            0 :                                             if (res) return res;
    7187              :                                           }
    7188              :                                         }
    7189              :                                     }
    7190              :                                 }
    7191              :                               break;
    7192              :                             }
    7193              :                           default:;
    7194              :                           }
    7195              :                         break;
    7196              :                       }
    7197            1 :                     case LT_EXPR:
    7198            1 :                       {
    7199            1 :                         tree _q50 = TREE_OPERAND (_q40, 0);
    7200            1 :                         tree _q51 = TREE_OPERAND (_q40, 1);
    7201            1 :                         if (integer_zerop (_q51))
    7202              :                           {
    7203            1 :                             if (integer_onep (_q21))
    7204              :                               {
    7205            1 :                                 {
    7206            1 :                                   tree _p1_pops[1];
    7207            1 :                                   if (tree_nop_convert (_p1, _p1_pops))
    7208              :                                     {
    7209            1 :                                       tree _q90 = _p1_pops[0];
    7210            1 :                                       if ((_q90 == _q50 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q50, 0) && types_match (_q90, _q50)))
    7211              :                                         {
    7212            1 :                                           {
    7213            1 :                                             tree captures[1] ATTRIBUTE_UNUSED = { _q50 };
    7214            1 :                                             tree res = generic_simplify_188 (loc, type, _p0, _p1, captures);
    7215            1 :                                             if (res) return res;
    7216              :                                           }
    7217              :                                         }
    7218              :                                     }
    7219              :                                 }
    7220            0 :                                 if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50)))
    7221              :                                   {
    7222            0 :                                     {
    7223            0 :                                       tree captures[1] ATTRIBUTE_UNUSED = { _q50 };
    7224            0 :                                       tree res = generic_simplify_188 (loc, type, _p0, _p1, captures);
    7225            0 :                                       if (res) return res;
    7226              :                                     }
    7227              :                                   }
    7228              :                               }
    7229              :                           }
    7230              :                         break;
    7231              :                       }
    7232              :                     default:;
    7233              :                     }
    7234              :                   break;
    7235              :                 }
    7236              :               default:;
    7237              :               }
    7238              :           }
    7239              :       }
    7240          297 :         break;
    7241              :       }
    7242     67230326 :     default:;
    7243              :     }
    7244     67230326 :   switch (TREE_CODE (_p1))
    7245              :     {
    7246            1 :     case BIT_IOR_EXPR:
    7247            1 :       {
    7248            1 :         tree _q30 = TREE_OPERAND (_p1, 0);
    7249            1 :         tree _q31 = TREE_OPERAND (_p1, 1);
    7250            1 :         switch (TREE_CODE (_q30))
    7251              :           {
    7252            0 :           case NEGATE_EXPR:
    7253            0 :             {
    7254            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    7255            0 :               switch (TREE_CODE (_q40))
    7256              :                 {
    7257            0 :                 CASE_CONVERT:
    7258            0 :                   {
    7259            0 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    7260            0 :                     switch (TREE_CODE (_q50))
    7261              :                       {
    7262            0 :                       case LT_EXPR:
    7263            0 :                         {
    7264            0 :                           tree _q60 = TREE_OPERAND (_q50, 0);
    7265            0 :                           tree _q61 = TREE_OPERAND (_q50, 1);
    7266            0 :                           if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
    7267              :                             {
    7268            0 :                               if (integer_zerop (_q61))
    7269              :                                 {
    7270            0 :                                   if (integer_onep (_q31))
    7271              :                                     {
    7272            0 :                                       {
    7273            0 :                                         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    7274            0 :                                         tree res = generic_simplify_189 (loc, type, _p0, _p1, captures);
    7275            0 :                                         if (res) return res;
    7276              :                                       }
    7277              :                                     }
    7278              :                                 }
    7279              :                             }
    7280              :                           break;
    7281              :                         }
    7282              :                       default:;
    7283              :                       }
    7284              :                     break;
    7285              :                   }
    7286            0 :                 case LT_EXPR:
    7287            0 :                   {
    7288            0 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    7289            0 :                     tree _q51 = TREE_OPERAND (_q40, 1);
    7290            0 :                     if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    7291              :                       {
    7292            0 :                         if (integer_zerop (_q51))
    7293              :                           {
    7294            0 :                             if (integer_onep (_q31))
    7295              :                               {
    7296            0 :                                 {
    7297            0 :                                   tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    7298            0 :                                   tree res = generic_simplify_189 (loc, type, _p0, _p1, captures);
    7299            0 :                                   if (res) return res;
    7300              :                                 }
    7301              :                               }
    7302              :                           }
    7303              :                       }
    7304              :                     break;
    7305              :                   }
    7306              :                 default:;
    7307              :                 }
    7308              :               break;
    7309              :             }
    7310            1 :           default:;
    7311              :           }
    7312            1 :       {
    7313            1 :         tree _q30_pops[1];
    7314            1 :         if (tree_nop_convert (_q30, _q30_pops))
    7315              :           {
    7316            0 :             tree _q40 = _q30_pops[0];
    7317            0 :             switch (TREE_CODE (_q40))
    7318              :               {
    7319            0 :               case NEGATE_EXPR:
    7320            0 :                 {
    7321            0 :                   tree _q50 = TREE_OPERAND (_q40, 0);
    7322            0 :                   switch (TREE_CODE (_q50))
    7323              :                     {
    7324            0 :                     CASE_CONVERT:
    7325            0 :                       {
    7326            0 :                         tree _q60 = TREE_OPERAND (_q50, 0);
    7327            0 :                         switch (TREE_CODE (_q60))
    7328              :                           {
    7329            0 :                           case LT_EXPR:
    7330            0 :                             {
    7331            0 :                               tree _q70 = TREE_OPERAND (_q60, 0);
    7332            0 :                               tree _q71 = TREE_OPERAND (_q60, 1);
    7333            0 :                               if ((_q70 == _p0 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p0, 0) && types_match (_q70, _p0)))
    7334              :                                 {
    7335            0 :                                   if (integer_zerop (_q71))
    7336              :                                     {
    7337            0 :                                       if (integer_onep (_q31))
    7338              :                                         {
    7339            0 :                                           {
    7340            0 :                                             tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    7341            0 :                                             tree res = generic_simplify_189 (loc, type, _p0, _p1, captures);
    7342            0 :                                             if (res) return res;
    7343              :                                           }
    7344              :                                         }
    7345              :                                     }
    7346              :                                 }
    7347              :                               break;
    7348              :                             }
    7349              :                           default:;
    7350              :                           }
    7351              :                         break;
    7352              :                       }
    7353            0 :                     case LT_EXPR:
    7354            0 :                       {
    7355            0 :                         tree _q60 = TREE_OPERAND (_q50, 0);
    7356            0 :                         tree _q61 = TREE_OPERAND (_q50, 1);
    7357            0 :                         if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
    7358              :                           {
    7359            0 :                             if (integer_zerop (_q61))
    7360              :                               {
    7361            0 :                                 if (integer_onep (_q31))
    7362              :                                   {
    7363            0 :                                     {
    7364            0 :                                       tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    7365            0 :                                       tree res = generic_simplify_189 (loc, type, _p0, _p1, captures);
    7366            0 :                                       if (res) return res;
    7367              :                                     }
    7368              :                                   }
    7369              :                               }
    7370              :                           }
    7371              :                         break;
    7372              :                       }
    7373              :                     default:;
    7374              :                     }
    7375              :                   break;
    7376              :                 }
    7377              :               default:;
    7378              :               }
    7379              :           }
    7380              :       }
    7381            1 :         break;
    7382              :       }
    7383     67230326 :     default:;
    7384              :     }
    7385     67230326 : {
    7386     67230326 :   tree _p1_pops[1];
    7387     67230326 :   if (tree_nop_convert (_p1, _p1_pops))
    7388              :     {
    7389      7305334 :       tree _q30 = _p1_pops[0];
    7390      7305334 :       switch (TREE_CODE (_q30))
    7391              :         {
    7392            0 :         case BIT_IOR_EXPR:
    7393            0 :           {
    7394            0 :             tree _q40 = TREE_OPERAND (_q30, 0);
    7395            0 :             tree _q41 = TREE_OPERAND (_q30, 1);
    7396            0 :             switch (TREE_CODE (_q40))
    7397              :               {
    7398            0 :               case NEGATE_EXPR:
    7399            0 :                 {
    7400            0 :                   tree _q50 = TREE_OPERAND (_q40, 0);
    7401            0 :                   switch (TREE_CODE (_q50))
    7402              :                     {
    7403            0 :                     case LT_EXPR:
    7404            0 :                       {
    7405            0 :                         tree _q60 = TREE_OPERAND (_q50, 0);
    7406            0 :                         tree _q61 = TREE_OPERAND (_q50, 1);
    7407            0 :                         if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
    7408              :                           {
    7409            0 :                             if (integer_zerop (_q61))
    7410              :                               {
    7411            0 :                                 if (integer_onep (_q41))
    7412              :                                   {
    7413            0 :                                     {
    7414            0 :                                       tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    7415            0 :                                       tree res = generic_simplify_189 (loc, type, _p0, _p1, captures);
    7416            0 :                                       if (res) return res;
    7417              :                                     }
    7418              :                                   }
    7419              :                               }
    7420              :                           }
    7421              :                         break;
    7422              :                       }
    7423              :                     default:;
    7424              :                     }
    7425              :                   break;
    7426              :                 }
    7427            0 :               default:;
    7428              :               }
    7429            0 :           {
    7430            0 :             tree _q40_pops[1];
    7431            0 :             if (tree_nop_convert (_q40, _q40_pops))
    7432              :               {
    7433            0 :                 tree _q50 = _q40_pops[0];
    7434            0 :                 switch (TREE_CODE (_q50))
    7435              :                   {
    7436            0 :                   case NEGATE_EXPR:
    7437            0 :                     {
    7438            0 :                       tree _q60 = TREE_OPERAND (_q50, 0);
    7439            0 :                       switch (TREE_CODE (_q60))
    7440              :                         {
    7441            0 :                         case LT_EXPR:
    7442            0 :                           {
    7443            0 :                             tree _q70 = TREE_OPERAND (_q60, 0);
    7444            0 :                             tree _q71 = TREE_OPERAND (_q60, 1);
    7445            0 :                             if ((_q70 == _p0 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p0, 0) && types_match (_q70, _p0)))
    7446              :                               {
    7447            0 :                                 if (integer_zerop (_q71))
    7448              :                                   {
    7449            0 :                                     if (integer_onep (_q41))
    7450              :                                       {
    7451            0 :                                         {
    7452            0 :                                           tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    7453            0 :                                           tree res = generic_simplify_189 (loc, type, _p0, _p1, captures);
    7454            0 :                                           if (res) return res;
    7455              :                                         }
    7456              :                                       }
    7457              :                                   }
    7458              :                               }
    7459              :                             break;
    7460              :                           }
    7461              :                         default:;
    7462              :                         }
    7463              :                       break;
    7464              :                     }
    7465              :                   default:;
    7466              :                   }
    7467              :               }
    7468              :           }
    7469            0 :             break;
    7470              :           }
    7471              :         default:;
    7472              :         }
    7473              :     }
    7474              : }
    7475     67230326 :   switch (TREE_CODE (_p0))
    7476              :     {
    7477     32219194 :     CASE_CONVERT:
    7478     32219194 :       {
    7479     32219194 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7480     32219194 :         switch (TREE_CODE (_q20))
    7481              :           {
    7482         6408 :           case NEGATE_EXPR:
    7483         6408 :             {
    7484         6408 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7485         6408 :               switch (TREE_CODE (_p1))
    7486              :                 {
    7487          473 :                 CASE_CONVERT:
    7488          473 :                   {
    7489          473 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    7490          473 :                     if (tree_negate_expr_p (_q50))
    7491              :                       {
    7492            0 :                         {
    7493            0 :                           tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q50 };
    7494            0 :                           tree res = generic_simplify_190 (loc, type, _p0, _p1, captures);
    7495            0 :                           if (res) return res;
    7496              :                         }
    7497              :                       }
    7498              :                     break;
    7499              :                   }
    7500         6408 :                 default:;
    7501              :                 }
    7502         6408 :             if (tree_negate_expr_p (_p1))
    7503              :               {
    7504         3574 :                 {
    7505         3574 :                   tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p1 };
    7506         3574 :                   tree res = generic_simplify_190 (loc, type, _p0, _p1, captures);
    7507         3574 :                   if (res) return res;
    7508              :                 }
    7509              :               }
    7510              :               break;
    7511              :             }
    7512            4 :           case LT_EXPR:
    7513            4 :             {
    7514            4 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7515            4 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7516            4 :               {
    7517            4 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1 };
    7518            4 :                 tree res = generic_simplify_191 (loc, type, _p0, _p1, captures, LT_EXPR);
    7519            4 :                 if (res) return res;
    7520              :               }
    7521            4 :               break;
    7522              :             }
    7523            6 :           case LE_EXPR:
    7524            6 :             {
    7525            6 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7526            6 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7527            6 :               {
    7528            6 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1 };
    7529            6 :                 tree res = generic_simplify_191 (loc, type, _p0, _p1, captures, LE_EXPR);
    7530            6 :                 if (res) return res;
    7531              :               }
    7532            6 :               break;
    7533              :             }
    7534            1 :           case EQ_EXPR:
    7535            1 :             {
    7536            1 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7537            1 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7538            1 :               {
    7539            1 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1 };
    7540            1 :                 tree res = generic_simplify_191 (loc, type, _p0, _p1, captures, EQ_EXPR);
    7541            1 :                 if (res) return res;
    7542              :               }
    7543            1 :               break;
    7544              :             }
    7545         1157 :           case NE_EXPR:
    7546         1157 :             {
    7547         1157 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7548         1157 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7549         1157 :               {
    7550         1157 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1 };
    7551         1157 :                 tree res = generic_simplify_191 (loc, type, _p0, _p1, captures, NE_EXPR);
    7552         1157 :                 if (res) return res;
    7553              :               }
    7554         1157 :               break;
    7555              :             }
    7556           19 :           case GE_EXPR:
    7557           19 :             {
    7558           19 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7559           19 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7560           19 :               {
    7561           19 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1 };
    7562           19 :                 tree res = generic_simplify_191 (loc, type, _p0, _p1, captures, GE_EXPR);
    7563           19 :                 if (res) return res;
    7564              :               }
    7565           19 :               break;
    7566              :             }
    7567           19 :           case GT_EXPR:
    7568           19 :             {
    7569           19 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7570           19 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7571           19 :               {
    7572           19 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1 };
    7573           19 :                 tree res = generic_simplify_191 (loc, type, _p0, _p1, captures, GT_EXPR);
    7574           19 :                 if (res) return res;
    7575              :               }
    7576           19 :               break;
    7577              :             }
    7578            0 :           case UNORDERED_EXPR:
    7579            0 :             {
    7580            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7581            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7582            0 :               {
    7583            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1 };
    7584            0 :                 tree res = generic_simplify_191 (loc, type, _p0, _p1, captures, UNORDERED_EXPR);
    7585            0 :                 if (res) return res;
    7586              :               }
    7587            0 :               break;
    7588              :             }
    7589            0 :           case ORDERED_EXPR:
    7590            0 :             {
    7591            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7592            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7593            0 :               {
    7594            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1 };
    7595            0 :                 tree res = generic_simplify_191 (loc, type, _p0, _p1, captures, ORDERED_EXPR);
    7596            0 :                 if (res) return res;
    7597              :               }
    7598            0 :               break;
    7599              :             }
    7600            0 :           case UNLT_EXPR:
    7601            0 :             {
    7602            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7603            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7604            0 :               {
    7605            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1 };
    7606            0 :                 tree res = generic_simplify_191 (loc, type, _p0, _p1, captures, UNLT_EXPR);
    7607            0 :                 if (res) return res;
    7608              :               }
    7609            0 :               break;
    7610              :             }
    7611            0 :           case UNLE_EXPR:
    7612            0 :             {
    7613            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7614            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7615            0 :               {
    7616            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1 };
    7617            0 :                 tree res = generic_simplify_191 (loc, type, _p0, _p1, captures, UNLE_EXPR);
    7618            0 :                 if (res) return res;
    7619              :               }
    7620            0 :               break;
    7621              :             }
    7622            0 :           case UNGT_EXPR:
    7623            0 :             {
    7624            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7625            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7626            0 :               {
    7627            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1 };
    7628            0 :                 tree res = generic_simplify_191 (loc, type, _p0, _p1, captures, UNGT_EXPR);
    7629            0 :                 if (res) return res;
    7630              :               }
    7631            0 :               break;
    7632              :             }
    7633            0 :           case UNGE_EXPR:
    7634            0 :             {
    7635            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7636            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7637            0 :               {
    7638            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1 };
    7639            0 :                 tree res = generic_simplify_191 (loc, type, _p0, _p1, captures, UNGE_EXPR);
    7640            0 :                 if (res) return res;
    7641              :               }
    7642            0 :               break;
    7643              :             }
    7644            0 :           case UNEQ_EXPR:
    7645            0 :             {
    7646            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7647            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7648            0 :               {
    7649            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1 };
    7650            0 :                 tree res = generic_simplify_191 (loc, type, _p0, _p1, captures, UNEQ_EXPR);
    7651            0 :                 if (res) return res;
    7652              :               }
    7653            0 :               break;
    7654              :             }
    7655            0 :           case LTGT_EXPR:
    7656            0 :             {
    7657            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7658            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7659            0 :               {
    7660            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1 };
    7661            0 :                 tree res = generic_simplify_191 (loc, type, _p0, _p1, captures, LTGT_EXPR);
    7662            0 :                 if (res) return res;
    7663              :               }
    7664            0 :               break;
    7665              :             }
    7666     32218410 :           default:;
    7667              :           }
    7668     32218410 :       if (tree_negate_expr_p (_q20))
    7669              :         {
    7670        24617 :           switch (TREE_CODE (_p1))
    7671              :             {
    7672         2642 :             CASE_CONVERT:
    7673         2642 :               {
    7674         2642 :                 tree _q40 = TREE_OPERAND (_p1, 0);
    7675         2642 :                 switch (TREE_CODE (_q40))
    7676              :                   {
    7677            0 :                   case NEGATE_EXPR:
    7678            0 :                     {
    7679            0 :                       tree _q50 = TREE_OPERAND (_q40, 0);
    7680            0 :                       {
    7681            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q20 };
    7682            0 :                         tree res = generic_simplify_190 (loc, type, _p0, _p1, captures);
    7683            0 :                         if (res) return res;
    7684              :                       }
    7685            0 :                       break;
    7686              :                     }
    7687              :                   default:;
    7688              :                   }
    7689              :                 break;
    7690              :               }
    7691            6 :             case NEGATE_EXPR:
    7692            6 :               {
    7693            6 :                 tree _q40 = TREE_OPERAND (_p1, 0);
    7694            6 :                 {
    7695            6 :                   tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
    7696            6 :                   tree res = generic_simplify_190 (loc, type, _p0, _p1, captures);
    7697            6 :                   if (res) return res;
    7698              :                 }
    7699            0 :                 break;
    7700              :               }
    7701              :             default:;
    7702              :             }
    7703              :         }
    7704              :         break;
    7705              :       }
    7706       435266 :     case NEGATE_EXPR:
    7707       435266 :       {
    7708       435266 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7709       435266 :         switch (TREE_CODE (_p1))
    7710              :           {
    7711       150074 :           CASE_CONVERT:
    7712       150074 :             {
    7713       150074 :               tree _q40 = TREE_OPERAND (_p1, 0);
    7714       150074 :               if (tree_negate_expr_p (_q40))
    7715              :                 {
    7716            0 :                   {
    7717            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    7718            0 :                     tree res = generic_simplify_190 (loc, type, _p0, _p1, captures);
    7719            0 :                     if (res) return res;
    7720              :                   }
    7721              :                 }
    7722              :               break;
    7723              :             }
    7724       435266 :           default:;
    7725              :           }
    7726       435266 :       if (tree_negate_expr_p (_p1))
    7727              :         {
    7728        42412 :           {
    7729        42412 :             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    7730        42412 :             tree res = generic_simplify_190 (loc, type, _p0, _p1, captures);
    7731        42412 :             if (res) return res;
    7732              :           }
    7733              :         }
    7734       392854 :         if (tree_zero_one_valued_p (_q20))
    7735              :           {
    7736          529 :             if (tree_zero_one_valued_p (_p1))
    7737              :               {
    7738          521 :                 {
    7739          521 :                   tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    7740          521 :                   tree res = generic_simplify_192 (loc, type, _p0, _p1, captures);
    7741          521 :                   if (res) return res;
    7742              :                 }
    7743              :               }
    7744              :           }
    7745              :         break;
    7746              :       }
    7747     67186603 :     default:;
    7748              :     }
    7749     67186603 : if (tree_negate_expr_p (_p0))
    7750              :   {
    7751       701251 :     switch (TREE_CODE (_p1))
    7752              :       {
    7753       155146 :       CASE_CONVERT:
    7754       155146 :         {
    7755       155146 :           tree _q30 = TREE_OPERAND (_p1, 0);
    7756       155146 :           switch (TREE_CODE (_q30))
    7757              :             {
    7758            0 :             case NEGATE_EXPR:
    7759            0 :               {
    7760            0 :                 tree _q40 = TREE_OPERAND (_q30, 0);
    7761            0 :                 {
    7762            0 :                   tree captures[2] ATTRIBUTE_UNUSED = { _q40, _p0 };
    7763            0 :                   tree res = generic_simplify_190 (loc, type, _p0, _p1, captures);
    7764            0 :                   if (res) return res;
    7765              :                 }
    7766            0 :                 break;
    7767              :               }
    7768              :             default:;
    7769              :             }
    7770              :           break;
    7771              :         }
    7772            6 :       case NEGATE_EXPR:
    7773            6 :         {
    7774            6 :           tree _q30 = TREE_OPERAND (_p1, 0);
    7775            6 :           {
    7776            6 :             tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
    7777            6 :             tree res = generic_simplify_190 (loc, type, _p0, _p1, captures);
    7778            6 :             if (res) return res;
    7779              :           }
    7780            0 :           break;
    7781              :         }
    7782              :       default:;
    7783              :       }
    7784              :   }
    7785     67186597 : if (tree_zero_one_valued_p (_p0))
    7786              :   {
    7787       187850 :     switch (TREE_CODE (_p1))
    7788              :       {
    7789           24 :       case NEGATE_EXPR:
    7790           24 :         {
    7791           24 :           tree _q30 = TREE_OPERAND (_p1, 0);
    7792           24 :           if (tree_zero_one_valued_p (_q30))
    7793              :             {
    7794           24 :               {
    7795           24 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
    7796           24 :                 tree res = generic_simplify_192 (loc, type, _p0, _p1, captures);
    7797           24 :                 if (res) return res;
    7798              :               }
    7799              :             }
    7800              :           break;
    7801              :         }
    7802       187826 :       default:;
    7803              :       }
    7804       187826 :   if (tree_zero_one_valued_p (_p1))
    7805              :     {
    7806        12340 :       {
    7807        12340 :         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    7808        12340 :         if (INTEGRAL_TYPE_P (type)
    7809              : )
    7810              :           {
    7811        12340 :             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1426;
    7812        12340 :             {
    7813        12340 :               tree res_op0;
    7814        12340 :               res_op0 = captures[0];
    7815        12340 :               tree res_op1;
    7816        12340 :               res_op1 = captures[1];
    7817        12340 :               tree _r;
    7818        12340 :               _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    7819        12340 :               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 978, __FILE__, __LINE__, true);
    7820        12340 :               return _r;
    7821              :             }
    7822            0 : next_after_fail1426:;
    7823              :           }
    7824              :       }
    7825              :     }
    7826              :   }
    7827     67174233 :   switch (TREE_CODE (_p1))
    7828              :     {
    7829      7381493 :     CASE_CONVERT:
    7830      7381493 :       {
    7831      7381493 :         tree _q30 = TREE_OPERAND (_p1, 0);
    7832      7381493 :         switch (TREE_CODE (_q30))
    7833              :           {
    7834            0 :           case LT_EXPR:
    7835            0 :             {
    7836            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    7837            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    7838            0 :               {
    7839            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p0 };
    7840            0 :                 tree res = generic_simplify_193 (loc, type, _p0, _p1, captures, LT_EXPR);
    7841            0 :                 if (res) return res;
    7842              :               }
    7843            0 :               break;
    7844              :             }
    7845            0 :           case LE_EXPR:
    7846            0 :             {
    7847            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    7848            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    7849            0 :               {
    7850            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p0 };
    7851            0 :                 tree res = generic_simplify_193 (loc, type, _p0, _p1, captures, LE_EXPR);
    7852            0 :                 if (res) return res;
    7853              :               }
    7854            0 :               break;
    7855              :             }
    7856            0 :           case EQ_EXPR:
    7857            0 :             {
    7858            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    7859            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    7860            0 :               {
    7861            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p0 };
    7862            0 :                 tree res = generic_simplify_193 (loc, type, _p0, _p1, captures, EQ_EXPR);
    7863            0 :                 if (res) return res;
    7864              :               }
    7865            0 :               break;
    7866              :             }
    7867            0 :           case NE_EXPR:
    7868            0 :             {
    7869            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    7870            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    7871            0 :               {
    7872            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p0 };
    7873            0 :                 tree res = generic_simplify_193 (loc, type, _p0, _p1, captures, NE_EXPR);
    7874            0 :                 if (res) return res;
    7875              :               }
    7876            0 :               break;
    7877              :             }
    7878            0 :           case GE_EXPR:
    7879            0 :             {
    7880            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    7881            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    7882            0 :               {
    7883            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p0 };
    7884            0 :                 tree res = generic_simplify_193 (loc, type, _p0, _p1, captures, GE_EXPR);
    7885            0 :                 if (res) return res;
    7886              :               }
    7887            0 :               break;
    7888              :             }
    7889            0 :           case GT_EXPR:
    7890            0 :             {
    7891            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    7892            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    7893            0 :               {
    7894            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p0 };
    7895            0 :                 tree res = generic_simplify_193 (loc, type, _p0, _p1, captures, GT_EXPR);
    7896            0 :                 if (res) return res;
    7897              :               }
    7898            0 :               break;
    7899              :             }
    7900            0 :           case UNORDERED_EXPR:
    7901            0 :             {
    7902            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    7903            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    7904            0 :               {
    7905            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p0 };
    7906            0 :                 tree res = generic_simplify_193 (loc, type, _p0, _p1, captures, UNORDERED_EXPR);
    7907            0 :                 if (res) return res;
    7908              :               }
    7909            0 :               break;
    7910              :             }
    7911            0 :           case ORDERED_EXPR:
    7912            0 :             {
    7913            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    7914            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    7915            0 :               {
    7916            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p0 };
    7917            0 :                 tree res = generic_simplify_193 (loc, type, _p0, _p1, captures, ORDERED_EXPR);
    7918            0 :                 if (res) return res;
    7919              :               }
    7920            0 :               break;
    7921              :             }
    7922            0 :           case UNLT_EXPR:
    7923            0 :             {
    7924            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    7925            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    7926            0 :               {
    7927            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p0 };
    7928            0 :                 tree res = generic_simplify_193 (loc, type, _p0, _p1, captures, UNLT_EXPR);
    7929            0 :                 if (res) return res;
    7930              :               }
    7931            0 :               break;
    7932              :             }
    7933            0 :           case UNLE_EXPR:
    7934            0 :             {
    7935            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    7936            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    7937            0 :               {
    7938            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p0 };
    7939            0 :                 tree res = generic_simplify_193 (loc, type, _p0, _p1, captures, UNLE_EXPR);
    7940            0 :                 if (res) return res;
    7941              :               }
    7942            0 :               break;
    7943              :             }
    7944            0 :           case UNGT_EXPR:
    7945            0 :             {
    7946            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    7947            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    7948            0 :               {
    7949            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p0 };
    7950            0 :                 tree res = generic_simplify_193 (loc, type, _p0, _p1, captures, UNGT_EXPR);
    7951            0 :                 if (res) return res;
    7952              :               }
    7953            0 :               break;
    7954              :             }
    7955            0 :           case UNGE_EXPR:
    7956            0 :             {
    7957            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    7958            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    7959            0 :               {
    7960            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p0 };
    7961            0 :                 tree res = generic_simplify_193 (loc, type, _p0, _p1, captures, UNGE_EXPR);
    7962            0 :                 if (res) return res;
    7963              :               }
    7964            0 :               break;
    7965              :             }
    7966            0 :           case UNEQ_EXPR:
    7967            0 :             {
    7968            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    7969            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    7970            0 :               {
    7971            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p0 };
    7972            0 :                 tree res = generic_simplify_193 (loc, type, _p0, _p1, captures, UNEQ_EXPR);
    7973            0 :                 if (res) return res;
    7974              :               }
    7975            0 :               break;
    7976              :             }
    7977            0 :           case LTGT_EXPR:
    7978            0 :             {
    7979            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    7980            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    7981            0 :               {
    7982            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p0 };
    7983            0 :                 tree res = generic_simplify_193 (loc, type, _p0, _p1, captures, LTGT_EXPR);
    7984            0 :                 if (res) return res;
    7985              :               }
    7986            0 :               break;
    7987              :             }
    7988              :           default:;
    7989              :           }
    7990              :         break;
    7991              :       }
    7992     67174233 :     default:;
    7993              :     }
    7994     67174233 :   switch (TREE_CODE (_p0))
    7995              :     {
    7996            3 :     case MIN_EXPR:
    7997            3 :       {
    7998            3 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7999            3 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8000            3 :         switch (TREE_CODE (_p1))
    8001              :           {
    8002            0 :           case MAX_EXPR:
    8003            0 :             {
    8004            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    8005            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    8006            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    8007              :                 {
    8008            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    8009              :                     {
    8010            0 :                       {
    8011            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    8012            0 :                         if (!HONOR_NANS (captures[0])
    8013              : )
    8014              :                           {
    8015            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1427;
    8016            0 :                             {
    8017            0 :                               tree res_op0;
    8018            0 :                               res_op0 = captures[0];
    8019            0 :                               tree res_op1;
    8020            0 :                               res_op1 = captures[1];
    8021            0 :                               tree _r;
    8022            0 :                               _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    8023            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
    8024            0 :                               return _r;
    8025              :                             }
    8026            0 : next_after_fail1427:;
    8027              :                           }
    8028              :                       }
    8029              :                     }
    8030              :                 }
    8031            0 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    8032              :                 {
    8033            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    8034              :                     {
    8035            0 :                       {
    8036            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    8037            0 :                         if (!HONOR_NANS (captures[0])
    8038              : )
    8039              :                           {
    8040            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1428;
    8041            0 :                             {
    8042            0 :                               tree res_op0;
    8043            0 :                               res_op0 = captures[0];
    8044            0 :                               tree res_op1;
    8045            0 :                               res_op1 = captures[1];
    8046            0 :                               tree _r;
    8047            0 :                               _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    8048            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
    8049            0 :                               return _r;
    8050              :                             }
    8051            0 : next_after_fail1428:;
    8052              :                           }
    8053              :                       }
    8054              :                     }
    8055              :                 }
    8056              :               break;
    8057              :             }
    8058              :           default:;
    8059              :           }
    8060              :         break;
    8061              :       }
    8062          146 :     case MAX_EXPR:
    8063          146 :       {
    8064          146 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8065          146 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8066          146 :         switch (TREE_CODE (_p1))
    8067              :           {
    8068            0 :           case MIN_EXPR:
    8069            0 :             {
    8070            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    8071            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    8072            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    8073              :                 {
    8074            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    8075              :                     {
    8076            0 :                       {
    8077            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    8078            0 :                         if (!HONOR_NANS (captures[0])
    8079              : )
    8080              :                           {
    8081            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1429;
    8082            0 :                             {
    8083            0 :                               tree res_op0;
    8084            0 :                               res_op0 = captures[0];
    8085            0 :                               tree res_op1;
    8086            0 :                               res_op1 = captures[1];
    8087            0 :                               tree _r;
    8088            0 :                               _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    8089            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
    8090            0 :                               return _r;
    8091              :                             }
    8092            0 : next_after_fail1429:;
    8093              :                           }
    8094              :                       }
    8095              :                     }
    8096              :                 }
    8097            0 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    8098              :                 {
    8099            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    8100              :                     {
    8101            0 :                       {
    8102            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    8103            0 :                         if (!HONOR_NANS (captures[0])
    8104              : )
    8105              :                           {
    8106            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1430;
    8107            0 :                             {
    8108            0 :                               tree res_op0;
    8109            0 :                               res_op0 = captures[0];
    8110            0 :                               tree res_op1;
    8111            0 :                               res_op1 = captures[1];
    8112            0 :                               tree _r;
    8113            0 :                               _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    8114            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 895, __FILE__, __LINE__, true);
    8115            0 :                               return _r;
    8116              :                             }
    8117            0 : next_after_fail1430:;
    8118              :                           }
    8119              :                       }
    8120              :                     }
    8121              :                 }
    8122              :               break;
    8123              :             }
    8124              :           default:;
    8125              :           }
    8126              :         break;
    8127              :       }
    8128     32206067 :     CASE_CONVERT:
    8129     32206067 :       {
    8130     32206067 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8131     32206067 :         switch (TREE_CODE (_q20))
    8132              :           {
    8133           82 :           case BIT_AND_EXPR:
    8134           82 :             {
    8135           82 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8136           82 :               tree _q31 = TREE_OPERAND (_q20, 1);
    8137           82 :               switch (TREE_CODE (_q30))
    8138              :                 {
    8139            0 :                 CASE_CONVERT:
    8140            0 :                   {
    8141            0 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    8142            0 :                     switch (TREE_CODE (_q40))
    8143              :                       {
    8144            0 :                       case RSHIFT_EXPR:
    8145            0 :                         {
    8146            0 :                           tree _q50 = TREE_OPERAND (_q40, 0);
    8147            0 :                           tree _q51 = TREE_OPERAND (_q40, 1);
    8148            0 :                           switch (TREE_CODE (_q51))
    8149              :                             {
    8150            0 :                             case INTEGER_CST:
    8151            0 :                               {
    8152            0 :                                 switch (TREE_CODE (_q31))
    8153              :                                   {
    8154            0 :                                   case INTEGER_CST:
    8155            0 :                                     {
    8156            0 :                                       switch (TREE_CODE (_p1))
    8157              :                                         {
    8158            0 :                                         case INTEGER_CST:
    8159            0 :                                           {
    8160            0 :                                             {
    8161            0 :                                               tree captures[4] ATTRIBUTE_UNUSED = { _q50, _q51, _q31, _p1 };
    8162            0 :                                               tree res = generic_simplify_194 (loc, type, _p0, _p1, captures);
    8163            0 :                                               if (res) return res;
    8164              :                                             }
    8165            0 :                                             break;
    8166              :                                           }
    8167              :                                         default:;
    8168              :                                         }
    8169              :                                       break;
    8170              :                                     }
    8171              :                                   default:;
    8172              :                                   }
    8173              :                                 break;
    8174              :                               }
    8175              :                             default:;
    8176              :                             }
    8177              :                           break;
    8178              :                         }
    8179              :                       default:;
    8180              :                       }
    8181              :                     break;
    8182              :                   }
    8183              :                 default:;
    8184              :                 }
    8185              :               break;
    8186              :             }
    8187        31255 :           case EXACT_DIV_EXPR:
    8188        31255 :             {
    8189        31255 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8190        31255 :               tree _q31 = TREE_OPERAND (_q20, 1);
    8191        31255 :               switch (TREE_CODE (_p1))
    8192              :                 {
    8193            0 :                 CASE_CONVERT:
    8194            0 :                   {
    8195            0 :                     tree _q60 = TREE_OPERAND (_p1, 0);
    8196            0 :                     if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q31, 0))
    8197              :                       {
    8198            0 :                         {
    8199            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q31 };
    8200            0 :                           tree res = generic_simplify_195 (loc, type, _p0, _p1, captures);
    8201            0 :                           if (res) return res;
    8202              :                         }
    8203              :                       }
    8204              :                     break;
    8205              :                   }
    8206        31255 :                 default:;
    8207              :                 }
    8208        31255 :               if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q31, 0))
    8209              :                 {
    8210        21429 :                   {
    8211        21429 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q31 };
    8212        21429 :                     tree res = generic_simplify_195 (loc, type, _p0, _p1, captures);
    8213        21429 :                     if (res) return res;
    8214              :                   }
    8215              :                 }
    8216         9826 :               switch (TREE_CODE (_q31))
    8217              :                 {
    8218         9826 :                 case INTEGER_CST:
    8219         9826 :                   {
    8220         9826 :                     if (poly_int_tree_p (_p1))
    8221              :                       {
    8222         9826 :                         {
    8223         9826 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
    8224         9826 :                           tree res = generic_simplify_196 (loc, type, _p0, _p1, captures);
    8225         9826 :                           if (res) return res;
    8226              :                         }
    8227              :                       }
    8228              :                     break;
    8229              :                   }
    8230              :                 default:;
    8231              :                 }
    8232              :               break;
    8233              :             }
    8234      1396263 :           case PLUS_EXPR:
    8235      1396263 :             {
    8236      1396263 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8237      1396263 :               tree _q31 = TREE_OPERAND (_q20, 1);
    8238      1396263 :               switch (TREE_CODE (_q30))
    8239              :                 {
    8240       175886 :                 CASE_CONVERT:
    8241       175886 :                   {
    8242       175886 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    8243       175886 :                     switch (TREE_CODE (_q40))
    8244              :                       {
    8245            0 :                       case EXACT_DIV_EXPR:
    8246            0 :                         {
    8247            0 :                           tree _q50 = TREE_OPERAND (_q40, 0);
    8248            0 :                           tree _q51 = TREE_OPERAND (_q40, 1);
    8249            0 :                           switch (TREE_CODE (_q51))
    8250              :                             {
    8251            0 :                             case INTEGER_CST:
    8252            0 :                               {
    8253            0 :                                 if (poly_int_tree_p (_q31))
    8254              :                                   {
    8255            0 :                                     if (poly_int_tree_p (_p1))
    8256              :                                       {
    8257            0 :                                         {
    8258            0 :                                           tree captures[4] ATTRIBUTE_UNUSED = { _q50, _q51, _q31, _p1 };
    8259            0 :                                           tree res = generic_simplify_197 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    8260            0 :                                           if (res) return res;
    8261              :                                         }
    8262              :                                       }
    8263              :                                   }
    8264              :                                 break;
    8265              :                               }
    8266              :                             default:;
    8267              :                             }
    8268              :                           break;
    8269              :                         }
    8270              :                       default:;
    8271              :                       }
    8272              :                     break;
    8273              :                   }
    8274          112 :                 case EXACT_DIV_EXPR:
    8275          112 :                   {
    8276          112 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    8277          112 :                     tree _q41 = TREE_OPERAND (_q30, 1);
    8278          112 :                     switch (TREE_CODE (_q41))
    8279              :                       {
    8280          112 :                       case INTEGER_CST:
    8281          112 :                         {
    8282          112 :                           if (poly_int_tree_p (_q31))
    8283              :                             {
    8284          112 :                               if (poly_int_tree_p (_p1))
    8285              :                                 {
    8286          112 :                                   {
    8287          112 :                                     tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q41, _q31, _p1 };
    8288          112 :                                     tree res = generic_simplify_197 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    8289          112 :                                     if (res) return res;
    8290              :                                   }
    8291              :                                 }
    8292              :                             }
    8293              :                           break;
    8294              :                         }
    8295              :                       default:;
    8296              :                       }
    8297              :                     break;
    8298              :                   }
    8299              :                 default:;
    8300              :                 }
    8301              :               break;
    8302              :             }
    8303       104301 :           case MINUS_EXPR:
    8304       104301 :             {
    8305       104301 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8306       104301 :               tree _q31 = TREE_OPERAND (_q20, 1);
    8307       104301 :               switch (TREE_CODE (_q30))
    8308              :                 {
    8309        26306 :                 CASE_CONVERT:
    8310        26306 :                   {
    8311        26306 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    8312        26306 :                     switch (TREE_CODE (_q40))
    8313              :                       {
    8314            0 :                       case EXACT_DIV_EXPR:
    8315            0 :                         {
    8316            0 :                           tree _q50 = TREE_OPERAND (_q40, 0);
    8317            0 :                           tree _q51 = TREE_OPERAND (_q40, 1);
    8318            0 :                           switch (TREE_CODE (_q51))
    8319              :                             {
    8320            0 :                             case INTEGER_CST:
    8321            0 :                               {
    8322            0 :                                 if (poly_int_tree_p (_q31))
    8323              :                                   {
    8324            0 :                                     if (poly_int_tree_p (_p1))
    8325              :                                       {
    8326            0 :                                         {
    8327            0 :                                           tree captures[4] ATTRIBUTE_UNUSED = { _q50, _q51, _q31, _p1 };
    8328            0 :                                           tree res = generic_simplify_197 (loc, type, _p0, _p1, captures, MINUS_EXPR);
    8329            0 :                                           if (res) return res;
    8330              :                                         }
    8331              :                                       }
    8332              :                                   }
    8333              :                                 break;
    8334              :                               }
    8335              :                             default:;
    8336              :                             }
    8337              :                           break;
    8338              :                         }
    8339              :                       default:;
    8340              :                       }
    8341              :                     break;
    8342              :                   }
    8343            0 :                 case EXACT_DIV_EXPR:
    8344            0 :                   {
    8345            0 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    8346            0 :                     tree _q41 = TREE_OPERAND (_q30, 1);
    8347            0 :                     switch (TREE_CODE (_q41))
    8348              :                       {
    8349            0 :                       case INTEGER_CST:
    8350            0 :                         {
    8351            0 :                           if (poly_int_tree_p (_q31))
    8352              :                             {
    8353            0 :                               if (poly_int_tree_p (_p1))
    8354              :                                 {
    8355            0 :                                   {
    8356            0 :                                     tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q41, _q31, _p1 };
    8357            0 :                                     tree res = generic_simplify_197 (loc, type, _p0, _p1, captures, MINUS_EXPR);
    8358            0 :                                     if (res) return res;
    8359              :                                   }
    8360              :                                 }
    8361              :                             }
    8362              :                           break;
    8363              :                         }
    8364              :                       default:;
    8365              :                       }
    8366              :                     break;
    8367              :                   }
    8368              :                 default:;
    8369              :                 }
    8370              :               break;
    8371              :             }
    8372              :           default:;
    8373              :           }
    8374              :         break;
    8375              :       }
    8376        61777 :     case BIT_AND_EXPR:
    8377        61777 :       {
    8378        61777 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8379        61777 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8380        61777 :         switch (TREE_CODE (_q20))
    8381              :           {
    8382          275 :           case RSHIFT_EXPR:
    8383          275 :             {
    8384          275 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8385          275 :               tree _q31 = TREE_OPERAND (_q20, 1);
    8386          275 :               switch (TREE_CODE (_q31))
    8387              :                 {
    8388           14 :                 case INTEGER_CST:
    8389           14 :                   {
    8390           14 :                     switch (TREE_CODE (_q21))
    8391              :                       {
    8392           14 :                       case INTEGER_CST:
    8393           14 :                         {
    8394           14 :                           switch (TREE_CODE (_p1))
    8395              :                             {
    8396           14 :                             case INTEGER_CST:
    8397           14 :                               {
    8398           14 :                                 {
    8399           14 :                                   tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q21, _p1 };
    8400           14 :                                   tree res = generic_simplify_194 (loc, type, _p0, _p1, captures);
    8401           14 :                                   if (res) return res;
    8402              :                                 }
    8403            8 :                                 break;
    8404              :                               }
    8405              :                             default:;
    8406              :                             }
    8407              :                           break;
    8408              :                         }
    8409              :                       default:;
    8410              :                       }
    8411              :                     break;
    8412              :                   }
    8413              :                 default:;
    8414              :                 }
    8415              :               break;
    8416              :             }
    8417              :           default:;
    8418              :           }
    8419              :         break;
    8420              :       }
    8421       186139 :     case EXACT_DIV_EXPR:
    8422       186139 :       {
    8423       186139 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8424       186139 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8425       186139 :         switch (TREE_CODE (_p1))
    8426              :           {
    8427          108 :           CASE_CONVERT:
    8428          108 :             {
    8429          108 :               tree _q50 = TREE_OPERAND (_p1, 0);
    8430          108 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q21, 0))
    8431              :                 {
    8432            0 :                   {
    8433            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q21 };
    8434            0 :                     tree res = generic_simplify_195 (loc, type, _p0, _p1, captures);
    8435            0 :                     if (res) return res;
    8436              :                   }
    8437              :                 }
    8438              :               break;
    8439              :             }
    8440       186139 :           default:;
    8441              :           }
    8442       186139 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q21, 0))
    8443              :           {
    8444        27049 :             {
    8445        27049 :               tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q21 };
    8446        27049 :               tree res = generic_simplify_195 (loc, type, _p0, _p1, captures);
    8447        27049 :               if (res) return res;
    8448              :             }
    8449              :           }
    8450       159090 :         switch (TREE_CODE (_q21))
    8451              :           {
    8452       159090 :           case INTEGER_CST:
    8453       159090 :             {
    8454       159090 :               if (poly_int_tree_p (_p1))
    8455              :                 {
    8456       158982 :                   {
    8457       158982 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    8458       158982 :                     tree res = generic_simplify_196 (loc, type, _p0, _p1, captures);
    8459       158982 :                     if (res) return res;
    8460              :                   }
    8461              :                 }
    8462              :               break;
    8463              :             }
    8464              :           default:;
    8465              :           }
    8466              :         break;
    8467              :       }
    8468      7821908 :     case PLUS_EXPR:
    8469      7821908 :       {
    8470      7821908 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8471      7821908 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8472      7821908 :         switch (TREE_CODE (_q20))
    8473              :           {
    8474      3810880 :           CASE_CONVERT:
    8475      3810880 :             {
    8476      3810880 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8477      3810880 :               switch (TREE_CODE (_q30))
    8478              :                 {
    8479         5036 :                 case EXACT_DIV_EXPR:
    8480         5036 :                   {
    8481         5036 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    8482         5036 :                     tree _q41 = TREE_OPERAND (_q30, 1);
    8483         5036 :                     switch (TREE_CODE (_q41))
    8484              :                       {
    8485         5036 :                       case INTEGER_CST:
    8486         5036 :                         {
    8487         5036 :                           if (poly_int_tree_p (_q21))
    8488              :                             {
    8489         5036 :                               if (poly_int_tree_p (_p1))
    8490              :                                 {
    8491         5036 :                                   {
    8492         5036 :                                     tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q41, _q21, _p1 };
    8493         5036 :                                     tree res = generic_simplify_197 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    8494         5036 :                                     if (res) return res;
    8495              :                                   }
    8496              :                                 }
    8497              :                             }
    8498              :                           break;
    8499              :                         }
    8500              :                       default:;
    8501              :                       }
    8502              :                     break;
    8503              :                   }
    8504              :                 default:;
    8505              :                 }
    8506              :               break;
    8507              :             }
    8508            0 :           case EXACT_DIV_EXPR:
    8509            0 :             {
    8510            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8511            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    8512            0 :               switch (TREE_CODE (_q31))
    8513              :                 {
    8514            0 :                 case INTEGER_CST:
    8515            0 :                   {
    8516            0 :                     if (poly_int_tree_p (_q21))
    8517              :                       {
    8518            0 :                         if (poly_int_tree_p (_p1))
    8519              :                           {
    8520            0 :                             {
    8521            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q21, _p1 };
    8522            0 :                               tree res = generic_simplify_197 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    8523            0 :                               if (res) return res;
    8524              :                             }
    8525              :                           }
    8526              :                       }
    8527              :                     break;
    8528              :                   }
    8529              :                 default:;
    8530              :                 }
    8531              :               break;
    8532              :             }
    8533              :           default:;
    8534              :           }
    8535              :         break;
    8536              :       }
    8537      1156342 :     case MINUS_EXPR:
    8538      1156342 :       {
    8539      1156342 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8540      1156342 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8541      1156342 :         switch (TREE_CODE (_q20))
    8542              :           {
    8543       294496 :           CASE_CONVERT:
    8544       294496 :             {
    8545       294496 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8546       294496 :               switch (TREE_CODE (_q30))
    8547              :                 {
    8548            0 :                 case EXACT_DIV_EXPR:
    8549            0 :                   {
    8550            0 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    8551            0 :                     tree _q41 = TREE_OPERAND (_q30, 1);
    8552            0 :                     switch (TREE_CODE (_q41))
    8553              :                       {
    8554            0 :                       case INTEGER_CST:
    8555            0 :                         {
    8556            0 :                           if (poly_int_tree_p (_q21))
    8557              :                             {
    8558            0 :                               if (poly_int_tree_p (_p1))
    8559              :                                 {
    8560            0 :                                   {
    8561            0 :                                     tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q41, _q21, _p1 };
    8562            0 :                                     tree res = generic_simplify_197 (loc, type, _p0, _p1, captures, MINUS_EXPR);
    8563            0 :                                     if (res) return res;
    8564              :                                   }
    8565              :                                 }
    8566              :                             }
    8567              :                           break;
    8568              :                         }
    8569              :                       default:;
    8570              :                       }
    8571              :                     break;
    8572              :                   }
    8573              :                 default:;
    8574              :                 }
    8575              :               break;
    8576              :             }
    8577            0 :           case EXACT_DIV_EXPR:
    8578            0 :             {
    8579            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8580            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    8581            0 :               switch (TREE_CODE (_q31))
    8582              :                 {
    8583            0 :                 case INTEGER_CST:
    8584            0 :                   {
    8585            0 :                     if (poly_int_tree_p (_q21))
    8586              :                       {
    8587            0 :                         if (poly_int_tree_p (_p1))
    8588              :                           {
    8589            0 :                             {
    8590            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q21, _p1 };
    8591            0 :                               tree res = generic_simplify_197 (loc, type, _p0, _p1, captures, MINUS_EXPR);
    8592            0 :                               if (res) return res;
    8593              :                             }
    8594              :                           }
    8595              :                       }
    8596              :                     break;
    8597              :                   }
    8598              :                 default:;
    8599              :                 }
    8600              :               break;
    8601              :             }
    8602              :           default:;
    8603              :           }
    8604              :         break;
    8605              :       }
    8606     67067472 :     default:;
    8607              :     }
    8608     67067472 :   if (integer_minus_onep (_p1))
    8609              :     {
    8610       513220 :       {
    8611       513220 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    8612       513220 :         if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1431;
    8613       513220 :         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1431;
    8614       513220 :         {
    8615       513220 :           tree res_op0;
    8616       513220 :           res_op0 = captures[0];
    8617       513220 :           tree _r;
    8618       513220 :           _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    8619       513220 :           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 979, __FILE__, __LINE__, true);
    8620       513220 :           return _r;
    8621              :         }
    8622              : next_after_fail1431:;
    8623              :       }
    8624              :     }
    8625     66554252 :   switch (TREE_CODE (_p0))
    8626              :     {
    8627      4713594 :     case MULT_EXPR:
    8628      4713594 :       {
    8629      4713594 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8630      4713594 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8631      4713594 :         switch (TREE_CODE (_q21))
    8632              :           {
    8633       158135 :           case INTEGER_CST:
    8634       158135 :             {
    8635       158135 :               {
    8636       158135 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    8637       158135 :                 tree res = generic_simplify_198 (loc, type, _p0, _p1, captures);
    8638       158135 :                 if (res) return res;
    8639              :               }
    8640           30 :               break;
    8641              :             }
    8642              :           default:;
    8643              :           }
    8644              :         break;
    8645              :       }
    8646     66396147 :     default:;
    8647              :     }
    8648     66396147 :   switch (TREE_CODE (_p1))
    8649              :     {
    8650        23560 :     case MULT_EXPR:
    8651        23560 :       {
    8652        23560 :         tree _q30 = TREE_OPERAND (_p1, 0);
    8653        23560 :         tree _q31 = TREE_OPERAND (_p1, 1);
    8654        23560 :         switch (TREE_CODE (_q31))
    8655              :           {
    8656        17192 :           case INTEGER_CST:
    8657        17192 :             {
    8658        17192 :               {
    8659        17192 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q31, _p0 };
    8660        17192 :                 tree res = generic_simplify_198 (loc, type, _p0, _p1, captures);
    8661        17192 :                 if (res) return res;
    8662              :               }
    8663            0 :               break;
    8664              :             }
    8665              :           default:;
    8666              :           }
    8667              :         break;
    8668              :       }
    8669     66378955 :     default:;
    8670              :     }
    8671     66378955 :   switch (TREE_CODE (_p0))
    8672              :     {
    8673           36 :     case VEC_COND_EXPR:
    8674           36 :       {
    8675           36 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8676           36 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8677           36 :         tree _q22 = TREE_OPERAND (_p0, 2);
    8678           36 :         switch (TREE_CODE (_p1))
    8679              :           {
    8680            0 :           case VEC_COND_EXPR:
    8681            0 :             {
    8682            0 :               tree _q60 = TREE_OPERAND (_p1, 0);
    8683            0 :               tree _q61 = TREE_OPERAND (_p1, 1);
    8684            0 :               tree _q62 = TREE_OPERAND (_p1, 2);
    8685            0 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    8686              :                 {
    8687            0 :                   {
    8688            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
    8689            0 :                     if (VECTOR_TYPE_P (type)
    8690            0 :  && (TREE_CODE_CLASS (MULT_EXPR) != tcc_comparison
    8691              :  || types_match (type, TREE_TYPE (captures[2]))
    8692              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    8693              :  || (optimize_vectors_before_lowering_p ()
    8694              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    8695              : )
    8696              :                       {
    8697            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1432;
    8698            0 :                         {
    8699            0 :                           tree res_op0;
    8700            0 :                           res_op0 = captures[1];
    8701            0 :                           tree res_op1;
    8702            0 :                           {
    8703            0 :                             tree _o1[2], _r1;
    8704            0 :                             _o1[0] = captures[2];
    8705            0 :                             _o1[1] = captures[5];
    8706            0 :                             _r1 = fold_build2_loc (loc, MULT_EXPR, type, _o1[0], _o1[1]);
    8707            0 :                             if (EXPR_P (_r1))
    8708            0 :                               goto next_after_fail1432;
    8709            0 :                             res_op1 = _r1;
    8710              :                           }
    8711            0 :                           tree res_op2;
    8712            0 :                           {
    8713            0 :                             tree _o1[2], _r1;
    8714            0 :                             _o1[0] = captures[3];
    8715            0 :                             _o1[1] = captures[6];
    8716            0 :                             _r1 = fold_build2_loc (loc, MULT_EXPR, type, _o1[0], _o1[1]);
    8717            0 :                             if (EXPR_P (_r1))
    8718            0 :                               goto next_after_fail1432;
    8719            0 :                             res_op2 = _r1;
    8720              :                           }
    8721            0 :                           tree _r;
    8722            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    8723            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 896, __FILE__, __LINE__, true);
    8724            0 :                           return _r;
    8725              :                         }
    8726            0 : next_after_fail1432:;
    8727              :                       }
    8728              :                   }
    8729              :                 }
    8730              :               break;
    8731              :             }
    8732           36 :           default:;
    8733              :           }
    8734           36 :         {
    8735           36 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
    8736           36 :           if (VECTOR_TYPE_P (type)
    8737           36 :  && (TREE_CODE_CLASS (MULT_EXPR) != tcc_comparison
    8738              :  || types_match (type, TREE_TYPE (captures[2]))
    8739              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    8740              :  || (optimize_vectors_before_lowering_p ()
    8741              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    8742              : )
    8743              :             {
    8744           36 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1433;
    8745           36 :               {
    8746           36 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1433;
    8747            0 :                 tree res_op0;
    8748            0 :                 res_op0 = captures[1];
    8749            0 :                 tree res_op1;
    8750            0 :                 {
    8751            0 :                   tree _o1[2], _r1;
    8752            0 :                   _o1[0] = captures[2];
    8753            0 :                   _o1[1] = unshare_expr (captures[4]);
    8754            0 :                   _r1 = fold_build2_loc (loc, MULT_EXPR, type, _o1[0], _o1[1]);
    8755            0 :                   if (EXPR_P (_r1))
    8756            0 :                     goto next_after_fail1433;
    8757            0 :                   res_op1 = _r1;
    8758              :                 }
    8759            0 :                 tree res_op2;
    8760            0 :                 {
    8761            0 :                   tree _o1[2], _r1;
    8762            0 :                   _o1[0] = captures[3];
    8763            0 :                   _o1[1] = captures[4];
    8764            0 :                   _r1 = fold_build2_loc (loc, MULT_EXPR, type, _o1[0], _o1[1]);
    8765            0 :                   if (EXPR_P (_r1))
    8766            0 :                     goto next_after_fail1433;
    8767            0 :                   res_op2 = _r1;
    8768              :                 }
    8769            0 :                 tree _r;
    8770            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    8771            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 898, __FILE__, __LINE__, true);
    8772            0 :                 return _r;
    8773              :               }
    8774           36 : next_after_fail1433:;
    8775              :             }
    8776              :         }
    8777           36 :         break;
    8778              :       }
    8779     66378955 :     default:;
    8780              :     }
    8781     66378955 :   switch (TREE_CODE (_p1))
    8782              :     {
    8783            0 :     case VEC_COND_EXPR:
    8784            0 :       {
    8785            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    8786            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
    8787            0 :         tree _q32 = TREE_OPERAND (_p1, 2);
    8788            0 :         {
    8789            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
    8790            0 :           if (VECTOR_TYPE_P (type)
    8791            0 :  && (TREE_CODE_CLASS (MULT_EXPR) != tcc_comparison
    8792              :  || types_match (type, TREE_TYPE (captures[3]))
    8793              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
    8794              :  || (optimize_vectors_before_lowering_p ()
    8795              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
    8796              : )
    8797              :             {
    8798            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1434;
    8799            0 :               {
    8800            0 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1434;
    8801            0 :                 tree res_op0;
    8802            0 :                 res_op0 = captures[2];
    8803            0 :                 tree res_op1;
    8804            0 :                 {
    8805            0 :                   tree _o1[2], _r1;
    8806            0 :                   _o1[0] = unshare_expr (captures[0]);
    8807            0 :                   _o1[1] = captures[3];
    8808            0 :                   _r1 = fold_build2_loc (loc, MULT_EXPR, type, _o1[0], _o1[1]);
    8809            0 :                   if (EXPR_P (_r1))
    8810            0 :                     goto next_after_fail1434;
    8811            0 :                   res_op1 = _r1;
    8812              :                 }
    8813            0 :                 tree res_op2;
    8814            0 :                 {
    8815            0 :                   tree _o1[2], _r1;
    8816            0 :                   _o1[0] = captures[0];
    8817            0 :                   _o1[1] = captures[4];
    8818            0 :                   _r1 = fold_build2_loc (loc, MULT_EXPR, type, _o1[0], _o1[1]);
    8819            0 :                   if (EXPR_P (_r1))
    8820            0 :                     goto next_after_fail1434;
    8821            0 :                   res_op2 = _r1;
    8822              :                 }
    8823            0 :                 tree _r;
    8824            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    8825            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 899, __FILE__, __LINE__, true);
    8826            0 :                 return _r;
    8827              :               }
    8828            0 : next_after_fail1434:;
    8829              :             }
    8830              :         }
    8831            0 :         break;
    8832              :       }
    8833     66378955 :     default:;
    8834              :     }
    8835     66378955 :   switch (TREE_CODE (_p0))
    8836              :     {
    8837         2384 :     case REAL_CST:
    8838         2384 :       {
    8839         2384 :         switch (TREE_CODE (_p1))
    8840              :           {
    8841            0 :           case CALL_EXPR:
    8842            0 :             switch (get_call_combined_fn (_p1))
    8843              :               {
    8844            0 :               case CFN_BUILT_IN_LDEXPF:
    8845            0 :                 if (call_expr_nargs (_p1) == 2)
    8846              :     {
    8847            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    8848            0 :                     tree _q31 = CALL_EXPR_ARG (_p1, 1);
    8849            0 :                     {
    8850            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
    8851            0 :                       tree res = generic_simplify_201 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LDEXPF);
    8852            0 :                       if (res) return res;
    8853              :                     }
    8854              :                   }
    8855              :                 break;
    8856            0 :               case CFN_BUILT_IN_LDEXPL:
    8857            0 :                 if (call_expr_nargs (_p1) == 2)
    8858              :     {
    8859            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    8860            0 :                     tree _q31 = CALL_EXPR_ARG (_p1, 1);
    8861            0 :                     {
    8862            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
    8863            0 :                       tree res = generic_simplify_201 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LDEXPL);
    8864            0 :                       if (res) return res;
    8865              :                     }
    8866              :                   }
    8867              :                 break;
    8868            0 :               case CFN_LDEXP:
    8869            0 :                 if (call_expr_nargs (_p1) == 2)
    8870              :     {
    8871            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    8872            0 :                     tree _q31 = CALL_EXPR_ARG (_p1, 1);
    8873            0 :                     {
    8874            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
    8875            0 :                       tree res = generic_simplify_201 (loc, type, _p0, _p1, captures, CFN_LDEXP);
    8876            0 :                       if (res) return res;
    8877              :                     }
    8878              :                   }
    8879              :                 break;
    8880            0 :               case CFN_BUILT_IN_LDEXP:
    8881            0 :                 if (call_expr_nargs (_p1) == 2)
    8882              :     {
    8883            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    8884            0 :                     tree _q31 = CALL_EXPR_ARG (_p1, 1);
    8885            0 :                     {
    8886            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
    8887            0 :                       tree res = generic_simplify_201 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LDEXP);
    8888            0 :                       if (res) return res;
    8889              :                     }
    8890              :                   }
    8891              :                 break;
    8892              :               default:;
    8893              :               }
    8894              :             break;
    8895              :           default:;
    8896              :           }
    8897              :         break;
    8898              :       }
    8899      2416590 :     case CALL_EXPR:
    8900      2416590 :       switch (get_call_combined_fn (_p0))
    8901              :         {
    8902           55 :         case CFN_BUILT_IN_SQRTF:
    8903           55 :           if (call_expr_nargs (_p0) == 1)
    8904              :     {
    8905           55 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8906           55 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    8907              :                 {
    8908            0 :                   {
    8909            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
    8910            0 :                     tree res = generic_simplify_199 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF);
    8911            0 :                     if (res) return res;
    8912              :                   }
    8913              :                 }
    8914           55 :               switch (TREE_CODE (_p1))
    8915              :                 {
    8916           13 :                 case CALL_EXPR:
    8917           13 :                   switch (get_call_combined_fn (_p1))
    8918              :                     {
    8919           13 :                     case CFN_BUILT_IN_SQRTF:
    8920           13 :                       if (call_expr_nargs (_p1) == 1)
    8921              :     {
    8922           13 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    8923           13 :                           {
    8924           13 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    8925           13 :                             if (flag_unsafe_math_optimizations
    8926              : )
    8927              :                               {
    8928           13 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1435;
    8929           13 :                                 {
    8930           13 :                                   tree res_op0;
    8931           13 :                                   {
    8932           13 :                                     tree _o1[2], _r1;
    8933           13 :                                     _o1[0] = captures[1];
    8934           13 :                                     _o1[1] = captures[3];
    8935           13 :                                     _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    8936           13 :                                     res_op0 = _r1;
    8937              :                                   }
    8938           13 :                                   tree _r;
    8939           13 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SQRTF, type, 1, res_op0);
    8940           13 :                                   if (!_r)
    8941            0 :                                     goto next_after_fail1435;
    8942           13 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 980, __FILE__, __LINE__, true);
    8943           13 :                                   return _r;
    8944              :                                 }
    8945            0 : next_after_fail1435:;
    8946              :                               }
    8947              :                           }
    8948              :                         }
    8949              :                       break;
    8950              :                     default:;
    8951              :                     }
    8952              :                   break;
    8953              :                 default:;
    8954              :                 }
    8955              :             }
    8956              :           break;
    8957           48 :         case CFN_BUILT_IN_SQRTL:
    8958           48 :           if (call_expr_nargs (_p0) == 1)
    8959              :     {
    8960           48 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8961           48 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    8962              :                 {
    8963            0 :                   {
    8964            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
    8965            0 :                     tree res = generic_simplify_199 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL);
    8966            0 :                     if (res) return res;
    8967              :                   }
    8968              :                 }
    8969           48 :               switch (TREE_CODE (_p1))
    8970              :                 {
    8971           13 :                 case CALL_EXPR:
    8972           13 :                   switch (get_call_combined_fn (_p1))
    8973              :                     {
    8974           13 :                     case CFN_BUILT_IN_SQRTL:
    8975           13 :                       if (call_expr_nargs (_p1) == 1)
    8976              :     {
    8977           13 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    8978           13 :                           {
    8979           13 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    8980           13 :                             if (flag_unsafe_math_optimizations
    8981              : )
    8982              :                               {
    8983           13 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1436;
    8984           13 :                                 {
    8985           13 :                                   tree res_op0;
    8986           13 :                                   {
    8987           13 :                                     tree _o1[2], _r1;
    8988           13 :                                     _o1[0] = captures[1];
    8989           13 :                                     _o1[1] = captures[3];
    8990           13 :                                     _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    8991           13 :                                     res_op0 = _r1;
    8992              :                                   }
    8993           13 :                                   tree _r;
    8994           13 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SQRTL, type, 1, res_op0);
    8995           13 :                                   if (!_r)
    8996            0 :                                     goto next_after_fail1436;
    8997           13 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 980, __FILE__, __LINE__, true);
    8998           13 :                                   return _r;
    8999              :                                 }
    9000            0 : next_after_fail1436:;
    9001              :                               }
    9002              :                           }
    9003              :                         }
    9004              :                       break;
    9005              :                     default:;
    9006              :                     }
    9007              :                   break;
    9008              :                 default:;
    9009              :                 }
    9010              :             }
    9011              :           break;
    9012          287 :         case CFN_BUILT_IN_EXP:
    9013          287 :           if (call_expr_nargs (_p0) == 1)
    9014              :     {
    9015          287 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9016          287 :               switch (TREE_CODE (_p1))
    9017              :                 {
    9018           81 :                 case CALL_EXPR:
    9019           81 :                   switch (get_call_combined_fn (_p1))
    9020              :                     {
    9021           31 :                     case CFN_BUILT_IN_EXP:
    9022           31 :                       if (call_expr_nargs (_p1) == 1)
    9023              :     {
    9024           31 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9025           31 :                           {
    9026           31 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    9027           31 :                             if (flag_unsafe_math_optimizations
    9028              : )
    9029              :                               {
    9030           27 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1437;
    9031           27 :                                 {
    9032           27 :                                   tree res_op0;
    9033           27 :                                   {
    9034           27 :                                     tree _o1[2], _r1;
    9035           27 :                                     _o1[0] = captures[1];
    9036           27 :                                     _o1[1] = captures[3];
    9037           27 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9038           27 :                                     res_op0 = _r1;
    9039              :                                   }
    9040           27 :                                   tree _r;
    9041           27 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP, type, 1, res_op0);
    9042           27 :                                   if (!_r)
    9043            0 :                                     goto next_after_fail1437;
    9044           27 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 981, __FILE__, __LINE__, true);
    9045           27 :                                   return _r;
    9046              :                                 }
    9047            4 : next_after_fail1437:;
    9048              :                               }
    9049              :                           }
    9050              :                         }
    9051              :                       break;
    9052            0 :                     case CFN_BUILT_IN_POW:
    9053            0 :                       if (call_expr_nargs (_p1) == 2)
    9054              :     {
    9055            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9056            0 :                           tree _q41 = CALL_EXPR_ARG (_p1, 1);
    9057            0 :                           switch (TREE_CODE (_q40))
    9058              :                             {
    9059            0 :                             case REAL_CST:
    9060            0 :                               {
    9061            0 :                                 {
    9062            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
    9063            0 :                                   if (flag_unsafe_math_optimizations
    9064              : )
    9065              :                                     {
    9066            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
    9067            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
    9068              : )
    9069              :                                         {
    9070            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1438;
    9071            0 :                                           {
    9072            0 :                                             tree res_op0;
    9073            0 :                                             {
    9074            0 :                                               tree _o1[2], _r1;
    9075            0 :                                               {
    9076            0 :                                                 tree _o2[2], _r2;
    9077            0 :                                                 {
    9078            0 :                                                   tree _o3[1], _r3;
    9079            0 :                                                   _o3[0] = captures[1];
    9080            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG, TREE_TYPE (_o3[0]), 1, _o3[0]);
    9081            0 :                                                   if (!_r3)
    9082            0 :                                                     goto next_after_fail1438;
    9083            0 :                                                   _o2[0] = _r3;
    9084              :                                                 }
    9085            0 :                                                 _o2[1] = captures[2];
    9086            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    9087            0 :                                                 _o1[0] = _r2;
    9088              :                                               }
    9089            0 :                                               _o1[1] = captures[4];
    9090            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9091            0 :                                               res_op0 = _r1;
    9092              :                                             }
    9093            0 :                                             tree _r;
    9094            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP, type, 1, res_op0);
    9095            0 :                                             if (!_r)
    9096            0 :                                               goto next_after_fail1438;
    9097            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 982, __FILE__, __LINE__, true);
    9098            0 :                                             return _r;
    9099              :                                           }
    9100            0 : next_after_fail1438:;
    9101              :                                         }
    9102              :                                     }
    9103              :                                 }
    9104            0 :                                 break;
    9105              :                               }
    9106              :                             default:;
    9107              :                             }
    9108              :                         }
    9109              :                       break;
    9110              :                     default:;
    9111              :                     }
    9112              :                   break;
    9113              :                 default:;
    9114              :                 }
    9115              :             }
    9116              :           break;
    9117          123 :         case CFN_BUILT_IN_POW:
    9118          123 :           if (call_expr_nargs (_p0) == 2)
    9119              :     {
    9120          123 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9121          123 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    9122          123 :               switch (TREE_CODE (_q20))
    9123              :                 {
    9124            1 :                 case REAL_CST:
    9125            1 :                   {
    9126            1 :                     switch (TREE_CODE (_p1))
    9127              :                       {
    9128            1 :                       case CALL_EXPR:
    9129            1 :                         switch (get_call_combined_fn (_p1))
    9130              :                           {
    9131            0 :                           case CFN_BUILT_IN_EXP:
    9132            0 :                             if (call_expr_nargs (_p1) == 1)
    9133              :     {
    9134            0 :                                 tree _q50 = CALL_EXPR_ARG (_p1, 0);
    9135            0 :                                 {
    9136            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
    9137            0 :                                   if (flag_unsafe_math_optimizations
    9138              : )
    9139              :                                     {
    9140            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
    9141            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
    9142              : )
    9143              :                                         {
    9144            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1439;
    9145            0 :                                           {
    9146            0 :                                             tree res_op0;
    9147            0 :                                             {
    9148            0 :                                               tree _o1[2], _r1;
    9149            0 :                                               {
    9150            0 :                                                 tree _o2[2], _r2;
    9151            0 :                                                 {
    9152            0 :                                                   tree _o3[1], _r3;
    9153            0 :                                                   _o3[0] = captures[1];
    9154            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG, TREE_TYPE (_o3[0]), 1, _o3[0]);
    9155            0 :                                                   if (!_r3)
    9156            0 :                                                     goto next_after_fail1439;
    9157            0 :                                                   _o2[0] = _r3;
    9158              :                                                 }
    9159            0 :                                                 _o2[1] = captures[2];
    9160            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    9161            0 :                                                 _o1[0] = _r2;
    9162              :                                               }
    9163            0 :                                               _o1[1] = captures[4];
    9164            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9165            0 :                                               res_op0 = _r1;
    9166              :                                             }
    9167            0 :                                             tree _r;
    9168            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP, type, 1, res_op0);
    9169            0 :                                             if (!_r)
    9170            0 :                                               goto next_after_fail1439;
    9171            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 982, __FILE__, __LINE__, true);
    9172            0 :                                             return _r;
    9173              :                                           }
    9174            0 : next_after_fail1439:;
    9175              :                                         }
    9176              :                                     }
    9177              :                                 }
    9178              :                               }
    9179              :                             break;
    9180            0 :                           case CFN_BUILT_IN_EXP2:
    9181            0 :                             if (call_expr_nargs (_p1) == 1)
    9182              :     {
    9183            0 :                                 tree _q50 = CALL_EXPR_ARG (_p1, 0);
    9184            0 :                                 {
    9185            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
    9186            0 :                                   if (flag_unsafe_math_optimizations
    9187              : )
    9188              :                                     {
    9189            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
    9190            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
    9191              : )
    9192              :                                         {
    9193            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1440;
    9194            0 :                                           {
    9195            0 :                                             tree res_op0;
    9196            0 :                                             {
    9197            0 :                                               tree _o1[2], _r1;
    9198            0 :                                               {
    9199            0 :                                                 tree _o2[2], _r2;
    9200            0 :                                                 {
    9201            0 :                                                   tree _o3[1], _r3;
    9202            0 :                                                   _o3[0] = captures[1];
    9203            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG2, TREE_TYPE (_o3[0]), 1, _o3[0]);
    9204            0 :                                                   if (!_r3)
    9205            0 :                                                     goto next_after_fail1440;
    9206            0 :                                                   _o2[0] = _r3;
    9207              :                                                 }
    9208            0 :                                                 _o2[1] = captures[2];
    9209            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    9210            0 :                                                 _o1[0] = _r2;
    9211              :                                               }
    9212            0 :                                               _o1[1] = captures[4];
    9213            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9214            0 :                                               res_op0 = _r1;
    9215              :                                             }
    9216            0 :                                             tree _r;
    9217            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2, type, 1, res_op0);
    9218            0 :                                             if (!_r)
    9219            0 :                                               goto next_after_fail1440;
    9220            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 982, __FILE__, __LINE__, true);
    9221            0 :                                             return _r;
    9222              :                                           }
    9223            0 : next_after_fail1440:;
    9224              :                                         }
    9225              :                                     }
    9226              :                                 }
    9227              :                               }
    9228              :                             break;
    9229            0 :                           case CFN_BUILT_IN_EXP10:
    9230            0 :                             if (call_expr_nargs (_p1) == 1)
    9231              :     {
    9232            0 :                                 tree _q50 = CALL_EXPR_ARG (_p1, 0);
    9233            0 :                                 {
    9234            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
    9235            0 :                                   if (flag_unsafe_math_optimizations
    9236              : )
    9237              :                                     {
    9238            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
    9239            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
    9240              : )
    9241              :                                         {
    9242            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1441;
    9243            0 :                                           {
    9244            0 :                                             tree res_op0;
    9245            0 :                                             {
    9246            0 :                                               tree _o1[2], _r1;
    9247            0 :                                               {
    9248            0 :                                                 tree _o2[2], _r2;
    9249            0 :                                                 {
    9250            0 :                                                   tree _o3[1], _r3;
    9251            0 :                                                   _o3[0] = captures[1];
    9252            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10, TREE_TYPE (_o3[0]), 1, _o3[0]);
    9253            0 :                                                   if (!_r3)
    9254            0 :                                                     goto next_after_fail1441;
    9255            0 :                                                   _o2[0] = _r3;
    9256              :                                                 }
    9257            0 :                                                 _o2[1] = captures[2];
    9258            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    9259            0 :                                                 _o1[0] = _r2;
    9260              :                                               }
    9261            0 :                                               _o1[1] = captures[4];
    9262            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9263            0 :                                               res_op0 = _r1;
    9264              :                                             }
    9265            0 :                                             tree _r;
    9266            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10, type, 1, res_op0);
    9267            0 :                                             if (!_r)
    9268            0 :                                               goto next_after_fail1441;
    9269            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 982, __FILE__, __LINE__, true);
    9270            0 :                                             return _r;
    9271              :                                           }
    9272            0 : next_after_fail1441:;
    9273              :                                         }
    9274              :                                     }
    9275              :                                 }
    9276              :                               }
    9277              :                             break;
    9278            0 :                           case CFN_BUILT_IN_POW10:
    9279            0 :                             if (call_expr_nargs (_p1) == 1)
    9280              :     {
    9281            0 :                                 tree _q50 = CALL_EXPR_ARG (_p1, 0);
    9282            0 :                                 {
    9283            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
    9284            0 :                                   if (flag_unsafe_math_optimizations
    9285              : )
    9286              :                                     {
    9287            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
    9288            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
    9289              : )
    9290              :                                         {
    9291            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1442;
    9292            0 :                                           {
    9293            0 :                                             tree res_op0;
    9294            0 :                                             {
    9295            0 :                                               tree _o1[2], _r1;
    9296            0 :                                               {
    9297            0 :                                                 tree _o2[2], _r2;
    9298            0 :                                                 {
    9299            0 :                                                   tree _o3[1], _r3;
    9300            0 :                                                   _o3[0] = captures[1];
    9301            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10, TREE_TYPE (_o3[0]), 1, _o3[0]);
    9302            0 :                                                   if (!_r3)
    9303            0 :                                                     goto next_after_fail1442;
    9304            0 :                                                   _o2[0] = _r3;
    9305              :                                                 }
    9306            0 :                                                 _o2[1] = captures[2];
    9307            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    9308            0 :                                                 _o1[0] = _r2;
    9309              :                                               }
    9310            0 :                                               _o1[1] = captures[4];
    9311            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9312            0 :                                               res_op0 = _r1;
    9313              :                                             }
    9314            0 :                                             tree _r;
    9315            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10, type, 1, res_op0);
    9316            0 :                                             if (!_r)
    9317            0 :                                               goto next_after_fail1442;
    9318            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 982, __FILE__, __LINE__, true);
    9319            0 :                                             return _r;
    9320              :                                           }
    9321            0 : next_after_fail1442:;
    9322              :                                         }
    9323              :                                     }
    9324              :                                 }
    9325              :                               }
    9326              :                             break;
    9327              :                           default:;
    9328              :                           }
    9329              :                         break;
    9330              :                       default:;
    9331              :                       }
    9332              :                     break;
    9333              :                   }
    9334          123 :                 default:;
    9335              :                 }
    9336          123 :               switch (TREE_CODE (_q21))
    9337              :                 {
    9338           12 :                 case REAL_CST:
    9339           12 :                   {
    9340           12 :                     if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    9341              :                       {
    9342            8 :                         {
    9343            8 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
    9344            8 :                           tree res = generic_simplify_200 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POW);
    9345            8 :                           if (res) return res;
    9346              :                         }
    9347              :                       }
    9348              :                     break;
    9349              :                   }
    9350              :                 default:;
    9351              :                 }
    9352              :             }
    9353              :           break;
    9354           48 :         case CFN_BUILT_IN_EXP10F:
    9355           48 :           if (call_expr_nargs (_p0) == 1)
    9356              :     {
    9357           48 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9358           48 :               switch (TREE_CODE (_p1))
    9359              :                 {
    9360           24 :                 case CALL_EXPR:
    9361           24 :                   switch (get_call_combined_fn (_p1))
    9362              :                     {
    9363           24 :                     case CFN_BUILT_IN_EXP10F:
    9364           24 :                       if (call_expr_nargs (_p1) == 1)
    9365              :     {
    9366           24 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9367           24 :                           {
    9368           24 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    9369           24 :                             if (flag_unsafe_math_optimizations
    9370              : )
    9371              :                               {
    9372           24 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1443;
    9373           24 :                                 {
    9374           24 :                                   tree res_op0;
    9375           24 :                                   {
    9376           24 :                                     tree _o1[2], _r1;
    9377           24 :                                     _o1[0] = captures[1];
    9378           24 :                                     _o1[1] = captures[3];
    9379           24 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9380           24 :                                     res_op0 = _r1;
    9381              :                                   }
    9382           24 :                                   tree _r;
    9383           24 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10F, type, 1, res_op0);
    9384           24 :                                   if (!_r)
    9385            0 :                                     goto next_after_fail1443;
    9386           24 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 981, __FILE__, __LINE__, true);
    9387           24 :                                   return _r;
    9388              :                                 }
    9389            0 : next_after_fail1443:;
    9390              :                               }
    9391              :                           }
    9392              :                         }
    9393              :                       break;
    9394            0 :                     case CFN_BUILT_IN_POWF:
    9395            0 :                       if (call_expr_nargs (_p1) == 2)
    9396              :     {
    9397            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9398            0 :                           tree _q41 = CALL_EXPR_ARG (_p1, 1);
    9399            0 :                           switch (TREE_CODE (_q40))
    9400              :                             {
    9401            0 :                             case REAL_CST:
    9402            0 :                               {
    9403            0 :                                 {
    9404            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
    9405            0 :                                   if (flag_unsafe_math_optimizations
    9406              : )
    9407              :                                     {
    9408            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
    9409            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
    9410              : )
    9411              :                                         {
    9412            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1444;
    9413            0 :                                           {
    9414            0 :                                             tree res_op0;
    9415            0 :                                             {
    9416            0 :                                               tree _o1[2], _r1;
    9417            0 :                                               {
    9418            0 :                                                 tree _o2[2], _r2;
    9419            0 :                                                 {
    9420            0 :                                                   tree _o3[1], _r3;
    9421            0 :                                                   _o3[0] = captures[1];
    9422            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10F, TREE_TYPE (_o3[0]), 1, _o3[0]);
    9423            0 :                                                   if (!_r3)
    9424            0 :                                                     goto next_after_fail1444;
    9425            0 :                                                   _o2[0] = _r3;
    9426              :                                                 }
    9427            0 :                                                 _o2[1] = captures[2];
    9428            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    9429            0 :                                                 _o1[0] = _r2;
    9430              :                                               }
    9431            0 :                                               _o1[1] = captures[4];
    9432            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9433            0 :                                               res_op0 = _r1;
    9434              :                                             }
    9435            0 :                                             tree _r;
    9436            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10F, type, 1, res_op0);
    9437            0 :                                             if (!_r)
    9438            0 :                                               goto next_after_fail1444;
    9439            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 982, __FILE__, __LINE__, true);
    9440            0 :                                             return _r;
    9441              :                                           }
    9442            0 : next_after_fail1444:;
    9443              :                                         }
    9444              :                                     }
    9445              :                                 }
    9446            0 :                                 break;
    9447              :                               }
    9448              :                             default:;
    9449              :                             }
    9450              :                         }
    9451              :                       break;
    9452              :                     default:;
    9453              :                     }
    9454              :                   break;
    9455              :                 default:;
    9456              :                 }
    9457              :             }
    9458              :           break;
    9459           48 :         case CFN_BUILT_IN_EXP10L:
    9460           48 :           if (call_expr_nargs (_p0) == 1)
    9461              :     {
    9462           48 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9463           48 :               switch (TREE_CODE (_p1))
    9464              :                 {
    9465           24 :                 case CALL_EXPR:
    9466           24 :                   switch (get_call_combined_fn (_p1))
    9467              :                     {
    9468           24 :                     case CFN_BUILT_IN_EXP10L:
    9469           24 :                       if (call_expr_nargs (_p1) == 1)
    9470              :     {
    9471           24 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9472           24 :                           {
    9473           24 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    9474           24 :                             if (flag_unsafe_math_optimizations
    9475              : )
    9476              :                               {
    9477           24 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1445;
    9478           24 :                                 {
    9479           24 :                                   tree res_op0;
    9480           24 :                                   {
    9481           24 :                                     tree _o1[2], _r1;
    9482           24 :                                     _o1[0] = captures[1];
    9483           24 :                                     _o1[1] = captures[3];
    9484           24 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9485           24 :                                     res_op0 = _r1;
    9486              :                                   }
    9487           24 :                                   tree _r;
    9488           24 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10L, type, 1, res_op0);
    9489           24 :                                   if (!_r)
    9490            0 :                                     goto next_after_fail1445;
    9491           24 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 981, __FILE__, __LINE__, true);
    9492           24 :                                   return _r;
    9493              :                                 }
    9494            0 : next_after_fail1445:;
    9495              :                               }
    9496              :                           }
    9497              :                         }
    9498              :                       break;
    9499            0 :                     case CFN_BUILT_IN_POWL:
    9500            0 :                       if (call_expr_nargs (_p1) == 2)
    9501              :     {
    9502            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9503            0 :                           tree _q41 = CALL_EXPR_ARG (_p1, 1);
    9504            0 :                           switch (TREE_CODE (_q40))
    9505              :                             {
    9506            0 :                             case REAL_CST:
    9507            0 :                               {
    9508            0 :                                 {
    9509            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
    9510            0 :                                   if (flag_unsafe_math_optimizations
    9511              : )
    9512              :                                     {
    9513            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
    9514            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
    9515              : )
    9516              :                                         {
    9517            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1446;
    9518            0 :                                           {
    9519            0 :                                             tree res_op0;
    9520            0 :                                             {
    9521            0 :                                               tree _o1[2], _r1;
    9522            0 :                                               {
    9523            0 :                                                 tree _o2[2], _r2;
    9524            0 :                                                 {
    9525            0 :                                                   tree _o3[1], _r3;
    9526            0 :                                                   _o3[0] = captures[1];
    9527            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10L, TREE_TYPE (_o3[0]), 1, _o3[0]);
    9528            0 :                                                   if (!_r3)
    9529            0 :                                                     goto next_after_fail1446;
    9530            0 :                                                   _o2[0] = _r3;
    9531              :                                                 }
    9532            0 :                                                 _o2[1] = captures[2];
    9533            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    9534            0 :                                                 _o1[0] = _r2;
    9535              :                                               }
    9536            0 :                                               _o1[1] = captures[4];
    9537            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9538            0 :                                               res_op0 = _r1;
    9539              :                                             }
    9540            0 :                                             tree _r;
    9541            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10L, type, 1, res_op0);
    9542            0 :                                             if (!_r)
    9543            0 :                                               goto next_after_fail1446;
    9544            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 982, __FILE__, __LINE__, true);
    9545            0 :                                             return _r;
    9546              :                                           }
    9547            0 : next_after_fail1446:;
    9548              :                                         }
    9549              :                                     }
    9550              :                                 }
    9551            0 :                                 break;
    9552              :                               }
    9553              :                             default:;
    9554              :                             }
    9555              :                         }
    9556              :                       break;
    9557              :                     default:;
    9558              :                     }
    9559              :                   break;
    9560              :                 default:;
    9561              :                 }
    9562              :             }
    9563              :           break;
    9564           18 :         case CFN_BUILT_IN_CBRT:
    9565           18 :           if (call_expr_nargs (_p0) == 1)
    9566              :     {
    9567           18 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9568           18 :               switch (TREE_CODE (_p1))
    9569              :                 {
    9570           14 :                 case CALL_EXPR:
    9571           14 :                   switch (get_call_combined_fn (_p1))
    9572              :                     {
    9573           14 :                     case CFN_BUILT_IN_CBRT:
    9574           14 :                       if (call_expr_nargs (_p1) == 1)
    9575              :     {
    9576           14 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9577           14 :                           {
    9578           14 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    9579           14 :                             if (flag_unsafe_math_optimizations
    9580              : )
    9581              :                               {
    9582           12 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1447;
    9583           12 :                                 {
    9584           12 :                                   tree res_op0;
    9585           12 :                                   {
    9586           12 :                                     tree _o1[2], _r1;
    9587           12 :                                     _o1[0] = captures[1];
    9588           12 :                                     _o1[1] = captures[3];
    9589           12 :                                     _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9590           12 :                                     res_op0 = _r1;
    9591              :                                   }
    9592           12 :                                   tree _r;
    9593           12 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_CBRT, type, 1, res_op0);
    9594           12 :                                   if (!_r)
    9595            0 :                                     goto next_after_fail1447;
    9596           12 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 980, __FILE__, __LINE__, true);
    9597           12 :                                   return _r;
    9598              :                                 }
    9599            2 : next_after_fail1447:;
    9600              :                               }
    9601              :                           }
    9602              :                         }
    9603              :                       break;
    9604              :                     default:;
    9605              :                     }
    9606              :                   break;
    9607              :                 default:;
    9608              :                 }
    9609              :             }
    9610              :           break;
    9611           48 :         case CFN_BUILT_IN_EXP2:
    9612           48 :           if (call_expr_nargs (_p0) == 1)
    9613              :     {
    9614           48 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9615           48 :               switch (TREE_CODE (_p1))
    9616              :                 {
    9617           24 :                 case CALL_EXPR:
    9618           24 :                   switch (get_call_combined_fn (_p1))
    9619              :                     {
    9620            0 :                     case CFN_BUILT_IN_POW:
    9621            0 :                       if (call_expr_nargs (_p1) == 2)
    9622              :     {
    9623            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9624            0 :                           tree _q41 = CALL_EXPR_ARG (_p1, 1);
    9625            0 :                           switch (TREE_CODE (_q40))
    9626              :                             {
    9627            0 :                             case REAL_CST:
    9628            0 :                               {
    9629            0 :                                 {
    9630            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
    9631            0 :                                   if (flag_unsafe_math_optimizations
    9632              : )
    9633              :                                     {
    9634            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
    9635            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
    9636              : )
    9637              :                                         {
    9638            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1448;
    9639            0 :                                           {
    9640            0 :                                             tree res_op0;
    9641            0 :                                             {
    9642            0 :                                               tree _o1[2], _r1;
    9643            0 :                                               {
    9644            0 :                                                 tree _o2[2], _r2;
    9645            0 :                                                 {
    9646            0 :                                                   tree _o3[1], _r3;
    9647            0 :                                                   _o3[0] = captures[1];
    9648            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG2, TREE_TYPE (_o3[0]), 1, _o3[0]);
    9649            0 :                                                   if (!_r3)
    9650            0 :                                                     goto next_after_fail1448;
    9651            0 :                                                   _o2[0] = _r3;
    9652              :                                                 }
    9653            0 :                                                 _o2[1] = captures[2];
    9654            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    9655            0 :                                                 _o1[0] = _r2;
    9656              :                                               }
    9657            0 :                                               _o1[1] = captures[4];
    9658            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9659            0 :                                               res_op0 = _r1;
    9660              :                                             }
    9661            0 :                                             tree _r;
    9662            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2, type, 1, res_op0);
    9663            0 :                                             if (!_r)
    9664            0 :                                               goto next_after_fail1448;
    9665            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 982, __FILE__, __LINE__, true);
    9666            0 :                                             return _r;
    9667              :                                           }
    9668            0 : next_after_fail1448:;
    9669              :                                         }
    9670              :                                     }
    9671              :                                 }
    9672            0 :                                 break;
    9673              :                               }
    9674              :                             default:;
    9675              :                             }
    9676              :                         }
    9677              :                       break;
    9678           24 :                     case CFN_BUILT_IN_EXP2:
    9679           24 :                       if (call_expr_nargs (_p1) == 1)
    9680              :     {
    9681           24 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9682           24 :                           {
    9683           24 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    9684           24 :                             if (flag_unsafe_math_optimizations
    9685              : )
    9686              :                               {
    9687           24 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1449;
    9688           24 :                                 {
    9689           24 :                                   tree res_op0;
    9690           24 :                                   {
    9691           24 :                                     tree _o1[2], _r1;
    9692           24 :                                     _o1[0] = captures[1];
    9693           24 :                                     _o1[1] = captures[3];
    9694           24 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9695           24 :                                     res_op0 = _r1;
    9696              :                                   }
    9697           24 :                                   tree _r;
    9698           24 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2, type, 1, res_op0);
    9699           24 :                                   if (!_r)
    9700            0 :                                     goto next_after_fail1449;
    9701           24 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 981, __FILE__, __LINE__, true);
    9702           24 :                                   return _r;
    9703              :                                 }
    9704            0 : next_after_fail1449:;
    9705              :                               }
    9706              :                           }
    9707              :                         }
    9708              :                       break;
    9709              :                     default:;
    9710              :                     }
    9711              :                   break;
    9712              :                 default:;
    9713              :                 }
    9714              :             }
    9715              :           break;
    9716           66 :         case CFN_BUILT_IN_EXPF:
    9717           66 :           if (call_expr_nargs (_p0) == 1)
    9718              :     {
    9719           66 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9720           66 :               switch (TREE_CODE (_p1))
    9721              :                 {
    9722           36 :                 case CALL_EXPR:
    9723           36 :                   switch (get_call_combined_fn (_p1))
    9724              :                     {
    9725           29 :                     case CFN_BUILT_IN_EXPF:
    9726           29 :                       if (call_expr_nargs (_p1) == 1)
    9727              :     {
    9728           29 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9729           29 :                           {
    9730           29 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    9731           29 :                             if (flag_unsafe_math_optimizations
    9732              : )
    9733              :                               {
    9734           25 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1450;
    9735           25 :                                 {
    9736           25 :                                   tree res_op0;
    9737           25 :                                   {
    9738           25 :                                     tree _o1[2], _r1;
    9739           25 :                                     _o1[0] = captures[1];
    9740           25 :                                     _o1[1] = captures[3];
    9741           25 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9742           25 :                                     res_op0 = _r1;
    9743              :                                   }
    9744           25 :                                   tree _r;
    9745           25 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXPF, type, 1, res_op0);
    9746           25 :                                   if (!_r)
    9747            0 :                                     goto next_after_fail1450;
    9748           25 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 981, __FILE__, __LINE__, true);
    9749           25 :                                   return _r;
    9750              :                                 }
    9751            4 : next_after_fail1450:;
    9752              :                               }
    9753              :                           }
    9754              :                         }
    9755              :                       break;
    9756            0 :                     case CFN_BUILT_IN_POWF:
    9757            0 :                       if (call_expr_nargs (_p1) == 2)
    9758              :     {
    9759            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9760            0 :                           tree _q41 = CALL_EXPR_ARG (_p1, 1);
    9761            0 :                           switch (TREE_CODE (_q40))
    9762              :                             {
    9763            0 :                             case REAL_CST:
    9764            0 :                               {
    9765            0 :                                 {
    9766            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
    9767            0 :                                   if (flag_unsafe_math_optimizations
    9768              : )
    9769              :                                     {
    9770            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
    9771            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
    9772              : )
    9773              :                                         {
    9774            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1451;
    9775            0 :                                           {
    9776            0 :                                             tree res_op0;
    9777            0 :                                             {
    9778            0 :                                               tree _o1[2], _r1;
    9779            0 :                                               {
    9780            0 :                                                 tree _o2[2], _r2;
    9781            0 :                                                 {
    9782            0 :                                                   tree _o3[1], _r3;
    9783            0 :                                                   _o3[0] = captures[1];
    9784            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOGF, TREE_TYPE (_o3[0]), 1, _o3[0]);
    9785            0 :                                                   if (!_r3)
    9786            0 :                                                     goto next_after_fail1451;
    9787            0 :                                                   _o2[0] = _r3;
    9788              :                                                 }
    9789            0 :                                                 _o2[1] = captures[2];
    9790            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    9791            0 :                                                 _o1[0] = _r2;
    9792              :                                               }
    9793            0 :                                               _o1[1] = captures[4];
    9794            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9795            0 :                                               res_op0 = _r1;
    9796              :                                             }
    9797            0 :                                             tree _r;
    9798            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXPF, type, 1, res_op0);
    9799            0 :                                             if (!_r)
    9800            0 :                                               goto next_after_fail1451;
    9801            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 982, __FILE__, __LINE__, true);
    9802            0 :                                             return _r;
    9803              :                                           }
    9804            0 : next_after_fail1451:;
    9805              :                                         }
    9806              :                                     }
    9807              :                                 }
    9808            0 :                                 break;
    9809              :                               }
    9810              :                             default:;
    9811              :                             }
    9812              :                         }
    9813              :                       break;
    9814              :                     default:;
    9815              :                     }
    9816              :                   break;
    9817              :                 default:;
    9818              :                 }
    9819              :             }
    9820              :           break;
    9821           59 :         case CFN_BUILT_IN_EXPL:
    9822           59 :           if (call_expr_nargs (_p0) == 1)
    9823              :     {
    9824           59 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9825           59 :               switch (TREE_CODE (_p1))
    9826              :                 {
    9827           29 :                 case CALL_EXPR:
    9828           29 :                   switch (get_call_combined_fn (_p1))
    9829              :                     {
    9830           29 :                     case CFN_BUILT_IN_EXPL:
    9831           29 :                       if (call_expr_nargs (_p1) == 1)
    9832              :     {
    9833           29 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9834           29 :                           {
    9835           29 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    9836           29 :                             if (flag_unsafe_math_optimizations
    9837              : )
    9838              :                               {
    9839           25 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1452;
    9840           25 :                                 {
    9841           25 :                                   tree res_op0;
    9842           25 :                                   {
    9843           25 :                                     tree _o1[2], _r1;
    9844           25 :                                     _o1[0] = captures[1];
    9845           25 :                                     _o1[1] = captures[3];
    9846           25 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9847           25 :                                     res_op0 = _r1;
    9848              :                                   }
    9849           25 :                                   tree _r;
    9850           25 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXPL, type, 1, res_op0);
    9851           25 :                                   if (!_r)
    9852            0 :                                     goto next_after_fail1452;
    9853           25 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 981, __FILE__, __LINE__, true);
    9854           25 :                                   return _r;
    9855              :                                 }
    9856            4 : next_after_fail1452:;
    9857              :                               }
    9858              :                           }
    9859              :                         }
    9860              :                       break;
    9861            0 :                     case CFN_BUILT_IN_POWL:
    9862            0 :                       if (call_expr_nargs (_p1) == 2)
    9863              :     {
    9864            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9865            0 :                           tree _q41 = CALL_EXPR_ARG (_p1, 1);
    9866            0 :                           switch (TREE_CODE (_q40))
    9867              :                             {
    9868            0 :                             case REAL_CST:
    9869            0 :                               {
    9870            0 :                                 {
    9871            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
    9872            0 :                                   if (flag_unsafe_math_optimizations
    9873              : )
    9874              :                                     {
    9875            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
    9876            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
    9877              : )
    9878              :                                         {
    9879            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1453;
    9880            0 :                                           {
    9881            0 :                                             tree res_op0;
    9882            0 :                                             {
    9883            0 :                                               tree _o1[2], _r1;
    9884            0 :                                               {
    9885            0 :                                                 tree _o2[2], _r2;
    9886            0 :                                                 {
    9887            0 :                                                   tree _o3[1], _r3;
    9888            0 :                                                   _o3[0] = captures[1];
    9889            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOGL, TREE_TYPE (_o3[0]), 1, _o3[0]);
    9890            0 :                                                   if (!_r3)
    9891            0 :                                                     goto next_after_fail1453;
    9892            0 :                                                   _o2[0] = _r3;
    9893              :                                                 }
    9894            0 :                                                 _o2[1] = captures[2];
    9895            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    9896            0 :                                                 _o1[0] = _r2;
    9897              :                                               }
    9898            0 :                                               _o1[1] = captures[4];
    9899            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9900            0 :                                               res_op0 = _r1;
    9901              :                                             }
    9902            0 :                                             tree _r;
    9903            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXPL, type, 1, res_op0);
    9904            0 :                                             if (!_r)
    9905            0 :                                               goto next_after_fail1453;
    9906            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 982, __FILE__, __LINE__, true);
    9907            0 :                                             return _r;
    9908              :                                           }
    9909            0 : next_after_fail1453:;
    9910              :                                         }
    9911              :                                     }
    9912              :                                 }
    9913            0 :                                 break;
    9914              :                               }
    9915              :                             default:;
    9916              :                             }
    9917              :                         }
    9918              :                       break;
    9919              :                     default:;
    9920              :                     }
    9921              :                   break;
    9922              :                 default:;
    9923              :                 }
    9924              :             }
    9925              :           break;
    9926           19 :         case CFN_BUILT_IN_POWF:
    9927           19 :           if (call_expr_nargs (_p0) == 2)
    9928              :     {
    9929           19 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9930           19 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    9931           19 :               switch (TREE_CODE (_q20))
    9932              :                 {
    9933            0 :                 case REAL_CST:
    9934            0 :                   {
    9935            0 :                     switch (TREE_CODE (_p1))
    9936              :                       {
    9937            0 :                       case CALL_EXPR:
    9938            0 :                         switch (get_call_combined_fn (_p1))
    9939              :                           {
    9940            0 :                           case CFN_BUILT_IN_EXP10F:
    9941            0 :                             if (call_expr_nargs (_p1) == 1)
    9942              :     {
    9943            0 :                                 tree _q50 = CALL_EXPR_ARG (_p1, 0);
    9944            0 :                                 {
    9945            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
    9946            0 :                                   if (flag_unsafe_math_optimizations
    9947              : )
    9948              :                                     {
    9949            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
    9950            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
    9951              : )
    9952              :                                         {
    9953            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1454;
    9954            0 :                                           {
    9955            0 :                                             tree res_op0;
    9956            0 :                                             {
    9957            0 :                                               tree _o1[2], _r1;
    9958            0 :                                               {
    9959            0 :                                                 tree _o2[2], _r2;
    9960            0 :                                                 {
    9961            0 :                                                   tree _o3[1], _r3;
    9962            0 :                                                   _o3[0] = captures[1];
    9963            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10F, TREE_TYPE (_o3[0]), 1, _o3[0]);
    9964            0 :                                                   if (!_r3)
    9965            0 :                                                     goto next_after_fail1454;
    9966            0 :                                                   _o2[0] = _r3;
    9967              :                                                 }
    9968            0 :                                                 _o2[1] = captures[2];
    9969            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    9970            0 :                                                 _o1[0] = _r2;
    9971              :                                               }
    9972            0 :                                               _o1[1] = captures[4];
    9973            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9974            0 :                                               res_op0 = _r1;
    9975              :                                             }
    9976            0 :                                             tree _r;
    9977            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10F, type, 1, res_op0);
    9978            0 :                                             if (!_r)
    9979            0 :                                               goto next_after_fail1454;
    9980            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 982, __FILE__, __LINE__, true);
    9981            0 :                                             return _r;
    9982              :                                           }
    9983            0 : next_after_fail1454:;
    9984              :                                         }
    9985              :                                     }
    9986              :                                 }
    9987              :                               }
    9988              :                             break;
    9989            0 :                           case CFN_BUILT_IN_EXPF:
    9990            0 :                             if (call_expr_nargs (_p1) == 1)
    9991              :     {
    9992            0 :                                 tree _q50 = CALL_EXPR_ARG (_p1, 0);
    9993            0 :                                 {
    9994            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
    9995            0 :                                   if (flag_unsafe_math_optimizations
    9996              : )
    9997              :                                     {
    9998            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
    9999            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   10000              : )
   10001              :                                         {
   10002            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1455;
   10003            0 :                                           {
   10004            0 :                                             tree res_op0;
   10005            0 :                                             {
   10006            0 :                                               tree _o1[2], _r1;
   10007            0 :                                               {
   10008            0 :                                                 tree _o2[2], _r2;
   10009            0 :                                                 {
   10010            0 :                                                   tree _o3[1], _r3;
   10011            0 :                                                   _o3[0] = captures[1];
   10012            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOGF, TREE_TYPE (_o3[0]), 1, _o3[0]);
   10013            0 :                                                   if (!_r3)
   10014            0 :                                                     goto next_after_fail1455;
   10015            0 :                                                   _o2[0] = _r3;
   10016              :                                                 }
   10017            0 :                                                 _o2[1] = captures[2];
   10018            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   10019            0 :                                                 _o1[0] = _r2;
   10020              :                                               }
   10021            0 :                                               _o1[1] = captures[4];
   10022            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10023            0 :                                               res_op0 = _r1;
   10024              :                                             }
   10025            0 :                                             tree _r;
   10026            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXPF, type, 1, res_op0);
   10027            0 :                                             if (!_r)
   10028            0 :                                               goto next_after_fail1455;
   10029            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 982, __FILE__, __LINE__, true);
   10030            0 :                                             return _r;
   10031              :                                           }
   10032            0 : next_after_fail1455:;
   10033              :                                         }
   10034              :                                     }
   10035              :                                 }
   10036              :                               }
   10037              :                             break;
   10038            0 :                           case CFN_BUILT_IN_POW10F:
   10039            0 :                             if (call_expr_nargs (_p1) == 1)
   10040              :     {
   10041            0 :                                 tree _q50 = CALL_EXPR_ARG (_p1, 0);
   10042            0 :                                 {
   10043            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   10044            0 :                                   if (flag_unsafe_math_optimizations
   10045              : )
   10046              :                                     {
   10047            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   10048            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   10049              : )
   10050              :                                         {
   10051            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1456;
   10052            0 :                                           {
   10053            0 :                                             tree res_op0;
   10054            0 :                                             {
   10055            0 :                                               tree _o1[2], _r1;
   10056            0 :                                               {
   10057            0 :                                                 tree _o2[2], _r2;
   10058            0 :                                                 {
   10059            0 :                                                   tree _o3[1], _r3;
   10060            0 :                                                   _o3[0] = captures[1];
   10061            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10F, TREE_TYPE (_o3[0]), 1, _o3[0]);
   10062            0 :                                                   if (!_r3)
   10063            0 :                                                     goto next_after_fail1456;
   10064            0 :                                                   _o2[0] = _r3;
   10065              :                                                 }
   10066            0 :                                                 _o2[1] = captures[2];
   10067            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   10068            0 :                                                 _o1[0] = _r2;
   10069              :                                               }
   10070            0 :                                               _o1[1] = captures[4];
   10071            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10072            0 :                                               res_op0 = _r1;
   10073              :                                             }
   10074            0 :                                             tree _r;
   10075            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10F, type, 1, res_op0);
   10076            0 :                                             if (!_r)
   10077            0 :                                               goto next_after_fail1456;
   10078            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 982, __FILE__, __LINE__, true);
   10079            0 :                                             return _r;
   10080              :                                           }
   10081            0 : next_after_fail1456:;
   10082              :                                         }
   10083              :                                     }
   10084              :                                 }
   10085              :                               }
   10086              :                             break;
   10087            0 :                           case CFN_BUILT_IN_EXP2F:
   10088            0 :                             if (call_expr_nargs (_p1) == 1)
   10089              :     {
   10090            0 :                                 tree _q50 = CALL_EXPR_ARG (_p1, 0);
   10091            0 :                                 {
   10092            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   10093            0 :                                   if (flag_unsafe_math_optimizations
   10094              : )
   10095              :                                     {
   10096            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   10097            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   10098              : )
   10099              :                                         {
   10100            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1457;
   10101            0 :                                           {
   10102            0 :                                             tree res_op0;
   10103            0 :                                             {
   10104            0 :                                               tree _o1[2], _r1;
   10105            0 :                                               {
   10106            0 :                                                 tree _o2[2], _r2;
   10107            0 :                                                 {
   10108            0 :                                                   tree _o3[1], _r3;
   10109            0 :                                                   _o3[0] = captures[1];
   10110            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG2F, TREE_TYPE (_o3[0]), 1, _o3[0]);
   10111            0 :                                                   if (!_r3)
   10112            0 :                                                     goto next_after_fail1457;
   10113            0 :                                                   _o2[0] = _r3;
   10114              :                                                 }
   10115            0 :                                                 _o2[1] = captures[2];
   10116            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   10117            0 :                                                 _o1[0] = _r2;
   10118              :                                               }
   10119            0 :                                               _o1[1] = captures[4];
   10120            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10121            0 :                                               res_op0 = _r1;
   10122              :                                             }
   10123            0 :                                             tree _r;
   10124            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2F, type, 1, res_op0);
   10125            0 :                                             if (!_r)
   10126            0 :                                               goto next_after_fail1457;
   10127            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 982, __FILE__, __LINE__, true);
   10128            0 :                                             return _r;
   10129              :                                           }
   10130            0 : next_after_fail1457:;
   10131              :                                         }
   10132              :                                     }
   10133              :                                 }
   10134              :                               }
   10135              :                             break;
   10136              :                           default:;
   10137              :                           }
   10138              :                         break;
   10139              :                       default:;
   10140              :                       }
   10141              :                     break;
   10142              :                   }
   10143           19 :                 default:;
   10144              :                 }
   10145           19 :               switch (TREE_CODE (_q21))
   10146              :                 {
   10147            5 :                 case REAL_CST:
   10148            5 :                   {
   10149            5 :                     if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
   10150              :                       {
   10151            0 :                         {
   10152            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
   10153            0 :                           tree res = generic_simplify_200 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWF);
   10154            0 :                           if (res) return res;
   10155              :                         }
   10156              :                       }
   10157              :                     break;
   10158              :                   }
   10159              :                 default:;
   10160              :                 }
   10161              :             }
   10162              :           break;
   10163           12 :         case CFN_BUILT_IN_POWL:
   10164           12 :           if (call_expr_nargs (_p0) == 2)
   10165              :     {
   10166           12 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10167           12 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   10168           12 :               switch (TREE_CODE (_q20))
   10169              :                 {
   10170            0 :                 case REAL_CST:
   10171            0 :                   {
   10172            0 :                     switch (TREE_CODE (_p1))
   10173              :                       {
   10174            0 :                       case CALL_EXPR:
   10175            0 :                         switch (get_call_combined_fn (_p1))
   10176              :                           {
   10177            0 :                           case CFN_BUILT_IN_EXP10L:
   10178            0 :                             if (call_expr_nargs (_p1) == 1)
   10179              :     {
   10180            0 :                                 tree _q50 = CALL_EXPR_ARG (_p1, 0);
   10181            0 :                                 {
   10182            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   10183            0 :                                   if (flag_unsafe_math_optimizations
   10184              : )
   10185              :                                     {
   10186            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   10187            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   10188              : )
   10189              :                                         {
   10190            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1458;
   10191            0 :                                           {
   10192            0 :                                             tree res_op0;
   10193            0 :                                             {
   10194            0 :                                               tree _o1[2], _r1;
   10195            0 :                                               {
   10196            0 :                                                 tree _o2[2], _r2;
   10197            0 :                                                 {
   10198            0 :                                                   tree _o3[1], _r3;
   10199            0 :                                                   _o3[0] = captures[1];
   10200            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10L, TREE_TYPE (_o3[0]), 1, _o3[0]);
   10201            0 :                                                   if (!_r3)
   10202            0 :                                                     goto next_after_fail1458;
   10203            0 :                                                   _o2[0] = _r3;
   10204              :                                                 }
   10205            0 :                                                 _o2[1] = captures[2];
   10206            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   10207            0 :                                                 _o1[0] = _r2;
   10208              :                                               }
   10209            0 :                                               _o1[1] = captures[4];
   10210            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10211            0 :                                               res_op0 = _r1;
   10212              :                                             }
   10213            0 :                                             tree _r;
   10214            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10L, type, 1, res_op0);
   10215            0 :                                             if (!_r)
   10216            0 :                                               goto next_after_fail1458;
   10217            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 982, __FILE__, __LINE__, true);
   10218            0 :                                             return _r;
   10219              :                                           }
   10220            0 : next_after_fail1458:;
   10221              :                                         }
   10222              :                                     }
   10223              :                                 }
   10224              :                               }
   10225              :                             break;
   10226            0 :                           case CFN_BUILT_IN_EXPL:
   10227            0 :                             if (call_expr_nargs (_p1) == 1)
   10228              :     {
   10229            0 :                                 tree _q50 = CALL_EXPR_ARG (_p1, 0);
   10230            0 :                                 {
   10231            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   10232            0 :                                   if (flag_unsafe_math_optimizations
   10233              : )
   10234              :                                     {
   10235            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   10236            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   10237              : )
   10238              :                                         {
   10239            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1459;
   10240            0 :                                           {
   10241            0 :                                             tree res_op0;
   10242            0 :                                             {
   10243            0 :                                               tree _o1[2], _r1;
   10244            0 :                                               {
   10245            0 :                                                 tree _o2[2], _r2;
   10246            0 :                                                 {
   10247            0 :                                                   tree _o3[1], _r3;
   10248            0 :                                                   _o3[0] = captures[1];
   10249            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOGL, TREE_TYPE (_o3[0]), 1, _o3[0]);
   10250            0 :                                                   if (!_r3)
   10251            0 :                                                     goto next_after_fail1459;
   10252            0 :                                                   _o2[0] = _r3;
   10253              :                                                 }
   10254            0 :                                                 _o2[1] = captures[2];
   10255            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   10256            0 :                                                 _o1[0] = _r2;
   10257              :                                               }
   10258            0 :                                               _o1[1] = captures[4];
   10259            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10260            0 :                                               res_op0 = _r1;
   10261              :                                             }
   10262            0 :                                             tree _r;
   10263            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXPL, type, 1, res_op0);
   10264            0 :                                             if (!_r)
   10265            0 :                                               goto next_after_fail1459;
   10266            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 982, __FILE__, __LINE__, true);
   10267            0 :                                             return _r;
   10268              :                                           }
   10269            0 : next_after_fail1459:;
   10270              :                                         }
   10271              :                                     }
   10272              :                                 }
   10273              :                               }
   10274              :                             break;
   10275            0 :                           case CFN_BUILT_IN_POW10L:
   10276            0 :                             if (call_expr_nargs (_p1) == 1)
   10277              :     {
   10278            0 :                                 tree _q50 = CALL_EXPR_ARG (_p1, 0);
   10279            0 :                                 {
   10280            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   10281            0 :                                   if (flag_unsafe_math_optimizations
   10282              : )
   10283              :                                     {
   10284            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   10285            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   10286              : )
   10287              :                                         {
   10288            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1460;
   10289            0 :                                           {
   10290            0 :                                             tree res_op0;
   10291            0 :                                             {
   10292            0 :                                               tree _o1[2], _r1;
   10293            0 :                                               {
   10294            0 :                                                 tree _o2[2], _r2;
   10295            0 :                                                 {
   10296            0 :                                                   tree _o3[1], _r3;
   10297            0 :                                                   _o3[0] = captures[1];
   10298            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10L, TREE_TYPE (_o3[0]), 1, _o3[0]);
   10299            0 :                                                   if (!_r3)
   10300            0 :                                                     goto next_after_fail1460;
   10301            0 :                                                   _o2[0] = _r3;
   10302              :                                                 }
   10303            0 :                                                 _o2[1] = captures[2];
   10304            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   10305            0 :                                                 _o1[0] = _r2;
   10306              :                                               }
   10307            0 :                                               _o1[1] = captures[4];
   10308            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10309            0 :                                               res_op0 = _r1;
   10310              :                                             }
   10311            0 :                                             tree _r;
   10312            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10L, type, 1, res_op0);
   10313            0 :                                             if (!_r)
   10314            0 :                                               goto next_after_fail1460;
   10315            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 982, __FILE__, __LINE__, true);
   10316            0 :                                             return _r;
   10317              :                                           }
   10318            0 : next_after_fail1460:;
   10319              :                                         }
   10320              :                                     }
   10321              :                                 }
   10322              :                               }
   10323              :                             break;
   10324            0 :                           case CFN_BUILT_IN_EXP2L:
   10325            0 :                             if (call_expr_nargs (_p1) == 1)
   10326              :     {
   10327            0 :                                 tree _q50 = CALL_EXPR_ARG (_p1, 0);
   10328            0 :                                 {
   10329            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   10330            0 :                                   if (flag_unsafe_math_optimizations
   10331              : )
   10332              :                                     {
   10333            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   10334            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   10335              : )
   10336              :                                         {
   10337            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1461;
   10338            0 :                                           {
   10339            0 :                                             tree res_op0;
   10340            0 :                                             {
   10341            0 :                                               tree _o1[2], _r1;
   10342            0 :                                               {
   10343            0 :                                                 tree _o2[2], _r2;
   10344            0 :                                                 {
   10345            0 :                                                   tree _o3[1], _r3;
   10346            0 :                                                   _o3[0] = captures[1];
   10347            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG2L, TREE_TYPE (_o3[0]), 1, _o3[0]);
   10348            0 :                                                   if (!_r3)
   10349            0 :                                                     goto next_after_fail1461;
   10350            0 :                                                   _o2[0] = _r3;
   10351              :                                                 }
   10352            0 :                                                 _o2[1] = captures[2];
   10353            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   10354            0 :                                                 _o1[0] = _r2;
   10355              :                                               }
   10356            0 :                                               _o1[1] = captures[4];
   10357            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10358            0 :                                               res_op0 = _r1;
   10359              :                                             }
   10360            0 :                                             tree _r;
   10361            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2L, type, 1, res_op0);
   10362            0 :                                             if (!_r)
   10363            0 :                                               goto next_after_fail1461;
   10364            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 982, __FILE__, __LINE__, true);
   10365            0 :                                             return _r;
   10366              :                                           }
   10367            0 : next_after_fail1461:;
   10368              :                                         }
   10369              :                                     }
   10370              :                                 }
   10371              :                               }
   10372              :                             break;
   10373              :                           default:;
   10374              :                           }
   10375              :                         break;
   10376              :                       default:;
   10377              :                       }
   10378              :                     break;
   10379              :                   }
   10380           12 :                 default:;
   10381              :                 }
   10382           12 :               switch (TREE_CODE (_q21))
   10383              :                 {
   10384            0 :                 case REAL_CST:
   10385            0 :                   {
   10386            0 :                     if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
   10387              :                       {
   10388            0 :                         {
   10389            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
   10390            0 :                           tree res = generic_simplify_200 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWL);
   10391            0 :                           if (res) return res;
   10392              :                         }
   10393              :                       }
   10394              :                     break;
   10395              :                   }
   10396              :                 default:;
   10397              :                 }
   10398              :             }
   10399              :           break;
   10400        19000 :         case CFN_BUILT_IN_SQRT:
   10401        19000 :           if (call_expr_nargs (_p0) == 1)
   10402              :     {
   10403        19000 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10404        19000 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
   10405              :                 {
   10406            2 :                   {
   10407            2 :                     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
   10408            2 :                     tree res = generic_simplify_199 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT);
   10409            2 :                     if (res) return res;
   10410              :                   }
   10411              :                 }
   10412        18998 :               switch (TREE_CODE (_p1))
   10413              :                 {
   10414          100 :                 case CALL_EXPR:
   10415          100 :                   switch (get_call_combined_fn (_p1))
   10416              :                     {
   10417           37 :                     case CFN_BUILT_IN_SQRT:
   10418           37 :                       if (call_expr_nargs (_p1) == 1)
   10419              :     {
   10420           37 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   10421           37 :                           {
   10422           37 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   10423           37 :                             if (flag_unsafe_math_optimizations
   10424              : )
   10425              :                               {
   10426           15 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1462;
   10427           15 :                                 {
   10428           15 :                                   tree res_op0;
   10429           15 :                                   {
   10430           15 :                                     tree _o1[2], _r1;
   10431           15 :                                     _o1[0] = captures[1];
   10432           15 :                                     _o1[1] = captures[3];
   10433           15 :                                     _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10434           15 :                                     res_op0 = _r1;
   10435              :                                   }
   10436           15 :                                   tree _r;
   10437           15 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SQRT, type, 1, res_op0);
   10438           15 :                                   if (!_r)
   10439            0 :                                     goto next_after_fail1462;
   10440           15 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 980, __FILE__, __LINE__, true);
   10441           15 :                                   return _r;
   10442              :                                 }
   10443           22 : next_after_fail1462:;
   10444              :                               }
   10445              :                           }
   10446              :                         }
   10447              :                       break;
   10448              :                     default:;
   10449              :                     }
   10450              :                   break;
   10451              :                 default:;
   10452              :                 }
   10453              :             }
   10454              :           break;
   10455            5 :         case CFN_BUILT_IN_LDEXPF:
   10456            5 :           if (call_expr_nargs (_p0) == 2)
   10457              :     {
   10458            5 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10459            5 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   10460            5 :               switch (TREE_CODE (_p1))
   10461              :                 {
   10462            2 :                 case REAL_CST:
   10463            2 :                   {
   10464            2 :                     {
   10465            2 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q21 };
   10466            2 :                       tree res = generic_simplify_201 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LDEXPF);
   10467            2 :                       if (res) return res;
   10468              :                     }
   10469            1 :                     break;
   10470              :                   }
   10471            4 :                 default:;
   10472              :                 }
   10473            4 :               switch (TREE_CODE (_q20))
   10474              :                 {
   10475            3 :                 case REAL_CST:
   10476            3 :                   {
   10477            3 :                     {
   10478            3 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q21 };
   10479            3 :                       tree res = generic_simplify_202 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LDEXPF);
   10480            3 :                       if (res) return res;
   10481              :                     }
   10482            0 :                     break;
   10483              :                   }
   10484              :                 default:;
   10485              :                 }
   10486              :             }
   10487              :           break;
   10488            5 :         case CFN_BUILT_IN_LDEXPL:
   10489            5 :           if (call_expr_nargs (_p0) == 2)
   10490              :     {
   10491            5 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10492            5 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   10493            5 :               switch (TREE_CODE (_p1))
   10494              :                 {
   10495            2 :                 case REAL_CST:
   10496            2 :                   {
   10497            2 :                     {
   10498            2 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q21 };
   10499            2 :                       tree res = generic_simplify_201 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LDEXPL);
   10500            2 :                       if (res) return res;
   10501              :                     }
   10502            1 :                     break;
   10503              :                   }
   10504            4 :                 default:;
   10505              :                 }
   10506            4 :               switch (TREE_CODE (_q20))
   10507              :                 {
   10508            3 :                 case REAL_CST:
   10509            3 :                   {
   10510            3 :                     {
   10511            3 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q21 };
   10512            3 :                       tree res = generic_simplify_202 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LDEXPL);
   10513            3 :                       if (res) return res;
   10514              :                     }
   10515            0 :                     break;
   10516              :                   }
   10517              :                 default:;
   10518              :                 }
   10519              :             }
   10520              :           break;
   10521            4 :         case CFN_BUILT_IN_SQRTF128:
   10522            4 :           if (call_expr_nargs (_p0) == 1)
   10523              :     {
   10524            4 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10525            4 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
   10526              :                 {
   10527            0 :                   {
   10528            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
   10529            0 :                     tree res = generic_simplify_199 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF128);
   10530            0 :                     if (res) return res;
   10531              :                   }
   10532              :                 }
   10533              :             }
   10534              :           break;
   10535            0 :         case CFN_BUILT_IN_SQRTF32X:
   10536            0 :           if (call_expr_nargs (_p0) == 1)
   10537              :     {
   10538            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10539            0 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
   10540              :                 {
   10541            0 :                   {
   10542            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
   10543            0 :                     tree res = generic_simplify_199 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF32X);
   10544            0 :                     if (res) return res;
   10545              :                   }
   10546              :                 }
   10547              :             }
   10548              :           break;
   10549            0 :         case CFN_BUILT_IN_SQRTF64X:
   10550            0 :           if (call_expr_nargs (_p0) == 1)
   10551              :     {
   10552            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10553            0 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
   10554              :                 {
   10555            0 :                   {
   10556            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
   10557            0 :                     tree res = generic_simplify_199 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF64X);
   10558            0 :                     if (res) return res;
   10559              :                   }
   10560              :                 }
   10561              :             }
   10562              :           break;
   10563            0 :         case CFN_BUILT_IN_SQRTF16:
   10564            0 :           if (call_expr_nargs (_p0) == 1)
   10565              :     {
   10566            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10567            0 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
   10568              :                 {
   10569            0 :                   {
   10570            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
   10571            0 :                     tree res = generic_simplify_199 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF16);
   10572            0 :                     if (res) return res;
   10573              :                   }
   10574              :                 }
   10575              :             }
   10576              :           break;
   10577            0 :         case CFN_BUILT_IN_SQRTF32:
   10578            0 :           if (call_expr_nargs (_p0) == 1)
   10579              :     {
   10580            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10581            0 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
   10582              :                 {
   10583            0 :                   {
   10584            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
   10585            0 :                     tree res = generic_simplify_199 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF32);
   10586            0 :                     if (res) return res;
   10587              :                   }
   10588              :                 }
   10589              :             }
   10590              :           break;
   10591            0 :         case CFN_BUILT_IN_SQRTF64:
   10592            0 :           if (call_expr_nargs (_p0) == 1)
   10593              :     {
   10594            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10595            0 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
   10596              :                 {
   10597            0 :                   {
   10598            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
   10599            0 :                     tree res = generic_simplify_199 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF64);
   10600            0 :                     if (res) return res;
   10601              :                   }
   10602              :                 }
   10603              :             }
   10604              :           break;
   10605            0 :         case CFN_EXP:
   10606            0 :           if (call_expr_nargs (_p0) == 1)
   10607              :     {
   10608            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10609            0 :               switch (TREE_CODE (_p1))
   10610              :                 {
   10611            0 :                 case CALL_EXPR:
   10612            0 :                   switch (get_call_combined_fn (_p1))
   10613              :                     {
   10614            0 :                     case CFN_EXP:
   10615            0 :                       if (call_expr_nargs (_p1) == 1)
   10616              :     {
   10617            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   10618            0 :                           {
   10619            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   10620            0 :                             if (flag_unsafe_math_optimizations
   10621              : )
   10622              :                               {
   10623            0 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1463;
   10624            0 :                                 {
   10625            0 :                                   tree res_op0;
   10626            0 :                                   {
   10627            0 :                                     tree _o1[2], _r1;
   10628            0 :                                     _o1[0] = captures[1];
   10629            0 :                                     _o1[1] = captures[3];
   10630            0 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10631            0 :                                     res_op0 = _r1;
   10632              :                                   }
   10633            0 :                                   tree _r;
   10634            0 :                                   _r = maybe_build_call_expr_loc (loc, CFN_EXP, type, 1, res_op0);
   10635            0 :                                   if (!_r)
   10636            0 :                                     goto next_after_fail1463;
   10637            0 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 981, __FILE__, __LINE__, true);
   10638            0 :                                   return _r;
   10639              :                                 }
   10640            0 : next_after_fail1463:;
   10641              :                               }
   10642              :                           }
   10643              :                         }
   10644              :                       break;
   10645            0 :                     case CFN_POW:
   10646            0 :                       if (call_expr_nargs (_p1) == 2)
   10647              :     {
   10648            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   10649            0 :                           tree _q41 = CALL_EXPR_ARG (_p1, 1);
   10650            0 :                           switch (TREE_CODE (_q40))
   10651              :                             {
   10652            0 :                             case REAL_CST:
   10653            0 :                               {
   10654            0 :                                 {
   10655            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
   10656            0 :                                   if (flag_unsafe_math_optimizations
   10657              : )
   10658              :                                     {
   10659            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   10660            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   10661              : )
   10662              :                                         {
   10663            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1464;
   10664            0 :                                           {
   10665            0 :                                             tree res_op0;
   10666            0 :                                             {
   10667            0 :                                               tree _o1[2], _r1;
   10668            0 :                                               {
   10669            0 :                                                 tree _o2[2], _r2;
   10670            0 :                                                 {
   10671            0 :                                                   tree _o3[1], _r3;
   10672            0 :                                                   _o3[0] = captures[1];
   10673            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_LOG, TREE_TYPE (_o3[0]), 1, _o3[0]);
   10674            0 :                                                   if (!_r3)
   10675            0 :                                                     goto next_after_fail1464;
   10676            0 :                                                   _o2[0] = _r3;
   10677              :                                                 }
   10678            0 :                                                 _o2[1] = captures[2];
   10679            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   10680            0 :                                                 _o1[0] = _r2;
   10681              :                                               }
   10682            0 :                                               _o1[1] = captures[4];
   10683            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10684            0 :                                               res_op0 = _r1;
   10685              :                                             }
   10686            0 :                                             tree _r;
   10687            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_EXP, type, 1, res_op0);
   10688            0 :                                             if (!_r)
   10689            0 :                                               goto next_after_fail1464;
   10690            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 982, __FILE__, __LINE__, true);
   10691            0 :                                             return _r;
   10692              :                                           }
   10693            0 : next_after_fail1464:;
   10694              :                                         }
   10695              :                                     }
   10696              :                                 }
   10697            0 :                                 break;
   10698              :                               }
   10699              :                             default:;
   10700              :                             }
   10701              :                         }
   10702              :                       break;
   10703              :                     default:;
   10704              :                     }
   10705              :                   break;
   10706              :                 default:;
   10707              :                 }
   10708              :             }
   10709              :           break;
   10710            0 :         case CFN_POW:
   10711            0 :           if (call_expr_nargs (_p0) == 2)
   10712              :     {
   10713            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10714            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   10715            0 :               switch (TREE_CODE (_q20))
   10716              :                 {
   10717            0 :                 case REAL_CST:
   10718            0 :                   {
   10719            0 :                     switch (TREE_CODE (_p1))
   10720              :                       {
   10721            0 :                       case CALL_EXPR:
   10722            0 :                         switch (get_call_combined_fn (_p1))
   10723              :                           {
   10724            0 :                           case CFN_EXP:
   10725            0 :                             if (call_expr_nargs (_p1) == 1)
   10726              :     {
   10727            0 :                                 tree _q50 = CALL_EXPR_ARG (_p1, 0);
   10728            0 :                                 {
   10729            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   10730            0 :                                   if (flag_unsafe_math_optimizations
   10731              : )
   10732              :                                     {
   10733            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   10734            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   10735              : )
   10736              :                                         {
   10737            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1465;
   10738            0 :                                           {
   10739            0 :                                             tree res_op0;
   10740            0 :                                             {
   10741            0 :                                               tree _o1[2], _r1;
   10742            0 :                                               {
   10743            0 :                                                 tree _o2[2], _r2;
   10744            0 :                                                 {
   10745            0 :                                                   tree _o3[1], _r3;
   10746            0 :                                                   _o3[0] = captures[1];
   10747            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_LOG, TREE_TYPE (_o3[0]), 1, _o3[0]);
   10748            0 :                                                   if (!_r3)
   10749            0 :                                                     goto next_after_fail1465;
   10750            0 :                                                   _o2[0] = _r3;
   10751              :                                                 }
   10752            0 :                                                 _o2[1] = captures[2];
   10753            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   10754            0 :                                                 _o1[0] = _r2;
   10755              :                                               }
   10756            0 :                                               _o1[1] = captures[4];
   10757            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10758            0 :                                               res_op0 = _r1;
   10759              :                                             }
   10760            0 :                                             tree _r;
   10761            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_EXP, type, 1, res_op0);
   10762            0 :                                             if (!_r)
   10763            0 :                                               goto next_after_fail1465;
   10764            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 982, __FILE__, __LINE__, true);
   10765            0 :                                             return _r;
   10766              :                                           }
   10767            0 : next_after_fail1465:;
   10768              :                                         }
   10769              :                                     }
   10770              :                                 }
   10771              :                               }
   10772              :                             break;
   10773            0 :                           case CFN_EXP2:
   10774            0 :                             if (call_expr_nargs (_p1) == 1)
   10775              :     {
   10776            0 :                                 tree _q50 = CALL_EXPR_ARG (_p1, 0);
   10777            0 :                                 {
   10778            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   10779            0 :                                   if (flag_unsafe_math_optimizations
   10780              : )
   10781              :                                     {
   10782            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   10783            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   10784              : )
   10785              :                                         {
   10786            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1466;
   10787            0 :                                           {
   10788            0 :                                             tree res_op0;
   10789            0 :                                             {
   10790            0 :                                               tree _o1[2], _r1;
   10791            0 :                                               {
   10792            0 :                                                 tree _o2[2], _r2;
   10793            0 :                                                 {
   10794            0 :                                                   tree _o3[1], _r3;
   10795            0 :                                                   _o3[0] = captures[1];
   10796            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_LOG2, TREE_TYPE (_o3[0]), 1, _o3[0]);
   10797            0 :                                                   if (!_r3)
   10798            0 :                                                     goto next_after_fail1466;
   10799            0 :                                                   _o2[0] = _r3;
   10800              :                                                 }
   10801            0 :                                                 _o2[1] = captures[2];
   10802            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   10803            0 :                                                 _o1[0] = _r2;
   10804              :                                               }
   10805            0 :                                               _o1[1] = captures[4];
   10806            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10807            0 :                                               res_op0 = _r1;
   10808              :                                             }
   10809            0 :                                             tree _r;
   10810            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_EXP2, type, 1, res_op0);
   10811            0 :                                             if (!_r)
   10812            0 :                                               goto next_after_fail1466;
   10813            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 982, __FILE__, __LINE__, true);
   10814            0 :                                             return _r;
   10815              :                                           }
   10816            0 : next_after_fail1466:;
   10817              :                                         }
   10818              :                                     }
   10819              :                                 }
   10820              :                               }
   10821              :                             break;
   10822            0 :                           case CFN_EXP10:
   10823            0 :                             if (call_expr_nargs (_p1) == 1)
   10824              :     {
   10825            0 :                                 tree _q50 = CALL_EXPR_ARG (_p1, 0);
   10826            0 :                                 {
   10827            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   10828            0 :                                   if (flag_unsafe_math_optimizations
   10829              : )
   10830              :                                     {
   10831            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   10832            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   10833              : )
   10834              :                                         {
   10835            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1467;
   10836            0 :                                           {
   10837            0 :                                             tree res_op0;
   10838            0 :                                             {
   10839            0 :                                               tree _o1[2], _r1;
   10840            0 :                                               {
   10841            0 :                                                 tree _o2[2], _r2;
   10842            0 :                                                 {
   10843            0 :                                                   tree _o3[1], _r3;
   10844            0 :                                                   _o3[0] = captures[1];
   10845            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_LOG10, TREE_TYPE (_o3[0]), 1, _o3[0]);
   10846            0 :                                                   if (!_r3)
   10847            0 :                                                     goto next_after_fail1467;
   10848            0 :                                                   _o2[0] = _r3;
   10849              :                                                 }
   10850            0 :                                                 _o2[1] = captures[2];
   10851            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   10852            0 :                                                 _o1[0] = _r2;
   10853              :                                               }
   10854            0 :                                               _o1[1] = captures[4];
   10855            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10856            0 :                                               res_op0 = _r1;
   10857              :                                             }
   10858            0 :                                             tree _r;
   10859            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_EXP10, type, 1, res_op0);
   10860            0 :                                             if (!_r)
   10861            0 :                                               goto next_after_fail1467;
   10862            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 982, __FILE__, __LINE__, true);
   10863            0 :                                             return _r;
   10864              :                                           }
   10865            0 : next_after_fail1467:;
   10866              :                                         }
   10867              :                                     }
   10868              :                                 }
   10869              :                               }
   10870              :                             break;
   10871              :                           default:;
   10872              :                           }
   10873              :                         break;
   10874              :                       default:;
   10875              :                       }
   10876              :                     break;
   10877              :                   }
   10878            0 :                 default:;
   10879              :                 }
   10880            0 :               switch (TREE_CODE (_q21))
   10881              :                 {
   10882            0 :                 case REAL_CST:
   10883            0 :                   {
   10884            0 :                     if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
   10885              :                       {
   10886            0 :                         {
   10887            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
   10888            0 :                           tree res = generic_simplify_200 (loc, type, _p0, _p1, captures, CFN_POW);
   10889            0 :                           if (res) return res;
   10890              :                         }
   10891              :                       }
   10892              :                     break;
   10893              :                   }
   10894              :                 default:;
   10895              :                 }
   10896              :             }
   10897              :           break;
   10898           24 :         case CFN_BUILT_IN_POW10F:
   10899           24 :           if (call_expr_nargs (_p0) == 1)
   10900              :     {
   10901           24 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10902           24 :               switch (TREE_CODE (_p1))
   10903              :                 {
   10904           12 :                 case CALL_EXPR:
   10905           12 :                   switch (get_call_combined_fn (_p1))
   10906              :                     {
   10907            0 :                     case CFN_BUILT_IN_POWF:
   10908            0 :                       if (call_expr_nargs (_p1) == 2)
   10909              :     {
   10910            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   10911            0 :                           tree _q41 = CALL_EXPR_ARG (_p1, 1);
   10912            0 :                           switch (TREE_CODE (_q40))
   10913              :                             {
   10914            0 :                             case REAL_CST:
   10915            0 :                               {
   10916            0 :                                 {
   10917            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
   10918            0 :                                   if (flag_unsafe_math_optimizations
   10919              : )
   10920              :                                     {
   10921            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   10922            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   10923              : )
   10924              :                                         {
   10925            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1468;
   10926            0 :                                           {
   10927            0 :                                             tree res_op0;
   10928            0 :                                             {
   10929            0 :                                               tree _o1[2], _r1;
   10930            0 :                                               {
   10931            0 :                                                 tree _o2[2], _r2;
   10932            0 :                                                 {
   10933            0 :                                                   tree _o3[1], _r3;
   10934            0 :                                                   _o3[0] = captures[1];
   10935            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10F, TREE_TYPE (_o3[0]), 1, _o3[0]);
   10936            0 :                                                   if (!_r3)
   10937            0 :                                                     goto next_after_fail1468;
   10938            0 :                                                   _o2[0] = _r3;
   10939              :                                                 }
   10940            0 :                                                 _o2[1] = captures[2];
   10941            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   10942            0 :                                                 _o1[0] = _r2;
   10943              :                                               }
   10944            0 :                                               _o1[1] = captures[4];
   10945            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10946            0 :                                               res_op0 = _r1;
   10947              :                                             }
   10948            0 :                                             tree _r;
   10949            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10F, type, 1, res_op0);
   10950            0 :                                             if (!_r)
   10951            0 :                                               goto next_after_fail1468;
   10952            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 982, __FILE__, __LINE__, true);
   10953            0 :                                             return _r;
   10954              :                                           }
   10955            0 : next_after_fail1468:;
   10956              :                                         }
   10957              :                                     }
   10958              :                                 }
   10959            0 :                                 break;
   10960              :                               }
   10961              :                             default:;
   10962              :                             }
   10963              :                         }
   10964              :                       break;
   10965           12 :                     case CFN_BUILT_IN_POW10F:
   10966           12 :                       if (call_expr_nargs (_p1) == 1)
   10967              :     {
   10968           12 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   10969           12 :                           {
   10970           12 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   10971           12 :                             if (flag_unsafe_math_optimizations
   10972              : )
   10973              :                               {
   10974           12 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1469;
   10975           12 :                                 {
   10976           12 :                                   tree res_op0;
   10977           12 :                                   {
   10978           12 :                                     tree _o1[2], _r1;
   10979           12 :                                     _o1[0] = captures[1];
   10980           12 :                                     _o1[1] = captures[3];
   10981           12 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10982           12 :                                     res_op0 = _r1;
   10983              :                                   }
   10984           12 :                                   tree _r;
   10985           12 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10F, type, 1, res_op0);
   10986           12 :                                   if (!_r)
   10987           12 :                                     goto next_after_fail1469;
   10988            0 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 981, __FILE__, __LINE__, true);
   10989            0 :                                   return _r;
   10990              :                                 }
   10991           12 : next_after_fail1469:;
   10992              :                               }
   10993              :                           }
   10994              :                         }
   10995              :                       break;
   10996              :                     default:;
   10997              :                     }
   10998              :                   break;
   10999              :                 default:;
   11000              :                 }
   11001              :             }
   11002              :           break;
   11003           24 :         case CFN_BUILT_IN_POW10L:
   11004           24 :           if (call_expr_nargs (_p0) == 1)
   11005              :     {
   11006           24 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11007           24 :               switch (TREE_CODE (_p1))
   11008              :                 {
   11009           12 :                 case CALL_EXPR:
   11010           12 :                   switch (get_call_combined_fn (_p1))
   11011              :                     {
   11012            0 :                     case CFN_BUILT_IN_POWL:
   11013            0 :                       if (call_expr_nargs (_p1) == 2)
   11014              :     {
   11015            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11016            0 :                           tree _q41 = CALL_EXPR_ARG (_p1, 1);
   11017            0 :                           switch (TREE_CODE (_q40))
   11018              :                             {
   11019            0 :                             case REAL_CST:
   11020            0 :                               {
   11021            0 :                                 {
   11022            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
   11023            0 :                                   if (flag_unsafe_math_optimizations
   11024              : )
   11025              :                                     {
   11026            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   11027            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   11028              : )
   11029              :                                         {
   11030            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1470;
   11031            0 :                                           {
   11032            0 :                                             tree res_op0;
   11033            0 :                                             {
   11034            0 :                                               tree _o1[2], _r1;
   11035            0 :                                               {
   11036            0 :                                                 tree _o2[2], _r2;
   11037            0 :                                                 {
   11038            0 :                                                   tree _o3[1], _r3;
   11039            0 :                                                   _o3[0] = captures[1];
   11040            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10L, TREE_TYPE (_o3[0]), 1, _o3[0]);
   11041            0 :                                                   if (!_r3)
   11042            0 :                                                     goto next_after_fail1470;
   11043            0 :                                                   _o2[0] = _r3;
   11044              :                                                 }
   11045            0 :                                                 _o2[1] = captures[2];
   11046            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   11047            0 :                                                 _o1[0] = _r2;
   11048              :                                               }
   11049            0 :                                               _o1[1] = captures[4];
   11050            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11051            0 :                                               res_op0 = _r1;
   11052              :                                             }
   11053            0 :                                             tree _r;
   11054            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10L, type, 1, res_op0);
   11055            0 :                                             if (!_r)
   11056            0 :                                               goto next_after_fail1470;
   11057            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 982, __FILE__, __LINE__, true);
   11058            0 :                                             return _r;
   11059              :                                           }
   11060            0 : next_after_fail1470:;
   11061              :                                         }
   11062              :                                     }
   11063              :                                 }
   11064            0 :                                 break;
   11065              :                               }
   11066              :                             default:;
   11067              :                             }
   11068              :                         }
   11069              :                       break;
   11070           12 :                     case CFN_BUILT_IN_POW10L:
   11071           12 :                       if (call_expr_nargs (_p1) == 1)
   11072              :     {
   11073           12 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11074           12 :                           {
   11075           12 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   11076           12 :                             if (flag_unsafe_math_optimizations
   11077              : )
   11078              :                               {
   11079           12 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1471;
   11080           12 :                                 {
   11081           12 :                                   tree res_op0;
   11082           12 :                                   {
   11083           12 :                                     tree _o1[2], _r1;
   11084           12 :                                     _o1[0] = captures[1];
   11085           12 :                                     _o1[1] = captures[3];
   11086           12 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11087           12 :                                     res_op0 = _r1;
   11088              :                                   }
   11089           12 :                                   tree _r;
   11090           12 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10L, type, 1, res_op0);
   11091           12 :                                   if (!_r)
   11092           12 :                                     goto next_after_fail1471;
   11093            0 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 981, __FILE__, __LINE__, true);
   11094            0 :                                   return _r;
   11095              :                                 }
   11096           12 : next_after_fail1471:;
   11097              :                               }
   11098              :                           }
   11099              :                         }
   11100              :                       break;
   11101              :                     default:;
   11102              :                     }
   11103              :                   break;
   11104              :                 default:;
   11105              :                 }
   11106              :             }
   11107              :           break;
   11108            0 :         case CFN_BUILT_IN_SQRTF128X:
   11109            0 :           if (call_expr_nargs (_p0) == 1)
   11110              :     {
   11111            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11112            0 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
   11113              :                 {
   11114            0 :                   {
   11115            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
   11116            0 :                     tree res = generic_simplify_199 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF128X);
   11117            0 :                     if (res) return res;
   11118              :                   }
   11119              :                 }
   11120              :             }
   11121              :           break;
   11122            0 :         case CFN_EXP2:
   11123            0 :           if (call_expr_nargs (_p0) == 1)
   11124              :     {
   11125            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11126            0 :               switch (TREE_CODE (_p1))
   11127              :                 {
   11128            0 :                 case CALL_EXPR:
   11129            0 :                   switch (get_call_combined_fn (_p1))
   11130              :                     {
   11131            0 :                     case CFN_POW:
   11132            0 :                       if (call_expr_nargs (_p1) == 2)
   11133              :     {
   11134            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11135            0 :                           tree _q41 = CALL_EXPR_ARG (_p1, 1);
   11136            0 :                           switch (TREE_CODE (_q40))
   11137              :                             {
   11138            0 :                             case REAL_CST:
   11139            0 :                               {
   11140            0 :                                 {
   11141            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
   11142            0 :                                   if (flag_unsafe_math_optimizations
   11143              : )
   11144              :                                     {
   11145            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   11146            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   11147              : )
   11148              :                                         {
   11149            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1472;
   11150            0 :                                           {
   11151            0 :                                             tree res_op0;
   11152            0 :                                             {
   11153            0 :                                               tree _o1[2], _r1;
   11154            0 :                                               {
   11155            0 :                                                 tree _o2[2], _r2;
   11156            0 :                                                 {
   11157            0 :                                                   tree _o3[1], _r3;
   11158            0 :                                                   _o3[0] = captures[1];
   11159            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_LOG2, TREE_TYPE (_o3[0]), 1, _o3[0]);
   11160            0 :                                                   if (!_r3)
   11161            0 :                                                     goto next_after_fail1472;
   11162            0 :                                                   _o2[0] = _r3;
   11163              :                                                 }
   11164            0 :                                                 _o2[1] = captures[2];
   11165            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   11166            0 :                                                 _o1[0] = _r2;
   11167              :                                               }
   11168            0 :                                               _o1[1] = captures[4];
   11169            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11170            0 :                                               res_op0 = _r1;
   11171              :                                             }
   11172            0 :                                             tree _r;
   11173            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_EXP2, type, 1, res_op0);
   11174            0 :                                             if (!_r)
   11175            0 :                                               goto next_after_fail1472;
   11176            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 982, __FILE__, __LINE__, true);
   11177            0 :                                             return _r;
   11178              :                                           }
   11179            0 : next_after_fail1472:;
   11180              :                                         }
   11181              :                                     }
   11182              :                                 }
   11183            0 :                                 break;
   11184              :                               }
   11185              :                             default:;
   11186              :                             }
   11187              :                         }
   11188              :                       break;
   11189            0 :                     case CFN_EXP2:
   11190            0 :                       if (call_expr_nargs (_p1) == 1)
   11191              :     {
   11192            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11193            0 :                           {
   11194            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   11195            0 :                             if (flag_unsafe_math_optimizations
   11196              : )
   11197              :                               {
   11198            0 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1473;
   11199            0 :                                 {
   11200            0 :                                   tree res_op0;
   11201            0 :                                   {
   11202            0 :                                     tree _o1[2], _r1;
   11203            0 :                                     _o1[0] = captures[1];
   11204            0 :                                     _o1[1] = captures[3];
   11205            0 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11206            0 :                                     res_op0 = _r1;
   11207              :                                   }
   11208            0 :                                   tree _r;
   11209            0 :                                   _r = maybe_build_call_expr_loc (loc, CFN_EXP2, type, 1, res_op0);
   11210            0 :                                   if (!_r)
   11211            0 :                                     goto next_after_fail1473;
   11212            0 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 981, __FILE__, __LINE__, true);
   11213            0 :                                   return _r;
   11214              :                                 }
   11215            0 : next_after_fail1473:;
   11216              :                               }
   11217              :                           }
   11218              :                         }
   11219              :                       break;
   11220              :                     default:;
   11221              :                     }
   11222              :                   break;
   11223              :                 default:;
   11224              :                 }
   11225              :             }
   11226              :           break;
   11227            0 :         case CFN_SQRT:
   11228            0 :           if (call_expr_nargs (_p0) == 1)
   11229              :     {
   11230            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11231            0 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
   11232              :                 {
   11233            0 :                   {
   11234            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
   11235            0 :                     tree res = generic_simplify_199 (loc, type, _p0, _p1, captures, CFN_SQRT);
   11236            0 :                     if (res) return res;
   11237              :                   }
   11238              :                 }
   11239            0 :               switch (TREE_CODE (_p1))
   11240              :                 {
   11241            0 :                 case CALL_EXPR:
   11242            0 :                   switch (get_call_combined_fn (_p1))
   11243              :                     {
   11244            0 :                     case CFN_SQRT:
   11245            0 :                       if (call_expr_nargs (_p1) == 1)
   11246              :     {
   11247            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11248            0 :                           {
   11249            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   11250            0 :                             if (flag_unsafe_math_optimizations
   11251              : )
   11252              :                               {
   11253            0 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1474;
   11254            0 :                                 {
   11255            0 :                                   tree res_op0;
   11256            0 :                                   {
   11257            0 :                                     tree _o1[2], _r1;
   11258            0 :                                     _o1[0] = captures[1];
   11259            0 :                                     _o1[1] = captures[3];
   11260            0 :                                     _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11261            0 :                                     res_op0 = _r1;
   11262              :                                   }
   11263            0 :                                   tree _r;
   11264            0 :                                   _r = maybe_build_call_expr_loc (loc, CFN_SQRT, type, 1, res_op0);
   11265            0 :                                   if (!_r)
   11266            0 :                                     goto next_after_fail1474;
   11267            0 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 980, __FILE__, __LINE__, true);
   11268            0 :                                   return _r;
   11269              :                                 }
   11270            0 : next_after_fail1474:;
   11271              :                               }
   11272              :                           }
   11273              :                         }
   11274              :                       break;
   11275              :                     default:;
   11276              :                     }
   11277              :                   break;
   11278              :                 default:;
   11279              :                 }
   11280              :             }
   11281              :           break;
   11282            0 :         case CFN_EXP10:
   11283            0 :           if (call_expr_nargs (_p0) == 1)
   11284              :     {
   11285            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11286            0 :               switch (TREE_CODE (_p1))
   11287              :                 {
   11288            0 :                 case CALL_EXPR:
   11289            0 :                   switch (get_call_combined_fn (_p1))
   11290              :                     {
   11291            0 :                     case CFN_POW:
   11292            0 :                       if (call_expr_nargs (_p1) == 2)
   11293              :     {
   11294            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11295            0 :                           tree _q41 = CALL_EXPR_ARG (_p1, 1);
   11296            0 :                           switch (TREE_CODE (_q40))
   11297              :                             {
   11298            0 :                             case REAL_CST:
   11299            0 :                               {
   11300            0 :                                 {
   11301            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
   11302            0 :                                   if (flag_unsafe_math_optimizations
   11303              : )
   11304              :                                     {
   11305            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   11306            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   11307              : )
   11308              :                                         {
   11309            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1475;
   11310            0 :                                           {
   11311            0 :                                             tree res_op0;
   11312            0 :                                             {
   11313            0 :                                               tree _o1[2], _r1;
   11314            0 :                                               {
   11315            0 :                                                 tree _o2[2], _r2;
   11316            0 :                                                 {
   11317            0 :                                                   tree _o3[1], _r3;
   11318            0 :                                                   _o3[0] = captures[1];
   11319            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_LOG10, TREE_TYPE (_o3[0]), 1, _o3[0]);
   11320            0 :                                                   if (!_r3)
   11321            0 :                                                     goto next_after_fail1475;
   11322            0 :                                                   _o2[0] = _r3;
   11323              :                                                 }
   11324            0 :                                                 _o2[1] = captures[2];
   11325            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   11326            0 :                                                 _o1[0] = _r2;
   11327              :                                               }
   11328            0 :                                               _o1[1] = captures[4];
   11329            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11330            0 :                                               res_op0 = _r1;
   11331              :                                             }
   11332            0 :                                             tree _r;
   11333            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_EXP10, type, 1, res_op0);
   11334            0 :                                             if (!_r)
   11335            0 :                                               goto next_after_fail1475;
   11336            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 982, __FILE__, __LINE__, true);
   11337            0 :                                             return _r;
   11338              :                                           }
   11339            0 : next_after_fail1475:;
   11340              :                                         }
   11341              :                                     }
   11342              :                                 }
   11343            0 :                                 break;
   11344              :                               }
   11345              :                             default:;
   11346              :                             }
   11347              :                         }
   11348              :                       break;
   11349            0 :                     case CFN_EXP10:
   11350            0 :                       if (call_expr_nargs (_p1) == 1)
   11351              :     {
   11352            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11353            0 :                           {
   11354            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   11355            0 :                             if (flag_unsafe_math_optimizations
   11356              : )
   11357              :                               {
   11358            0 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1476;
   11359            0 :                                 {
   11360            0 :                                   tree res_op0;
   11361            0 :                                   {
   11362            0 :                                     tree _o1[2], _r1;
   11363            0 :                                     _o1[0] = captures[1];
   11364            0 :                                     _o1[1] = captures[3];
   11365            0 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11366            0 :                                     res_op0 = _r1;
   11367              :                                   }
   11368            0 :                                   tree _r;
   11369            0 :                                   _r = maybe_build_call_expr_loc (loc, CFN_EXP10, type, 1, res_op0);
   11370            0 :                                   if (!_r)
   11371            0 :                                     goto next_after_fail1476;
   11372            0 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 981, __FILE__, __LINE__, true);
   11373            0 :                                   return _r;
   11374              :                                 }
   11375            0 : next_after_fail1476:;
   11376              :                               }
   11377              :                           }
   11378              :                         }
   11379              :                       break;
   11380              :                     default:;
   11381              :                     }
   11382              :                   break;
   11383              :                 default:;
   11384              :                 }
   11385              :             }
   11386              :           break;
   11387           12 :         case CFN_BUILT_IN_CBRTF:
   11388           12 :           if (call_expr_nargs (_p0) == 1)
   11389              :     {
   11390           12 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11391           12 :               switch (TREE_CODE (_p1))
   11392              :                 {
   11393           12 :                 case CALL_EXPR:
   11394           12 :                   switch (get_call_combined_fn (_p1))
   11395              :                     {
   11396           12 :                     case CFN_BUILT_IN_CBRTF:
   11397           12 :                       if (call_expr_nargs (_p1) == 1)
   11398              :     {
   11399           12 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11400           12 :                           {
   11401           12 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   11402           12 :                             if (flag_unsafe_math_optimizations
   11403              : )
   11404              :                               {
   11405           12 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1477;
   11406           12 :                                 {
   11407           12 :                                   tree res_op0;
   11408           12 :                                   {
   11409           12 :                                     tree _o1[2], _r1;
   11410           12 :                                     _o1[0] = captures[1];
   11411           12 :                                     _o1[1] = captures[3];
   11412           12 :                                     _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11413           12 :                                     res_op0 = _r1;
   11414              :                                   }
   11415           12 :                                   tree _r;
   11416           12 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_CBRTF, type, 1, res_op0);
   11417           12 :                                   if (!_r)
   11418            0 :                                     goto next_after_fail1477;
   11419           12 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 980, __FILE__, __LINE__, true);
   11420           12 :                                   return _r;
   11421              :                                 }
   11422            0 : next_after_fail1477:;
   11423              :                               }
   11424              :                           }
   11425              :                         }
   11426              :                       break;
   11427              :                     default:;
   11428              :                     }
   11429              :                   break;
   11430              :                 default:;
   11431              :                 }
   11432              :             }
   11433              :           break;
   11434           12 :         case CFN_BUILT_IN_CBRTL:
   11435           12 :           if (call_expr_nargs (_p0) == 1)
   11436              :     {
   11437           12 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11438           12 :               switch (TREE_CODE (_p1))
   11439              :                 {
   11440           12 :                 case CALL_EXPR:
   11441           12 :                   switch (get_call_combined_fn (_p1))
   11442              :                     {
   11443           12 :                     case CFN_BUILT_IN_CBRTL:
   11444           12 :                       if (call_expr_nargs (_p1) == 1)
   11445              :     {
   11446           12 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11447           12 :                           {
   11448           12 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   11449           12 :                             if (flag_unsafe_math_optimizations
   11450              : )
   11451              :                               {
   11452           12 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1478;
   11453           12 :                                 {
   11454           12 :                                   tree res_op0;
   11455           12 :                                   {
   11456           12 :                                     tree _o1[2], _r1;
   11457           12 :                                     _o1[0] = captures[1];
   11458           12 :                                     _o1[1] = captures[3];
   11459           12 :                                     _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11460           12 :                                     res_op0 = _r1;
   11461              :                                   }
   11462           12 :                                   tree _r;
   11463           12 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_CBRTL, type, 1, res_op0);
   11464           12 :                                   if (!_r)
   11465            0 :                                     goto next_after_fail1478;
   11466           12 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 980, __FILE__, __LINE__, true);
   11467           12 :                                   return _r;
   11468              :                                 }
   11469            0 : next_after_fail1478:;
   11470              :                               }
   11471              :                           }
   11472              :                         }
   11473              :                       break;
   11474              :                     default:;
   11475              :                     }
   11476              :                   break;
   11477              :                 default:;
   11478              :                 }
   11479              :             }
   11480              :           break;
   11481            0 :         case CFN_LDEXP:
   11482            0 :           if (call_expr_nargs (_p0) == 2)
   11483              :     {
   11484            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11485            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   11486            0 :               switch (TREE_CODE (_p1))
   11487              :                 {
   11488            0 :                 case REAL_CST:
   11489            0 :                   {
   11490            0 :                     {
   11491            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q21 };
   11492            0 :                       tree res = generic_simplify_201 (loc, type, _p0, _p1, captures, CFN_LDEXP);
   11493            0 :                       if (res) return res;
   11494              :                     }
   11495            0 :                     break;
   11496              :                   }
   11497            0 :                 default:;
   11498              :                 }
   11499            0 :               switch (TREE_CODE (_q20))
   11500              :                 {
   11501            0 :                 case REAL_CST:
   11502            0 :                   {
   11503            0 :                     {
   11504            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q21 };
   11505            0 :                       tree res = generic_simplify_202 (loc, type, _p0, _p1, captures, CFN_LDEXP);
   11506            0 :                       if (res) return res;
   11507              :                     }
   11508            0 :                     break;
   11509              :                   }
   11510              :                 default:;
   11511              :                 }
   11512              :             }
   11513              :           break;
   11514           48 :         case CFN_BUILT_IN_EXP10:
   11515           48 :           if (call_expr_nargs (_p0) == 1)
   11516              :     {
   11517           48 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11518           48 :               switch (TREE_CODE (_p1))
   11519              :                 {
   11520           24 :                 case CALL_EXPR:
   11521           24 :                   switch (get_call_combined_fn (_p1))
   11522              :                     {
   11523            0 :                     case CFN_BUILT_IN_POW:
   11524            0 :                       if (call_expr_nargs (_p1) == 2)
   11525              :     {
   11526            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11527            0 :                           tree _q41 = CALL_EXPR_ARG (_p1, 1);
   11528            0 :                           switch (TREE_CODE (_q40))
   11529              :                             {
   11530            0 :                             case REAL_CST:
   11531            0 :                               {
   11532            0 :                                 {
   11533            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
   11534            0 :                                   if (flag_unsafe_math_optimizations
   11535              : )
   11536              :                                     {
   11537            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   11538            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   11539              : )
   11540              :                                         {
   11541            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1479;
   11542            0 :                                           {
   11543            0 :                                             tree res_op0;
   11544            0 :                                             {
   11545            0 :                                               tree _o1[2], _r1;
   11546            0 :                                               {
   11547            0 :                                                 tree _o2[2], _r2;
   11548            0 :                                                 {
   11549            0 :                                                   tree _o3[1], _r3;
   11550            0 :                                                   _o3[0] = captures[1];
   11551            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10, TREE_TYPE (_o3[0]), 1, _o3[0]);
   11552            0 :                                                   if (!_r3)
   11553            0 :                                                     goto next_after_fail1479;
   11554            0 :                                                   _o2[0] = _r3;
   11555              :                                                 }
   11556            0 :                                                 _o2[1] = captures[2];
   11557            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   11558            0 :                                                 _o1[0] = _r2;
   11559              :                                               }
   11560            0 :                                               _o1[1] = captures[4];
   11561            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11562            0 :                                               res_op0 = _r1;
   11563              :                                             }
   11564            0 :                                             tree _r;
   11565            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10, type, 1, res_op0);
   11566            0 :                                             if (!_r)
   11567            0 :                                               goto next_after_fail1479;
   11568            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 982, __FILE__, __LINE__, true);
   11569            0 :                                             return _r;
   11570              :                                           }
   11571            0 : next_after_fail1479:;
   11572              :                                         }
   11573              :                                     }
   11574              :                                 }
   11575            0 :                                 break;
   11576              :                               }
   11577              :                             default:;
   11578              :                             }
   11579              :                         }
   11580              :                       break;
   11581           24 :                     case CFN_BUILT_IN_EXP10:
   11582           24 :                       if (call_expr_nargs (_p1) == 1)
   11583              :     {
   11584           24 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11585           24 :                           {
   11586           24 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   11587           24 :                             if (flag_unsafe_math_optimizations
   11588              : )
   11589              :                               {
   11590           24 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1480;
   11591           24 :                                 {
   11592           24 :                                   tree res_op0;
   11593           24 :                                   {
   11594           24 :                                     tree _o1[2], _r1;
   11595           24 :                                     _o1[0] = captures[1];
   11596           24 :                                     _o1[1] = captures[3];
   11597           24 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11598           24 :                                     res_op0 = _r1;
   11599              :                                   }
   11600           24 :                                   tree _r;
   11601           24 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10, type, 1, res_op0);
   11602           24 :                                   if (!_r)
   11603            0 :                                     goto next_after_fail1480;
   11604           24 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 981, __FILE__, __LINE__, true);
   11605           24 :                                   return _r;
   11606              :                                 }
   11607            0 : next_after_fail1480:;
   11608              :                               }
   11609              :                           }
   11610              :                         }
   11611              :                       break;
   11612              :                     default:;
   11613              :                     }
   11614              :                   break;
   11615              :                 default:;
   11616              :                 }
   11617              :             }
   11618              :           break;
   11619           48 :         case CFN_BUILT_IN_EXP2F:
   11620           48 :           if (call_expr_nargs (_p0) == 1)
   11621              :     {
   11622           48 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11623           48 :               switch (TREE_CODE (_p1))
   11624              :                 {
   11625           24 :                 case CALL_EXPR:
   11626           24 :                   switch (get_call_combined_fn (_p1))
   11627              :                     {
   11628            0 :                     case CFN_BUILT_IN_POWF:
   11629            0 :                       if (call_expr_nargs (_p1) == 2)
   11630              :     {
   11631            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11632            0 :                           tree _q41 = CALL_EXPR_ARG (_p1, 1);
   11633            0 :                           switch (TREE_CODE (_q40))
   11634              :                             {
   11635            0 :                             case REAL_CST:
   11636            0 :                               {
   11637            0 :                                 {
   11638            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
   11639            0 :                                   if (flag_unsafe_math_optimizations
   11640              : )
   11641              :                                     {
   11642            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   11643            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   11644              : )
   11645              :                                         {
   11646            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1481;
   11647            0 :                                           {
   11648            0 :                                             tree res_op0;
   11649            0 :                                             {
   11650            0 :                                               tree _o1[2], _r1;
   11651            0 :                                               {
   11652            0 :                                                 tree _o2[2], _r2;
   11653            0 :                                                 {
   11654            0 :                                                   tree _o3[1], _r3;
   11655            0 :                                                   _o3[0] = captures[1];
   11656            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG2F, TREE_TYPE (_o3[0]), 1, _o3[0]);
   11657            0 :                                                   if (!_r3)
   11658            0 :                                                     goto next_after_fail1481;
   11659            0 :                                                   _o2[0] = _r3;
   11660              :                                                 }
   11661            0 :                                                 _o2[1] = captures[2];
   11662            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   11663            0 :                                                 _o1[0] = _r2;
   11664              :                                               }
   11665            0 :                                               _o1[1] = captures[4];
   11666            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11667            0 :                                               res_op0 = _r1;
   11668              :                                             }
   11669            0 :                                             tree _r;
   11670            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2F, type, 1, res_op0);
   11671            0 :                                             if (!_r)
   11672            0 :                                               goto next_after_fail1481;
   11673            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 982, __FILE__, __LINE__, true);
   11674            0 :                                             return _r;
   11675              :                                           }
   11676            0 : next_after_fail1481:;
   11677              :                                         }
   11678              :                                     }
   11679              :                                 }
   11680            0 :                                 break;
   11681              :                               }
   11682              :                             default:;
   11683              :                             }
   11684              :                         }
   11685              :                       break;
   11686           24 :                     case CFN_BUILT_IN_EXP2F:
   11687           24 :                       if (call_expr_nargs (_p1) == 1)
   11688              :     {
   11689           24 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11690           24 :                           {
   11691           24 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   11692           24 :                             if (flag_unsafe_math_optimizations
   11693              : )
   11694              :                               {
   11695           24 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1482;
   11696           24 :                                 {
   11697           24 :                                   tree res_op0;
   11698           24 :                                   {
   11699           24 :                                     tree _o1[2], _r1;
   11700           24 :                                     _o1[0] = captures[1];
   11701           24 :                                     _o1[1] = captures[3];
   11702           24 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11703           24 :                                     res_op0 = _r1;
   11704              :                                   }
   11705           24 :                                   tree _r;
   11706           24 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2F, type, 1, res_op0);
   11707           24 :                                   if (!_r)
   11708            0 :                                     goto next_after_fail1482;
   11709           24 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 981, __FILE__, __LINE__, true);
   11710           24 :                                   return _r;
   11711              :                                 }
   11712            0 : next_after_fail1482:;
   11713              :                               }
   11714              :                           }
   11715              :                         }
   11716              :                       break;
   11717              :                     default:;
   11718              :                     }
   11719              :                   break;
   11720              :                 default:;
   11721              :                 }
   11722              :             }
   11723              :           break;
   11724           48 :         case CFN_BUILT_IN_EXP2L:
   11725           48 :           if (call_expr_nargs (_p0) == 1)
   11726              :     {
   11727           48 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11728           48 :               switch (TREE_CODE (_p1))
   11729              :                 {
   11730           24 :                 case CALL_EXPR:
   11731           24 :                   switch (get_call_combined_fn (_p1))
   11732              :                     {
   11733            0 :                     case CFN_BUILT_IN_POWL:
   11734            0 :                       if (call_expr_nargs (_p1) == 2)
   11735              :     {
   11736            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11737            0 :                           tree _q41 = CALL_EXPR_ARG (_p1, 1);
   11738            0 :                           switch (TREE_CODE (_q40))
   11739              :                             {
   11740            0 :                             case REAL_CST:
   11741            0 :                               {
   11742            0 :                                 {
   11743            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
   11744            0 :                                   if (flag_unsafe_math_optimizations
   11745              : )
   11746              :                                     {
   11747            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   11748            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   11749              : )
   11750              :                                         {
   11751            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1483;
   11752            0 :                                           {
   11753            0 :                                             tree res_op0;
   11754            0 :                                             {
   11755            0 :                                               tree _o1[2], _r1;
   11756            0 :                                               {
   11757            0 :                                                 tree _o2[2], _r2;
   11758            0 :                                                 {
   11759            0 :                                                   tree _o3[1], _r3;
   11760            0 :                                                   _o3[0] = captures[1];
   11761            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG2L, TREE_TYPE (_o3[0]), 1, _o3[0]);
   11762            0 :                                                   if (!_r3)
   11763            0 :                                                     goto next_after_fail1483;
   11764            0 :                                                   _o2[0] = _r3;
   11765              :                                                 }
   11766            0 :                                                 _o2[1] = captures[2];
   11767            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   11768            0 :                                                 _o1[0] = _r2;
   11769              :                                               }
   11770            0 :                                               _o1[1] = captures[4];
   11771            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11772            0 :                                               res_op0 = _r1;
   11773              :                                             }
   11774            0 :                                             tree _r;
   11775            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2L, type, 1, res_op0);
   11776            0 :                                             if (!_r)
   11777            0 :                                               goto next_after_fail1483;
   11778            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 982, __FILE__, __LINE__, true);
   11779            0 :                                             return _r;
   11780              :                                           }
   11781            0 : next_after_fail1483:;
   11782              :                                         }
   11783              :                                     }
   11784              :                                 }
   11785            0 :                                 break;
   11786              :                               }
   11787              :                             default:;
   11788              :                             }
   11789              :                         }
   11790              :                       break;
   11791           24 :                     case CFN_BUILT_IN_EXP2L:
   11792           24 :                       if (call_expr_nargs (_p1) == 1)
   11793              :     {
   11794           24 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11795           24 :                           {
   11796           24 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   11797           24 :                             if (flag_unsafe_math_optimizations
   11798              : )
   11799              :                               {
   11800           24 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1484;
   11801           24 :                                 {
   11802           24 :                                   tree res_op0;
   11803           24 :                                   {
   11804           24 :                                     tree _o1[2], _r1;
   11805           24 :                                     _o1[0] = captures[1];
   11806           24 :                                     _o1[1] = captures[3];
   11807           24 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11808           24 :                                     res_op0 = _r1;
   11809              :                                   }
   11810           24 :                                   tree _r;
   11811           24 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2L, type, 1, res_op0);
   11812           24 :                                   if (!_r)
   11813            0 :                                     goto next_after_fail1484;
   11814           24 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 981, __FILE__, __LINE__, true);
   11815           24 :                                   return _r;
   11816              :                                 }
   11817            0 : next_after_fail1484:;
   11818              :                               }
   11819              :                           }
   11820              :                         }
   11821              :                       break;
   11822              :                     default:;
   11823              :                     }
   11824              :                   break;
   11825              :                 default:;
   11826              :                 }
   11827              :             }
   11828              :           break;
   11829            5 :         case CFN_BUILT_IN_LDEXP:
   11830            5 :           if (call_expr_nargs (_p0) == 2)
   11831              :     {
   11832            5 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11833            5 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   11834            5 :               switch (TREE_CODE (_p1))
   11835              :                 {
   11836            2 :                 case REAL_CST:
   11837            2 :                   {
   11838            2 :                     {
   11839            2 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q21 };
   11840            2 :                       tree res = generic_simplify_201 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LDEXP);
   11841            2 :                       if (res) return res;
   11842              :                     }
   11843            1 :                     break;
   11844              :                   }
   11845            4 :                 default:;
   11846              :                 }
   11847            4 :               switch (TREE_CODE (_q20))
   11848              :                 {
   11849            3 :                 case REAL_CST:
   11850            3 :                   {
   11851            3 :                     {
   11852            3 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q21 };
   11853            3 :                       tree res = generic_simplify_202 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LDEXP);
   11854            3 :                       if (res) return res;
   11855              :                     }
   11856            0 :                     break;
   11857              :                   }
   11858              :                 default:;
   11859              :                 }
   11860              :             }
   11861              :           break;
   11862           24 :         case CFN_BUILT_IN_POW10:
   11863           24 :           if (call_expr_nargs (_p0) == 1)
   11864              :     {
   11865           24 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11866           24 :               switch (TREE_CODE (_p1))
   11867              :                 {
   11868           12 :                 case CALL_EXPR:
   11869           12 :                   switch (get_call_combined_fn (_p1))
   11870              :                     {
   11871            0 :                     case CFN_BUILT_IN_POW:
   11872            0 :                       if (call_expr_nargs (_p1) == 2)
   11873              :     {
   11874            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11875            0 :                           tree _q41 = CALL_EXPR_ARG (_p1, 1);
   11876            0 :                           switch (TREE_CODE (_q40))
   11877              :                             {
   11878            0 :                             case REAL_CST:
   11879            0 :                               {
   11880            0 :                                 {
   11881            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
   11882            0 :                                   if (flag_unsafe_math_optimizations
   11883              : )
   11884              :                                     {
   11885            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   11886            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   11887              : )
   11888              :                                         {
   11889            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1485;
   11890            0 :                                           {
   11891            0 :                                             tree res_op0;
   11892            0 :                                             {
   11893            0 :                                               tree _o1[2], _r1;
   11894            0 :                                               {
   11895            0 :                                                 tree _o2[2], _r2;
   11896            0 :                                                 {
   11897            0 :                                                   tree _o3[1], _r3;
   11898            0 :                                                   _o3[0] = captures[1];
   11899            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10, TREE_TYPE (_o3[0]), 1, _o3[0]);
   11900            0 :                                                   if (!_r3)
   11901            0 :                                                     goto next_after_fail1485;
   11902            0 :                                                   _o2[0] = _r3;
   11903              :                                                 }
   11904            0 :                                                 _o2[1] = captures[2];
   11905            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   11906            0 :                                                 _o1[0] = _r2;
   11907              :                                               }
   11908            0 :                                               _o1[1] = captures[4];
   11909            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11910            0 :                                               res_op0 = _r1;
   11911              :                                             }
   11912            0 :                                             tree _r;
   11913            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10, type, 1, res_op0);
   11914            0 :                                             if (!_r)
   11915            0 :                                               goto next_after_fail1485;
   11916            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 982, __FILE__, __LINE__, true);
   11917            0 :                                             return _r;
   11918              :                                           }
   11919            0 : next_after_fail1485:;
   11920              :                                         }
   11921              :                                     }
   11922              :                                 }
   11923            0 :                                 break;
   11924              :                               }
   11925              :                             default:;
   11926              :                             }
   11927              :                         }
   11928              :                       break;
   11929           12 :                     case CFN_BUILT_IN_POW10:
   11930           12 :                       if (call_expr_nargs (_p1) == 1)
   11931              :     {
   11932           12 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11933           12 :                           {
   11934           12 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   11935           12 :                             if (flag_unsafe_math_optimizations
   11936              : )
   11937              :                               {
   11938           12 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1486;
   11939           12 :                                 {
   11940           12 :                                   tree res_op0;
   11941           12 :                                   {
   11942           12 :                                     tree _o1[2], _r1;
   11943           12 :                                     _o1[0] = captures[1];
   11944           12 :                                     _o1[1] = captures[3];
   11945           12 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11946           12 :                                     res_op0 = _r1;
   11947              :                                   }
   11948           12 :                                   tree _r;
   11949           12 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10, type, 1, res_op0);
   11950           12 :                                   if (!_r)
   11951           12 :                                     goto next_after_fail1486;
   11952            0 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 981, __FILE__, __LINE__, true);
   11953            0 :                                   return _r;
   11954              :                                 }
   11955           12 : next_after_fail1486:;
   11956              :                               }
   11957              :                           }
   11958              :                         }
   11959              :                       break;
   11960              :                     default:;
   11961              :                     }
   11962              :                   break;
   11963              :                 default:;
   11964              :                 }
   11965              :             }
   11966              :           break;
   11967              :         default:;
   11968              :         }
   11969              :       break;
   11970     66378635 :     default:;
   11971              :     }
   11972     66378635 :   switch (TREE_CODE (_p1))
   11973              :     {
   11974       864691 :     case CALL_EXPR:
   11975       864691 :       switch (get_call_combined_fn (_p1))
   11976              :         {
   11977            0 :         case CFN_BUILT_IN_LDEXPF:
   11978            0 :           if (call_expr_nargs (_p1) == 2)
   11979              :     {
   11980            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
   11981            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
   11982            0 :               switch (TREE_CODE (_q30))
   11983              :                 {
   11984            0 :                 case REAL_CST:
   11985            0 :                   {
   11986            0 :                     {
   11987            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
   11988            0 :                       tree res = generic_simplify_202 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LDEXPF);
   11989            0 :                       if (res) return res;
   11990              :                     }
   11991            0 :                     break;
   11992              :                   }
   11993              :                 default:;
   11994              :                 }
   11995              :             }
   11996              :           break;
   11997            0 :         case CFN_BUILT_IN_LDEXPL:
   11998            0 :           if (call_expr_nargs (_p1) == 2)
   11999              :     {
   12000            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
   12001            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
   12002            0 :               switch (TREE_CODE (_q30))
   12003              :                 {
   12004            0 :                 case REAL_CST:
   12005            0 :                   {
   12006            0 :                     {
   12007            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
   12008            0 :                       tree res = generic_simplify_202 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LDEXPL);
   12009            0 :                       if (res) return res;
   12010              :                     }
   12011            0 :                     break;
   12012              :                   }
   12013              :                 default:;
   12014              :                 }
   12015              :             }
   12016              :           break;
   12017            0 :         case CFN_LDEXP:
   12018            0 :           if (call_expr_nargs (_p1) == 2)
   12019              :     {
   12020            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
   12021            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
   12022            0 :               switch (TREE_CODE (_q30))
   12023              :                 {
   12024            0 :                 case REAL_CST:
   12025            0 :                   {
   12026            0 :                     {
   12027            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
   12028            0 :                       tree res = generic_simplify_202 (loc, type, _p0, _p1, captures, CFN_LDEXP);
   12029            0 :                       if (res) return res;
   12030              :                     }
   12031            0 :                     break;
   12032              :                   }
   12033              :                 default:;
   12034              :                 }
   12035              :             }
   12036              :           break;
   12037            0 :         case CFN_BUILT_IN_LDEXP:
   12038            0 :           if (call_expr_nargs (_p1) == 2)
   12039              :     {
   12040            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
   12041            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
   12042            0 :               switch (TREE_CODE (_q30))
   12043              :                 {
   12044            0 :                 case REAL_CST:
   12045            0 :                   {
   12046            0 :                     {
   12047            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
   12048            0 :                       tree res = generic_simplify_202 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LDEXP);
   12049            0 :                       if (res) return res;
   12050              :                     }
   12051            0 :                     break;
   12052              :                   }
   12053              :                 default:;
   12054              :                 }
   12055              :             }
   12056              :           break;
   12057              :         default:;
   12058              :         }
   12059              :       break;
   12060     66378635 :     default:;
   12061              :     }
   12062     66378635 :   switch (TREE_CODE (_p0))
   12063              :     {
   12064      2416270 :     case CALL_EXPR:
   12065      2416270 :       switch (get_call_combined_fn (_p0))
   12066              :         {
   12067           29 :         case CFN_BUILT_IN_COS:
   12068           29 :           if (call_expr_nargs (_p0) == 1)
   12069              :     {
   12070           29 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12071           29 :               switch (TREE_CODE (_p1))
   12072              :                 {
   12073            4 :                 case CALL_EXPR:
   12074            4 :                   switch (get_call_combined_fn (_p1))
   12075              :                     {
   12076            2 :                     case CFN_BUILT_IN_TAN:
   12077            2 :                       if (call_expr_nargs (_p1) == 1)
   12078              :     {
   12079            2 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   12080            2 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
   12081              :                             {
   12082            2 :                               {
   12083            2 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _p0 };
   12084            2 :                                 tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_TAN, CFN_BUILT_IN_COS, CFN_BUILT_IN_SIN);
   12085            2 :                                 if (res) return res;
   12086              :                               }
   12087              :                             }
   12088              :                         }
   12089              :                       break;
   12090              :                     default:;
   12091              :                     }
   12092              :                   break;
   12093              :                 default:;
   12094              :                 }
   12095              :             }
   12096              :           break;
   12097            2 :         case CFN_BUILT_IN_TAN:
   12098            2 :           if (call_expr_nargs (_p0) == 1)
   12099              :     {
   12100            2 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12101            2 :               switch (TREE_CODE (_p1))
   12102              :                 {
   12103            2 :                 case CALL_EXPR:
   12104            2 :                   switch (get_call_combined_fn (_p1))
   12105              :                     {
   12106            2 :                     case CFN_BUILT_IN_COS:
   12107            2 :                       if (call_expr_nargs (_p1) == 1)
   12108              :     {
   12109            2 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   12110            2 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
   12111              :                             {
   12112            2 :                               {
   12113            2 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   12114            2 :                                 tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_TAN, CFN_BUILT_IN_COS, CFN_BUILT_IN_SIN);
   12115            2 :                                 if (res) return res;
   12116              :                               }
   12117              :                             }
   12118              :                         }
   12119              :                       break;
   12120              :                     default:;
   12121              :                     }
   12122              :                   break;
   12123              :                 default:;
   12124              :                 }
   12125              :             }
   12126              :           break;
   12127           18 :         case CFN_BUILT_IN_COSF:
   12128           18 :           if (call_expr_nargs (_p0) == 1)
   12129              :     {
   12130           18 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12131           18 :               switch (TREE_CODE (_p1))
   12132              :                 {
   12133            9 :                 case CALL_EXPR:
   12134            9 :                   switch (get_call_combined_fn (_p1))
   12135              :                     {
   12136            2 :                     case CFN_BUILT_IN_TANF:
   12137            2 :                       if (call_expr_nargs (_p1) == 1)
   12138              :     {
   12139            2 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   12140            2 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
   12141              :                             {
   12142            2 :                               {
   12143            2 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _p0 };
   12144            2 :                                 tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_TANF, CFN_BUILT_IN_COSF, CFN_BUILT_IN_SINF);
   12145            2 :                                 if (res) return res;
   12146              :                               }
   12147              :                             }
   12148              :                         }
   12149              :                       break;
   12150              :                     default:;
   12151              :                     }
   12152              :                   break;
   12153              :                 default:;
   12154              :                 }
   12155              :             }
   12156              :           break;
   12157            2 :         case CFN_BUILT_IN_COSL:
   12158            2 :           if (call_expr_nargs (_p0) == 1)
   12159              :     {
   12160            2 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12161            2 :               switch (TREE_CODE (_p1))
   12162              :                 {
   12163            2 :                 case CALL_EXPR:
   12164            2 :                   switch (get_call_combined_fn (_p1))
   12165              :                     {
   12166            2 :                     case CFN_BUILT_IN_TANL:
   12167            2 :                       if (call_expr_nargs (_p1) == 1)
   12168              :     {
   12169            2 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   12170            2 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
   12171              :                             {
   12172            2 :                               {
   12173            2 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _p0 };
   12174            2 :                                 tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_TANL, CFN_BUILT_IN_COSL, CFN_BUILT_IN_SINL);
   12175            2 :                                 if (res) return res;
   12176              :                               }
   12177              :                             }
   12178              :                         }
   12179              :                       break;
   12180              :                     default:;
   12181              :                     }
   12182              :                   break;
   12183              :                 default:;
   12184              :                 }
   12185              :             }
   12186              :           break;
   12187            2 :         case CFN_BUILT_IN_TANF:
   12188            2 :           if (call_expr_nargs (_p0) == 1)
   12189              :     {
   12190            2 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12191            2 :               switch (TREE_CODE (_p1))
   12192              :                 {
   12193            2 :                 case CALL_EXPR:
   12194            2 :                   switch (get_call_combined_fn (_p1))
   12195              :                     {
   12196            2 :                     case CFN_BUILT_IN_COSF:
   12197            2 :                       if (call_expr_nargs (_p1) == 1)
   12198              :     {
   12199            2 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   12200            2 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
   12201              :                             {
   12202            2 :                               {
   12203            2 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   12204            2 :                                 tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_TANF, CFN_BUILT_IN_COSF, CFN_BUILT_IN_SINF);
   12205            2 :                                 if (res) return res;
   12206              :                               }
   12207              :                             }
   12208              :                         }
   12209              :                       break;
   12210              :                     default:;
   12211              :                     }
   12212              :                   break;
   12213              :                 default:;
   12214              :                 }
   12215              :             }
   12216              :           break;
   12217            2 :         case CFN_BUILT_IN_TANL:
   12218            2 :           if (call_expr_nargs (_p0) == 1)
   12219              :     {
   12220            2 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12221            2 :               switch (TREE_CODE (_p1))
   12222              :                 {
   12223            2 :                 case CALL_EXPR:
   12224            2 :                   switch (get_call_combined_fn (_p1))
   12225              :                     {
   12226            2 :                     case CFN_BUILT_IN_COSL:
   12227            2 :                       if (call_expr_nargs (_p1) == 1)
   12228              :     {
   12229            2 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   12230            2 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
   12231              :                             {
   12232            2 :                               {
   12233            2 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   12234            2 :                                 tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_TANL, CFN_BUILT_IN_COSL, CFN_BUILT_IN_SINL);
   12235            2 :                                 if (res) return res;
   12236              :                               }
   12237              :                             }
   12238              :                         }
   12239              :                       break;
   12240              :                     default:;
   12241              :                     }
   12242              :                   break;
   12243              :                 default:;
   12244              :                 }
   12245              :             }
   12246              :           break;
   12247            0 :         case CFN_COS:
   12248            0 :           if (call_expr_nargs (_p0) == 1)
   12249              :     {
   12250            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12251            0 :               switch (TREE_CODE (_p1))
   12252              :                 {
   12253            0 :                 case CALL_EXPR:
   12254            0 :                   switch (get_call_combined_fn (_p1))
   12255              :                     {
   12256            0 :                     case CFN_TAN:
   12257            0 :                       if (call_expr_nargs (_p1) == 1)
   12258              :     {
   12259            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   12260            0 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
   12261              :                             {
   12262            0 :                               {
   12263            0 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _p0 };
   12264            0 :                                 tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, CFN_TAN, CFN_COS, CFN_SIN);
   12265            0 :                                 if (res) return res;
   12266              :                               }
   12267              :                             }
   12268              :                         }
   12269              :                       break;
   12270              :                     default:;
   12271              :                     }
   12272              :                   break;
   12273              :                 default:;
   12274              :                 }
   12275              :             }
   12276              :           break;
   12277            0 :         case CFN_TAN:
   12278            0 :           if (call_expr_nargs (_p0) == 1)
   12279              :     {
   12280            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12281            0 :               switch (TREE_CODE (_p1))
   12282              :                 {
   12283            0 :                 case CALL_EXPR:
   12284            0 :                   switch (get_call_combined_fn (_p1))
   12285              :                     {
   12286            0 :                     case CFN_COS:
   12287            0 :                       if (call_expr_nargs (_p1) == 1)
   12288              :     {
   12289            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   12290            0 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
   12291              :                             {
   12292            0 :                               {
   12293            0 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   12294            0 :                                 tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, CFN_TAN, CFN_COS, CFN_SIN);
   12295            0 :                                 if (res) return res;
   12296              :                               }
   12297              :                             }
   12298              :                         }
   12299              :                       break;
   12300              :                     default:;
   12301              :                     }
   12302              :                   break;
   12303              :                 default:;
   12304              :                 }
   12305              :             }
   12306              :           break;
   12307              :         default:;
   12308              :         }
   12309              :       break;
   12310     66378623 :     default:;
   12311              :     }
   12312     66378623 :   switch (TREE_CODE (_p1))
   12313              :     {
   12314       864679 :     case CALL_EXPR:
   12315       864679 :       switch (get_call_combined_fn (_p1))
   12316              :         {
   12317           60 :         case CFN_BUILT_IN_POW:
   12318           60 :           if (call_expr_nargs (_p1) == 2)
   12319              :     {
   12320           60 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
   12321           60 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
   12322           60 :               if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
   12323              :                 {
   12324            0 :                   switch (TREE_CODE (_q31))
   12325              :                     {
   12326            0 :                     case REAL_CST:
   12327            0 :                       {
   12328            0 :                         {
   12329            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
   12330            0 :                           tree res = generic_simplify_200 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POW);
   12331            0 :                           if (res) return res;
   12332              :                         }
   12333            0 :                         break;
   12334              :                       }
   12335              :                     default:;
   12336              :                     }
   12337              :                 }
   12338              :             }
   12339              :           break;
   12340           23 :         case CFN_BUILT_IN_POWF:
   12341           23 :           if (call_expr_nargs (_p1) == 2)
   12342              :     {
   12343           23 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
   12344           23 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
   12345           23 :               if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
   12346              :                 {
   12347            0 :                   switch (TREE_CODE (_q31))
   12348              :                     {
   12349            0 :                     case REAL_CST:
   12350            0 :                       {
   12351            0 :                         {
   12352            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
   12353            0 :                           tree res = generic_simplify_200 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWF);
   12354            0 :                           if (res) return res;
   12355              :                         }
   12356            0 :                         break;
   12357              :                       }
   12358              :                     default:;
   12359              :                     }
   12360              :                 }
   12361              :             }
   12362              :           break;
   12363           12 :         case CFN_BUILT_IN_POWL:
   12364           12 :           if (call_expr_nargs (_p1) == 2)
   12365              :     {
   12366           12 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
   12367           12 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
   12368           12 :               if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
   12369              :                 {
   12370            0 :                   switch (TREE_CODE (_q31))
   12371              :                     {
   12372            0 :                     case REAL_CST:
   12373            0 :                       {
   12374            0 :                         {
   12375            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
   12376            0 :                           tree res = generic_simplify_200 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWL);
   12377            0 :                           if (res) return res;
   12378              :                         }
   12379            0 :                         break;
   12380              :                       }
   12381              :                     default:;
   12382              :                     }
   12383              :                 }
   12384              :             }
   12385              :           break;
   12386            0 :         case CFN_POW:
   12387            0 :           if (call_expr_nargs (_p1) == 2)
   12388              :     {
   12389            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
   12390            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
   12391            0 :               if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
   12392              :                 {
   12393            0 :                   switch (TREE_CODE (_q31))
   12394              :                     {
   12395            0 :                     case REAL_CST:
   12396            0 :                       {
   12397            0 :                         {
   12398            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
   12399            0 :                           tree res = generic_simplify_200 (loc, type, _p0, _p1, captures, CFN_POW);
   12400            0 :                           if (res) return res;
   12401              :                         }
   12402            0 :                         break;
   12403              :                       }
   12404              :                     default:;
   12405              :                     }
   12406              :                 }
   12407              :             }
   12408              :           break;
   12409              :         default:;
   12410              :         }
   12411              :       break;
   12412     66378623 :     default:;
   12413              :     }
   12414     66378623 :   switch (TREE_CODE (_p0))
   12415              :     {
   12416            1 :     case VEC_PERM_EXPR:
   12417            1 :       {
   12418            1 :         tree _q20 = TREE_OPERAND (_p0, 0);
   12419            1 :         tree _q21 = TREE_OPERAND (_p0, 1);
   12420            1 :         tree _q22 = TREE_OPERAND (_p0, 2);
   12421            1 :         if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
   12422              :           {
   12423            1 :             switch (TREE_CODE (_p1))
   12424              :               {
   12425            0 :               case VEC_PERM_EXPR:
   12426            0 :                 {
   12427            0 :                   tree _q60 = TREE_OPERAND (_p1, 0);
   12428            0 :                   tree _q61 = TREE_OPERAND (_p1, 1);
   12429            0 :                   tree _q62 = TREE_OPERAND (_p1, 2);
   12430            0 :                   if ((_q61 == _q60 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q60, 0) && types_match (_q61, _q60)))
   12431              :                     {
   12432            0 :                       if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
   12433              :                         {
   12434            0 :                           {
   12435            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q22, _q60 };
   12436            0 :                             if (VECTOR_INTEGER_TYPE_P (type)
   12437              : )
   12438              :                               {
   12439            0 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1487;
   12440            0 :                                 {
   12441            0 :                                   tree res_op0;
   12442            0 :                                   {
   12443            0 :                                     tree _o1[2], _r1;
   12444            0 :                                     _o1[0] = captures[0];
   12445            0 :                                     _o1[1] = captures[2];
   12446            0 :                                     _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   12447            0 :                                     captures[3] = _r1;
   12448              :                                   }
   12449            0 :                                   res_op0 = unshare_expr (captures[3]);
   12450            0 :                                   tree res_op1;
   12451            0 :                                   res_op1 = captures[3];
   12452            0 :                                   tree res_op2;
   12453            0 :                                   res_op2 = captures[1];
   12454            0 :                                   tree _r;
   12455            0 :                                   _r = fold_build3_loc (loc, VEC_PERM_EXPR, type, res_op0, res_op1, res_op2);
   12456            0 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 900, __FILE__, __LINE__, true);
   12457            0 :                                   return _r;
   12458              :                                 }
   12459            0 : next_after_fail1487:;
   12460              :                               }
   12461              :                           }
   12462              :                         }
   12463              :                     }
   12464              :                   break;
   12465              :                 }
   12466            1 :               default:;
   12467              :               }
   12468            1 :             switch (TREE_CODE (_q22))
   12469              :               {
   12470            0 :               case VECTOR_CST:
   12471            0 :                 {
   12472            0 :                   switch (TREE_CODE (_p1))
   12473              :                     {
   12474            0 :                     case VEC_PERM_EXPR:
   12475            0 :                       {
   12476            0 :                         tree _q60 = TREE_OPERAND (_p1, 0);
   12477            0 :                         tree _q61 = TREE_OPERAND (_p1, 1);
   12478            0 :                         tree _q62 = TREE_OPERAND (_p1, 2);
   12479            0 :                         if ((_q61 == _q60 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q60, 0) && types_match (_q61, _q60)))
   12480              :                           {
   12481            0 :                             if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
   12482              :                               {
   12483            0 :                                 switch (TREE_CODE (_q62))
   12484              :                                   {
   12485            0 :                                   case VECTOR_CST:
   12486            0 :                                     {
   12487            0 :                                       {
   12488            0 :                                         tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q22, _q60 };
   12489            0 :                                         tree res = generic_simplify_85 (loc, type, _p0, _p1, captures, MULT_EXPR);
   12490            0 :                                         if (res) return res;
   12491              :                                       }
   12492            0 :                                       break;
   12493              :                                     }
   12494              :                                   default:;
   12495              :                                   }
   12496              :                               }
   12497              :                           }
   12498              :                         break;
   12499              :                       }
   12500              :                     default:;
   12501              :                     }
   12502              :                   break;
   12503              :                 }
   12504              :               default:;
   12505              :               }
   12506              :           }
   12507              :         break;
   12508              :       }
   12509      2416258 :     case CALL_EXPR:
   12510      2416258 :       switch (get_call_combined_fn (_p0))
   12511              :         {
   12512          115 :         case CFN_BUILT_IN_POW:
   12513          115 :           if (call_expr_nargs (_p0) == 2)
   12514              :     {
   12515          115 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12516          115 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   12517          115 :               switch (TREE_CODE (_p1))
   12518              :                 {
   12519           80 :                 case CALL_EXPR:
   12520           80 :                   switch (get_call_combined_fn (_p1))
   12521              :                     {
   12522           20 :                     case CFN_BUILT_IN_POW:
   12523           20 :                       if (call_expr_nargs (_p1) == 2)
   12524              :     {
   12525           20 :                           tree _q50 = CALL_EXPR_ARG (_p1, 0);
   12526           20 :                           tree _q51 = CALL_EXPR_ARG (_p1, 1);
   12527           20 :                           if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
   12528              :                             {
   12529           14 :                               {
   12530           14 :                                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
   12531           14 :                                 tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POW);
   12532           14 :                                 if (res) return res;
   12533              :                               }
   12534              :                             }
   12535            6 :                           if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
   12536              :                             {
   12537            2 :                               {
   12538            2 :                                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   12539            2 :                                 tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POW);
   12540            2 :                                 if (res) return res;
   12541              :                               }
   12542              :                             }
   12543              :                         }
   12544              :                       break;
   12545              :                     default:;
   12546              :                     }
   12547              :                   break;
   12548              :                 default:;
   12549              :                 }
   12550              :             }
   12551              :           break;
   12552           19 :         case CFN_BUILT_IN_POWF:
   12553           19 :           if (call_expr_nargs (_p0) == 2)
   12554              :     {
   12555           19 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12556           19 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   12557           19 :               switch (TREE_CODE (_p1))
   12558              :                 {
   12559           13 :                 case CALL_EXPR:
   12560           13 :                   switch (get_call_combined_fn (_p1))
   12561              :                     {
   12562           13 :                     case CFN_BUILT_IN_POWF:
   12563           13 :                       if (call_expr_nargs (_p1) == 2)
   12564              :     {
   12565           13 :                           tree _q50 = CALL_EXPR_ARG (_p1, 0);
   12566           13 :                           tree _q51 = CALL_EXPR_ARG (_p1, 1);
   12567           13 :                           if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
   12568              :                             {
   12569           12 :                               {
   12570           12 :                                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
   12571           12 :                                 tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWF);
   12572           12 :                                 if (res) return res;
   12573              :                               }
   12574              :                             }
   12575            1 :                           if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
   12576              :                             {
   12577            0 :                               {
   12578            0 :                                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   12579            0 :                                 tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWF);
   12580            0 :                                 if (res) return res;
   12581              :                               }
   12582              :                             }
   12583              :                         }
   12584              :                       break;
   12585              :                     default:;
   12586              :                     }
   12587              :                   break;
   12588              :                 default:;
   12589              :                 }
   12590              :             }
   12591              :           break;
   12592           35 :         case CFN_BUILT_IN_POWI:
   12593           35 :           if (call_expr_nargs (_p0) == 2)
   12594              :     {
   12595           35 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12596           35 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   12597           35 :               switch (TREE_CODE (_p1))
   12598              :                 {
   12599            0 :                 case CALL_EXPR:
   12600            0 :                   switch (get_call_combined_fn (_p1))
   12601              :                     {
   12602            0 :                     case CFN_BUILT_IN_POWI:
   12603            0 :                       if (call_expr_nargs (_p1) == 2)
   12604              :     {
   12605            0 :                           tree _q50 = CALL_EXPR_ARG (_p1, 0);
   12606            0 :                           tree _q51 = CALL_EXPR_ARG (_p1, 1);
   12607            0 :                           if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
   12608              :                             {
   12609            0 :                               {
   12610            0 :                                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   12611            0 :                                 if (flag_unsafe_math_optimizations && canonicalize_math_p ()
   12612              : )
   12613              :                                   {
   12614            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1488;
   12615            0 :                                     {
   12616            0 :                                       tree res_op0;
   12617            0 :                                       {
   12618            0 :                                         tree _o1[2], _r1;
   12619            0 :                                         _o1[0] = captures[1];
   12620            0 :                                         _o1[1] = captures[4];
   12621            0 :                                         _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   12622            0 :                                         res_op0 = _r1;
   12623              :                                       }
   12624            0 :                                       tree res_op1;
   12625            0 :                                       res_op1 = captures[2];
   12626            0 :                                       tree _r;
   12627            0 :                                       _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POWI, type, 2, res_op0, res_op1);
   12628            0 :                                       if (!_r)
   12629            0 :                                         goto next_after_fail1488;
   12630            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 983, __FILE__, __LINE__, true);
   12631            0 :                                       return _r;
   12632              :                                     }
   12633            0 : next_after_fail1488:;
   12634              :                                   }
   12635              :                               }
   12636              :                             }
   12637              :                         }
   12638              :                       break;
   12639              :                     default:;
   12640              :                     }
   12641              :                   break;
   12642              :                 default:;
   12643              :                 }
   12644              :             }
   12645              :           break;
   12646           12 :         case CFN_BUILT_IN_POWL:
   12647           12 :           if (call_expr_nargs (_p0) == 2)
   12648              :     {
   12649           12 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12650           12 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   12651           12 :               switch (TREE_CODE (_p1))
   12652              :                 {
   12653           12 :                 case CALL_EXPR:
   12654           12 :                   switch (get_call_combined_fn (_p1))
   12655              :                     {
   12656           12 :                     case CFN_BUILT_IN_POWL:
   12657           12 :                       if (call_expr_nargs (_p1) == 2)
   12658              :     {
   12659           12 :                           tree _q50 = CALL_EXPR_ARG (_p1, 0);
   12660           12 :                           tree _q51 = CALL_EXPR_ARG (_p1, 1);
   12661           12 :                           if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
   12662              :                             {
   12663           12 :                               {
   12664           12 :                                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
   12665           12 :                                 tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWL);
   12666           12 :                                 if (res) return res;
   12667              :                               }
   12668              :                             }
   12669            0 :                           if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
   12670              :                             {
   12671            0 :                               {
   12672            0 :                                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   12673            0 :                                 tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWL);
   12674            0 :                                 if (res) return res;
   12675              :                               }
   12676              :                             }
   12677              :                         }
   12678              :                       break;
   12679              :                     default:;
   12680              :                     }
   12681              :                   break;
   12682              :                 default:;
   12683              :                 }
   12684              :             }
   12685              :           break;
   12686            0 :         case CFN_POW:
   12687            0 :           if (call_expr_nargs (_p0) == 2)
   12688              :     {
   12689            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12690            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   12691            0 :               switch (TREE_CODE (_p1))
   12692              :                 {
   12693            0 :                 case CALL_EXPR:
   12694            0 :                   switch (get_call_combined_fn (_p1))
   12695              :                     {
   12696            0 :                     case CFN_POW:
   12697            0 :                       if (call_expr_nargs (_p1) == 2)
   12698              :     {
   12699            0 :                           tree _q50 = CALL_EXPR_ARG (_p1, 0);
   12700            0 :                           tree _q51 = CALL_EXPR_ARG (_p1, 1);
   12701            0 :                           if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
   12702              :                             {
   12703            0 :                               {
   12704            0 :                                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
   12705            0 :                                 tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, CFN_POW);
   12706            0 :                                 if (res) return res;
   12707              :                               }
   12708              :                             }
   12709            0 :                           if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
   12710              :                             {
   12711            0 :                               {
   12712            0 :                                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   12713            0 :                                 tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, CFN_POW);
   12714            0 :                                 if (res) return res;
   12715              :                               }
   12716              :                             }
   12717              :                         }
   12718              :                       break;
   12719              :                     default:;
   12720              :                     }
   12721              :                   break;
   12722              :                 default:;
   12723              :                 }
   12724              :             }
   12725              :           break;
   12726           14 :         case CFN_BUILT_IN_POWIF:
   12727           14 :           if (call_expr_nargs (_p0) == 2)
   12728              :     {
   12729           14 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12730           14 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   12731           14 :               switch (TREE_CODE (_p1))
   12732              :                 {
   12733            0 :                 case CALL_EXPR:
   12734            0 :                   switch (get_call_combined_fn (_p1))
   12735              :                     {
   12736            0 :                     case CFN_BUILT_IN_POWIF:
   12737            0 :                       if (call_expr_nargs (_p1) == 2)
   12738              :     {
   12739            0 :                           tree _q50 = CALL_EXPR_ARG (_p1, 0);
   12740            0 :                           tree _q51 = CALL_EXPR_ARG (_p1, 1);
   12741            0 :                           if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
   12742              :                             {
   12743            0 :                               {
   12744            0 :                                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   12745            0 :                                 if (flag_unsafe_math_optimizations && canonicalize_math_p ()
   12746              : )
   12747              :                                   {
   12748            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1489;
   12749            0 :                                     {
   12750            0 :                                       tree res_op0;
   12751            0 :                                       {
   12752            0 :                                         tree _o1[2], _r1;
   12753            0 :                                         _o1[0] = captures[1];
   12754            0 :                                         _o1[1] = captures[4];
   12755            0 :                                         _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   12756            0 :                                         res_op0 = _r1;
   12757              :                                       }
   12758            0 :                                       tree res_op1;
   12759            0 :                                       res_op1 = captures[2];
   12760            0 :                                       tree _r;
   12761            0 :                                       _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POWIF, type, 2, res_op0, res_op1);
   12762            0 :                                       if (!_r)
   12763            0 :                                         goto next_after_fail1489;
   12764            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 983, __FILE__, __LINE__, true);
   12765            0 :                                       return _r;
   12766              :                                     }
   12767            0 : next_after_fail1489:;
   12768              :                                   }
   12769              :                               }
   12770              :                             }
   12771              :                         }
   12772              :                       break;
   12773              :                     default:;
   12774              :                     }
   12775              :                   break;
   12776              :                 default:;
   12777              :                 }
   12778              :             }
   12779              :           break;
   12780            5 :         case CFN_BUILT_IN_POWIL:
   12781            5 :           if (call_expr_nargs (_p0) == 2)
   12782              :     {
   12783            5 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12784            5 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   12785            5 :               switch (TREE_CODE (_p1))
   12786              :                 {
   12787            0 :                 case CALL_EXPR:
   12788            0 :                   switch (get_call_combined_fn (_p1))
   12789              :                     {
   12790            0 :                     case CFN_BUILT_IN_POWIL:
   12791            0 :                       if (call_expr_nargs (_p1) == 2)
   12792              :     {
   12793            0 :                           tree _q50 = CALL_EXPR_ARG (_p1, 0);
   12794            0 :                           tree _q51 = CALL_EXPR_ARG (_p1, 1);
   12795            0 :                           if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
   12796              :                             {
   12797            0 :                               {
   12798            0 :                                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   12799            0 :                                 if (flag_unsafe_math_optimizations && canonicalize_math_p ()
   12800              : )
   12801              :                                   {
   12802            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1490;
   12803            0 :                                     {
   12804            0 :                                       tree res_op0;
   12805            0 :                                       {
   12806            0 :                                         tree _o1[2], _r1;
   12807            0 :                                         _o1[0] = captures[1];
   12808            0 :                                         _o1[1] = captures[4];
   12809            0 :                                         _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   12810            0 :                                         res_op0 = _r1;
   12811              :                                       }
   12812            0 :                                       tree res_op1;
   12813            0 :                                       res_op1 = captures[2];
   12814            0 :                                       tree _r;
   12815            0 :                                       _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POWIL, type, 2, res_op0, res_op1);
   12816            0 :                                       if (!_r)
   12817            0 :                                         goto next_after_fail1490;
   12818            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 983, __FILE__, __LINE__, true);
   12819            0 :                                       return _r;
   12820              :                                     }
   12821            0 : next_after_fail1490:;
   12822              :                                   }
   12823              :                               }
   12824              :                             }
   12825              :                         }
   12826              :                       break;
   12827              :                     default:;
   12828              :                     }
   12829              :                   break;
   12830              :                 default:;
   12831              :                 }
   12832              :             }
   12833              :           break;
   12834              :         default:;
   12835              :         }
   12836              :       break;
   12837              :     default:;
   12838              :     }
   12839              :   return NULL_TREE;
   12840              : }
   12841              : #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.