LCOV - code coverage report
Current view: top level - /mnt/build/buildbot/bld/build-lcov/gcc - generic-match-2.cc (source / functions) Coverage Total Hit
Test: gcc.info Lines: 40.7 % 7671 3121
Test Date: 2026-08-22 16:33:35 Functions: 56.9 % 72 41
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    109190140 : tree_logical_inverted_value (tree t, tree *res_ops)
      11              : {
      12    109190140 :   const tree type = TREE_TYPE (t);
      13    109190140 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
      14    109190140 :   if (TREE_SIDE_EFFECTS (t)) return false;
      15    100109860 :   switch (TREE_CODE (t))
      16              :     {
      17       620009 :     case TRUTH_NOT_EXPR:
      18       620009 :       {
      19       620009 :         tree _p0 = TREE_OPERAND (t, 0);
      20       620009 :         {
      21       620009 :           tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
      22       620009 :           {
      23       620009 :             res_ops[0] = captures[0];
      24       620009 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 23, __FILE__, __LINE__, false);
      25              :             return true;
      26              :           }
      27              :         }
      28       170668 :         break;
      29              :       }
      30       170668 :     case BIT_NOT_EXPR:
      31       170668 :       {
      32       170668 :         tree _p0 = TREE_OPERAND (t, 0);
      33       170668 :         if (tree_truth_valued_p (_p0))
      34              :           {
      35        12292 :             {
      36        12292 :               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
      37        12292 :               {
      38        12292 :                 res_ops[0] = captures[0];
      39        12292 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 24, __FILE__, __LINE__, false);
      40              :                 return true;
      41              :               }
      42              :             }
      43              :           }
      44              :         break;
      45              :       }
      46      1400858 :     case EQ_EXPR:
      47      1400858 :       {
      48      1400858 :         tree _p0 = TREE_OPERAND (t, 0);
      49      1400858 :         tree _p1 = TREE_OPERAND (t, 1);
      50      1400858 :         if (integer_zerop (_p1))
      51              :           {
      52       546533 :             {
      53       546533 :               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
      54       546533 :               {
      55       546533 :                 res_ops[0] = captures[0];
      56       546533 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 25, __FILE__, __LINE__, false);
      57              :                 return true;
      58              :               }
      59              :             }
      60              :           }
      61              :         break;
      62              :       }
      63      2192590 :     case NE_EXPR:
      64      2192590 :       {
      65      2192590 :         tree _p0 = TREE_OPERAND (t, 0);
      66      2192590 :         tree _p1 = TREE_OPERAND (t, 1);
      67      2192590 :         if (tree_truth_valued_p (_p0))
      68              :           {
      69         2715 :             if (integer_truep (_p1))
      70              :               {
      71            0 :                 {
      72            0 :                   tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
      73            0 :                   {
      74            0 :                     res_ops[0] = captures[0];
      75            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 26, __FILE__, __LINE__, false);
      76              :                     return true;
      77              :                   }
      78              :                 }
      79              :               }
      80              :           }
      81              :         break;
      82              :       }
      83       110936 :     case BIT_XOR_EXPR:
      84       110936 :       {
      85       110936 :         tree _p0 = TREE_OPERAND (t, 0);
      86       110936 :         tree _p1 = TREE_OPERAND (t, 1);
      87       110936 :         if (tree_truth_valued_p (_p0))
      88              :           {
      89        15846 :             if (integer_truep (_p1))
      90              :               {
      91            0 :                 {
      92            0 :                   tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
      93            0 :                   {
      94            0 :                     res_ops[0] = captures[0];
      95            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 27, __FILE__, __LINE__, false);
      96              :                     return true;
      97              :                   }
      98              :                 }
      99              :               }
     100              :           }
     101              :         break;
     102              :       }
     103              :     default:;
     104              :     }
     105              :   return false;
     106              : }
     107              : 
     108              : tree
     109           18 : generic_simplify_3 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     110              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     111              :  const enum tree_code ARG_UNUSED (op),
     112              :  const enum tree_code ARG_UNUSED (shift))
     113              : {
     114           18 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     115           18 :   if (INTEGRAL_TYPE_P (type)
     116              : )
     117              :     {
     118           18 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail74;
     119           18 :       {
     120           18 :         tree res_op0;
     121           18 :         {
     122           18 :           tree _o1[2], _r1;
     123           18 :           _o1[0] = captures[1];
     124           18 :           _o1[1] = captures[4];
     125           18 :           _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     126           18 :           res_op0 = _r1;
     127              :         }
     128           18 :         tree res_op1;
     129           18 :         res_op1 = captures[2];
     130           18 :         tree _r;
     131           18 :         _r = fold_build2_loc (loc, shift, type, res_op0, res_op1);
     132           18 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 51, __FILE__, __LINE__, true);
     133              :         return _r;
     134              :       }
     135            0 : next_after_fail74:;
     136              :     }
     137              :   return NULL_TREE;
     138              : }
     139              : 
     140              : tree
     141          589 : generic_simplify_11 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     142              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     143              : {
     144          589 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     145          589 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail85;
     146          589 :   {
     147          589 :     if (! tree_invariant_p (captures[3])) goto next_after_fail85;
     148            1 :     tree res_op0;
     149            1 :     {
     150            1 :       tree _o1[2], _r1;
     151            1 :       _o1[0] = captures[2];
     152            1 :       _o1[1] = unshare_expr (captures[3]);
     153            1 :       _r1 = fold_build2_loc (loc, BIT_IOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     154            1 :       res_op0 = _r1;
     155              :     }
     156            1 :     tree res_op1;
     157            1 :     {
     158            1 :       tree _o1[2], _r1;
     159            1 :       {
     160            1 :         tree _o2[1], _r2;
     161            1 :         _o2[0] = captures[4];
     162            1 :         _r2 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
     163            1 :         if (EXPR_P (_r2))
     164            0 :           goto next_after_fail85;
     165            1 :         _o1[0] = _r2;
     166              :       }
     167            1 :       _o1[1] = captures[3];
     168            1 :       _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     169            1 :       if (EXPR_P (_r1))
     170            0 :         goto next_after_fail85;
     171            1 :       res_op1 = _r1;
     172              :     }
     173            1 :     tree _r;
     174            1 :     _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
     175            1 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 60, __FILE__, __LINE__, true);
     176              :     return _r;
     177              :   }
     178          589 : next_after_fail85:;
     179              :   return NULL_TREE;
     180              : }
     181              : 
     182              : tree
     183           10 : generic_simplify_23 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     184              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     185              : {
     186           10 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     187           10 :   if (element_precision (type) <= element_precision (TREE_TYPE (captures[0]))
     188           10 :  && element_precision (type) <= element_precision (TREE_TYPE (captures[1]))
     189              : )
     190              :     {
     191           10 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail97;
     192           10 :       {
     193           10 :         tree res_op0;
     194           10 :         {
     195           10 :           tree _o1[1], _r1;
     196           10 :           _o1[0] = captures[0];
     197           10 :           if (TREE_TYPE (_o1[0]) != type)
     198              :             {
     199            0 :               _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
     200              :             }
     201              :           else
     202              :             _r1 = _o1[0];
     203           10 :           res_op0 = _r1;
     204              :         }
     205           10 :         tree res_op1;
     206           10 :         {
     207           10 :           tree _o1[1], _r1;
     208           10 :           _o1[0] = captures[1];
     209           10 :           if (TREE_TYPE (_o1[0]) != type)
     210              :             {
     211            0 :               _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
     212              :             }
     213              :           else
     214              :             _r1 = _o1[0];
     215           10 :           res_op1 = _r1;
     216              :         }
     217           10 :         tree _r;
     218           10 :         _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
     219           10 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 72, __FILE__, __LINE__, true);
     220              :         return _r;
     221              :       }
     222            0 : next_after_fail97:;
     223              :     }
     224              :   return NULL_TREE;
     225              : }
     226              : 
     227              : tree
     228           24 : generic_simplify_34 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     229              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     230              :  const enum tree_code ARG_UNUSED (op),
     231              :  const enum tree_code ARG_UNUSED (cmp),
     232              :  const enum tree_code ARG_UNUSED (icmp))
     233              : {
     234           24 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     235           24 :   if (invert_tree_comparison (cmp, HONOR_NANS (captures[2])) == icmp
     236              : )
     237              :     {
     238           24 :       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail110;
     239           24 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail110;
     240           24 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail110;
     241           24 :       {
     242           24 :         tree res_op0;
     243           24 :         res_op0 = captures[1];
     244           24 :         tree res_op1;
     245           24 :         res_op1 = captures[4];
     246           24 :         tree res_op2;
     247           24 :         res_op2 = captures[7];
     248           24 :         tree _r;
     249           24 :         _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
     250           24 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 84, __FILE__, __LINE__, true);
     251              :         return _r;
     252              :       }
     253           24 : next_after_fail110:;
     254              :     }
     255              :   return NULL_TREE;
     256              : }
     257              : 
     258              : tree
     259           56 : generic_simplify_39 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     260              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     261              :  const enum tree_code ARG_UNUSED (inner_op),
     262              :  const enum tree_code ARG_UNUSED (outer_op))
     263              : {
     264           56 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     265           56 :   {
     266           56 :  bool fail = false;
     267           56 :  wide_int zero_mask_not;
     268           56 :  wide_int C0;
     269           56 :  wide_int cst_emit;
     270           56 :  if (TREE_CODE (captures[1]) == SSA_NAME)
     271            0 :  zero_mask_not = get_nonzero_bits (captures[1]);
     272              :  else
     273              :  fail = true;
     274           56 :  if (inner_op == BIT_XOR_EXPR)
     275              :  {
     276           33 :  C0 = wi::bit_and_not (wi::to_wide (captures[2]), wi::to_wide (captures[3]));
     277           33 :  cst_emit = C0 | wi::to_wide (captures[3]);
     278              :  }
     279              :  else
     280              :  {
     281           23 :  C0 = wi::to_wide (captures[2]);
     282           23 :  cst_emit = C0 ^ wi::to_wide (captures[3]);
     283              :  }
     284           56 :       if (!fail && (C0 & zero_mask_not) == 0
     285              : )
     286              :         {
     287            0 :           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail115;
     288            0 :           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail115;
     289            0 :           if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail115;
     290            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail115;
     291            0 :           {
     292            0 :             tree res_op0;
     293            0 :             res_op0 = captures[1];
     294            0 :             tree res_op1;
     295            0 :             res_op1 =  wide_int_to_tree (type, cst_emit);
     296            0 :             tree _r;
     297            0 :             _r = fold_build2_loc (loc, outer_op, type, res_op0, res_op1);
     298            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 88, __FILE__, __LINE__, true);
     299              :             return _r;
     300              :           }
     301           56 : next_after_fail115:;
     302              :         }
     303              :       else
     304              :         {
     305           56 :           if (!fail && (wi::to_wide (captures[3]) & zero_mask_not) == 0
     306              : )
     307              :             {
     308            0 :               if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail116;
     309            0 :               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail116;
     310            0 :               if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail116;
     311            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail116;
     312            0 :               {
     313            0 :                 tree res_op0;
     314            0 :                 res_op0 = captures[1];
     315            0 :                 tree res_op1;
     316            0 :                 res_op1 =  wide_int_to_tree (type, cst_emit);
     317            0 :                 tree _r;
     318            0 :                 _r = fold_build2_loc (loc, inner_op, type, res_op0, res_op1);
     319            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 89, __FILE__, __LINE__, true);
     320              :                 return _r;
     321              :               }
     322           56 : next_after_fail116:;
     323              :             }
     324              :         }
     325           56 :   }
     326           56 :   return NULL_TREE;
     327              : }
     328              : 
     329              : tree
     330          312 : generic_simplify_54 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     331              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     332              :  const enum tree_code ARG_UNUSED (outer_op),
     333              :  const enum tree_code ARG_UNUSED (inner_op))
     334              : {
     335          312 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     336          312 :   if (real_zerop (captures[2])
     337           34 :  && real_zerop (captures[3])
     338          346 :  && !HONOR_SIGN_DEPENDENT_ROUNDING (type)
     339              : )
     340              :     {
     341           10 :       {
     342           10 :  bool inner_plus = ((inner_op == PLUS_EXPR)
     343           10 :  ^ REAL_VALUE_MINUS_ZERO (TREE_REAL_CST (captures[2])));
     344           10 :  bool outer_plus
     345           10 :  = ((outer_op == PLUS_EXPR)
     346           10 :  ^ REAL_VALUE_MINUS_ZERO (TREE_REAL_CST (captures[3])));
     347           10 :           if (outer_plus && !inner_plus
     348              : )
     349              :             {
     350            2 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail133;
     351            2 :               {
     352            2 :                 tree res_op0;
     353            2 :                 res_op0 = captures[1];
     354            2 :                 tree res_op1;
     355            2 :                 res_op1 = captures[3];
     356            2 :                 tree _r;
     357            2 :                 _r = fold_build2_loc (loc, outer_op, type, res_op0, res_op1);
     358            2 :                 if (TREE_SIDE_EFFECTS (captures[2]))
     359            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
     360            2 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 102, __FILE__, __LINE__, true);
     361              :                 return _r;
     362              :               }
     363            0 : next_after_fail133:;
     364              :             }
     365              :           else
     366              :             {
     367            8 :               if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail134;
     368            8 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail134;
     369            8 :               {
     370            8 :                 tree _r;
     371            8 :                 _r = captures[0];
     372            8 :                 if (TREE_SIDE_EFFECTS (captures[3]))
     373            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
     374            8 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 103, __FILE__, __LINE__, true);
     375              :                 return _r;
     376              :               }
     377          312 : next_after_fail134:;
     378              :             }
     379              :       }
     380              :     }
     381              :   return NULL_TREE;
     382              : }
     383              : 
     384              : tree
     385      7178340 : generic_simplify_71 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     386              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     387              :  const enum tree_code ARG_UNUSED (op))
     388              : {
     389      7178340 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     390      7178340 :   if (!TYPE_SATURATING (type)
     391              : )
     392              :     {
     393      7178340 :       if ((!FLOAT_TYPE_P (type) || flag_associative_math)
     394     13958977 :  && !FIXED_POINT_TYPE_P (type)
     395              : )
     396              :         {
     397      6780637 :           if (INTEGRAL_TYPE_P (type)
     398      6780339 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
     399      5452443 :  && TYPE_PRECISION (type) <= TYPE_PRECISION (TREE_TYPE (captures[0]))
     400      4640372 :  && types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
     401      4017723 :  && !TYPE_OVERFLOW_TRAPS (type)
     402     10798360 :  && !TYPE_OVERFLOW_SANITIZED (type)
     403              : )
     404              :             {
     405      4017452 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail159;
     406      4017452 :               {
     407      4017452 :                 tree res_op0;
     408      4017452 :                 {
     409      4017452 :                   tree _o1[2], _r1;
     410      4017452 :                   _o1[0] = captures[0];
     411      4017452 :                   _o1[1] = captures[1];
     412      4017452 :                   _r1 = fold_build2_loc (loc, op, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     413      4017452 :                   if (EXPR_P (_r1))
     414      4006821 :                     goto next_after_fail159;
     415        10631 :                   res_op0 = _r1;
     416              :                 }
     417        10631 :                 tree _r;
     418        10631 :                 _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
     419        10631 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 127, __FILE__, __LINE__, true);
     420              :                 return _r;
     421              :               }
     422      7178340 : next_after_fail159:;
     423              :             }
     424              :         }
     425              :     }
     426              :   return NULL_TREE;
     427              : }
     428              : 
     429              : tree
     430            0 : generic_simplify_81 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     431              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     432              : {
     433            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     434            0 :   if (VECTOR_TYPE_P (type)
     435            0 :  && known_eq (TYPE_VECTOR_SUBPARTS (type),
     436              :  TYPE_VECTOR_SUBPARTS (TREE_TYPE (captures[3])))
     437            0 :  && (TYPE_MODE (TREE_TYPE (type))
     438            0 :  == TYPE_MODE (TREE_TYPE (TREE_TYPE (captures[3]))))
     439              : )
     440              :     {
     441            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail170;
     442            0 :       {
     443            0 :         tree res_op0;
     444            0 :         res_op0 = captures[0];
     445            0 :         tree res_op1;
     446            0 :         {
     447            0 :           tree _o1[1], _r1;
     448            0 :           {
     449            0 :             tree _o2[3], _r2;
     450            0 :             _o2[0] = captures[2];
     451            0 :             {
     452            0 :               tree _o3[1], _r3;
     453            0 :               _o3[0] = captures[3];
     454            0 :               _r3 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o3[0]), _o3[0]);
     455            0 :               _o2[1] = _r3;
     456              :             }
     457            0 :             _o2[2] = captures[4];
     458            0 :             _r2 = fold_build3_loc (loc, VEC_COND_EXPR, TREE_TYPE (_o2[1]), _o2[0], _o2[1], _o2[2]);
     459            0 :             _o1[0] = _r2;
     460              :           }
     461            0 :           if (TREE_TYPE (_o1[0]) != type)
     462              :             {
     463            0 :               _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
     464              :             }
     465              :           else
     466              :             _r1 = _o1[0];
     467            0 :           res_op1 = _r1;
     468              :         }
     469            0 :         tree _r;
     470            0 :         _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
     471            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 138, __FILE__, __LINE__, true);
     472              :         return _r;
     473              :       }
     474            0 : next_after_fail170:;
     475              :     }
     476              :   return NULL_TREE;
     477              : }
     478              : 
     479              : tree
     480            0 : generic_simplify_88 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     481              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     482              :  const enum tree_code ARG_UNUSED (op))
     483              : {
     484            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     485            0 :   if (types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[3]))
     486            0 :  && ((ANY_INTEGRAL_TYPE_P (type)
     487            0 :  && !TYPE_OVERFLOW_TRAPS (type)
     488            0 :  && !TYPE_OVERFLOW_SANITIZED (type))
     489            0 :  || (FLOAT_TYPE_P (type)
     490            0 :  && flag_associative_math
     491            0 :  && !HONOR_SIGNED_ZEROS (type)
     492            0 :  && !flag_trapping_math))
     493            0 :  && target_supports_op_p (TREE_TYPE (captures[1]), op, optab_vector)
     494              : )
     495              :     {
     496            0 :       {
     497            0 :  tree vtype = (ANY_INTEGRAL_TYPE_P (type)
     498            0 :  ? unsigned_type_for (TREE_TYPE (captures[1]))
     499            0 :  : TREE_TYPE (captures[1]));
     500            0 :  tree stype = TREE_TYPE (vtype);
     501            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail178;
     502            0 :           {
     503            0 :             tree res_op0;
     504            0 :             {
     505            0 :               tree _o1[1], _r1;
     506            0 :               {
     507            0 :                 tree _o2[2], _r2;
     508            0 :                 {
     509            0 :                   tree _o3[1], _r3;
     510            0 :                   _o3[0] = captures[1];
     511            0 :                   if (TREE_TYPE (_o3[0]) != vtype)
     512              :                     {
     513            0 :                       _r3 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, vtype, _o3[0]);
     514              :                     }
     515              :                   else
     516              :                     _r3 = _o3[0];
     517            0 :                   _o2[0] = _r3;
     518              :                 }
     519            0 :                 {
     520            0 :                   tree _o3[1], _r3;
     521            0 :                   _o3[0] = captures[3];
     522            0 :                   if (TREE_TYPE (_o3[0]) != vtype)
     523              :                     {
     524            0 :                       _r3 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, vtype, _o3[0]);
     525              :                     }
     526              :                   else
     527              :                     _r3 = _o3[0];
     528            0 :                   _o2[1] = _r3;
     529              :                 }
     530            0 :                 _r2 = fold_build2_loc (loc, op, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
     531            0 :                 _o1[0] = _r2;
     532              :               }
     533            0 :               _r1 = maybe_build_call_expr_loc (loc, CFN_REDUC_PLUS, stype, 1, _o1[0]);
     534            0 :               if (!_r1)
     535            0 :                 goto next_after_fail178;
     536            0 :               res_op0 = _r1;
     537              :             }
     538            0 :             tree _r;
     539            0 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
     540            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 146, __FILE__, __LINE__, true);
     541              :             return _r;
     542              :           }
     543            0 : next_after_fail178:;
     544              :       }
     545              :     }
     546              :   return NULL_TREE;
     547              : }
     548              : 
     549              : tree
     550         3043 : generic_simplify_103 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     551              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     552              : {
     553         3043 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     554         3043 :   if (!TYPE_SATURATING (type)
     555              : )
     556              :     {
     557         3043 :       if (tree_nop_conversion_p (type, TREE_TYPE (captures[1]))
     558         3043 :  && !TYPE_OVERFLOW_SANITIZED (type)
     559              : )
     560              :         {
     561           13 :           {
     562           13 :  tree t1 = type;
     563           13 :  if (INTEGRAL_TYPE_P (type)
     564           21 :  && TYPE_OVERFLOW_WRAPS (type) != TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1])))
     565            8 :  t1 = TYPE_OVERFLOW_WRAPS (type) ? type : TREE_TYPE (captures[1]);
     566           13 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail193;
     567           13 :               {
     568           13 :                 tree res_op0;
     569           13 :                 {
     570           13 :                   tree _o1[2], _r1;
     571           13 :                   {
     572           13 :                     tree _o2[1], _r2;
     573           13 :                     _o2[0] = captures[0];
     574           13 :                     if (TREE_TYPE (_o2[0]) != t1)
     575              :                       {
     576            8 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, t1, _o2[0]);
     577              :                       }
     578              :                     else
     579              :                       _r2 = _o2[0];
     580           13 :                     _o1[0] = _r2;
     581              :                   }
     582           13 :                   {
     583           13 :                     tree _o2[1], _r2;
     584           13 :                     _o2[0] = captures[1];
     585           13 :                     if (TREE_TYPE (_o2[0]) != t1)
     586              :                       {
     587            0 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, t1, _o2[0]);
     588              :                       }
     589              :                     else
     590              :                       _r2 = _o2[0];
     591           13 :                     _o1[1] = _r2;
     592              :                   }
     593           13 :                   _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     594           13 :                   res_op0 = _r1;
     595              :                 }
     596           13 :                 tree _r;
     597           13 :                 _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
     598           13 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 160, __FILE__, __LINE__, true);
     599              :                 return _r;
     600              :               }
     601            0 : next_after_fail193:;
     602              :           }
     603              :         }
     604              :     }
     605              :   return NULL_TREE;
     606              : }
     607              : 
     608              : tree
     609            0 : generic_simplify_115 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     610              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     611              : {
     612            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     613            0 :   if (VECTOR_TYPE_P (type)
     614            0 :  && known_eq (TYPE_VECTOR_SUBPARTS (type),
     615              :  TYPE_VECTOR_SUBPARTS (TREE_TYPE (captures[3])))
     616            0 :  && (TYPE_MODE (TREE_TYPE (type))
     617            0 :  == TYPE_MODE (TREE_TYPE (TREE_TYPE (captures[3]))))
     618              : )
     619              :     {
     620            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail211;
     621            0 :       {
     622            0 :         tree res_op0;
     623            0 :         res_op0 = captures[0];
     624            0 :         tree res_op1;
     625            0 :         {
     626            0 :           tree _o1[1], _r1;
     627            0 :           {
     628            0 :             tree _o2[3], _r2;
     629            0 :             _o2[0] = captures[2];
     630            0 :             {
     631            0 :               tree _o3[1], _r3;
     632            0 :               _o3[0] = captures[3];
     633            0 :               _r3 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o3[0]), _o3[0]);
     634            0 :               _o2[1] = _r3;
     635              :             }
     636            0 :             _o2[2] = captures[4];
     637            0 :             _r2 = fold_build3_loc (loc, VEC_COND_EXPR, TREE_TYPE (_o2[1]), _o2[0], _o2[1], _o2[2]);
     638            0 :             _o1[0] = _r2;
     639              :           }
     640            0 :           if (TREE_TYPE (_o1[0]) != type)
     641              :             {
     642            0 :               _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o1[0]);
     643              :             }
     644              :           else
     645              :             _r1 = _o1[0];
     646            0 :           res_op1 = _r1;
     647              :         }
     648            0 :         tree _r;
     649            0 :         _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
     650            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 178, __FILE__, __LINE__, true);
     651              :         return _r;
     652              :       }
     653            0 : next_after_fail211:;
     654              :     }
     655              :   return NULL_TREE;
     656              : }
     657              : 
     658              : tree
     659            2 : generic_simplify_122 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     660              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     661              :  const enum tree_code ARG_UNUSED (bitop),
     662              :  const enum tree_code ARG_UNUSED (cmp))
     663              : {
     664            2 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     665            4 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
     666            0 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[4]))
     667            2 :  && TYPE_PRECISION (TREE_TYPE (captures[1])) == TYPE_PRECISION (TREE_TYPE (captures[4]))
     668              : )
     669              :     {
     670            0 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail221;
     671            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail221;
     672            0 :       {
     673            0 :         tree res_op0;
     674            0 :         {
     675            0 :           tree _o1[2], _r1;
     676            0 :           _o1[0] = captures[1];
     677            0 :           {
     678            0 :             tree _o2[1], _r2;
     679            0 :             _o2[0] = captures[4];
     680            0 :             if (TREE_TYPE (_o2[0]) != TREE_TYPE (_o1[0]))
     681              :               {
     682            0 :                 _r2 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (_o1[0]), _o2[0]);
     683              :               }
     684              :             else
     685              :               _r2 = _o2[0];
     686            0 :             _o1[1] = _r2;
     687              :           }
     688            0 :           _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     689            0 :           res_op0 = _r1;
     690              :         }
     691            0 :         tree res_op1;
     692            0 :         res_op1 = captures[2];
     693            0 :         tree _r;
     694            0 :         _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
     695            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 186, __FILE__, __LINE__, true);
     696              :         return _r;
     697              :       }
     698            2 : next_after_fail221:;
     699              :     }
     700              :   else
     701              :     {
     702            4 :       if (VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[1]))
     703            2 :  && VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[4]))
     704            2 :  && vector_nop_conversion_p (TREE_TYPE (captures[1]), TREE_TYPE (captures[4]))
     705            2 :  && single_use (captures[0]) && single_use (captures[3])
     706              : )
     707              :         {
     708            2 :           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail222;
     709            2 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail222;
     710            2 :           {
     711            2 :             tree res_op0;
     712            2 :             {
     713            2 :               tree _o1[2], _r1;
     714            2 :               _o1[0] = captures[1];
     715            2 :               {
     716            2 :                 tree _o2[1], _r2;
     717            2 :                 _o2[0] = captures[4];
     718            2 :                 if (TREE_TYPE (_o2[0]) != TREE_TYPE (_o1[0]))
     719              :                   {
     720            2 :                     _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, TREE_TYPE (_o1[0]), _o2[0]);
     721              :                   }
     722              :                 else
     723              :                   _r2 = _o2[0];
     724            2 :                 _o1[1] = _r2;
     725              :               }
     726            2 :               _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     727            2 :               res_op0 = _r1;
     728              :             }
     729            2 :             tree res_op1;
     730            2 :             res_op1 = captures[2];
     731            2 :             tree _r;
     732            2 :             _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
     733            2 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 187, __FILE__, __LINE__, true);
     734              :             return _r;
     735              :           }
     736            2 : next_after_fail222:;
     737              :         }
     738              :     }
     739              :   return NULL_TREE;
     740              : }
     741              : 
     742              : tree
     743            0 : generic_simplify_148 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     744              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     745              :  const enum tree_code ARG_UNUSED (op))
     746              : {
     747            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     748            0 :   if (tree_nop_conversion_p (type, TREE_TYPE (captures[3]))
     749            0 :  && tree_nop_conversion_p (type, TREE_TYPE (captures[6]))
     750              : )
     751              :     {
     752            0 :       if (single_use (captures[4]) && single_use (captures[5])
     753              : )
     754              :         {
     755            0 :           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail248;
     756            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail248;
     757            0 :           {
     758            0 :             tree res_op0;
     759            0 :             res_op0 = captures[0];
     760            0 :             tree res_op1;
     761            0 :             {
     762            0 :               tree _o1[1], _r1;
     763            0 :               _o1[0] = captures[6];
     764            0 :               if (TREE_TYPE (_o1[0]) != type)
     765              :                 {
     766            0 :                   _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
     767              :                 }
     768              :               else
     769              :                 _r1 = _o1[0];
     770            0 :               res_op1 = _r1;
     771              :             }
     772            0 :             tree _r;
     773            0 :             _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
     774            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 206, __FILE__, __LINE__, true);
     775              :             return _r;
     776              :           }
     777            0 : next_after_fail248:;
     778              :         }
     779              :       else
     780              :         {
     781              :           if (single_use (captures[0]) && single_use (captures[1])
     782              : )
     783              :             {
     784              :               if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail249;
     785              :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail249;
     786              :               {
     787              :                 tree res_op0;
     788              :                 {
     789              :                   tree _o1[1], _r1;
     790              :                   _o1[0] = captures[3];
     791              :                   if (TREE_TYPE (_o1[0]) != type)
     792              :                     {
     793              :                       _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
     794              :                     }
     795              :                   else
     796              :                     _r1 = _o1[0];
     797              :                   res_op0 = _r1;
     798              :                 }
     799              :                 tree res_op1;
     800              :                 res_op1 = captures[4];
     801              :                 tree _r;
     802              :                 _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
     803              :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 207, __FILE__, __LINE__, true);
     804              :                 return _r;
     805              :               }
     806            0 : next_after_fail249:;
     807              :             }
     808              :         }
     809              :     }
     810              :   return NULL_TREE;
     811              : }
     812              : 
     813              : tree
     814            0 : generic_simplify_162 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     815              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     816              :  const enum tree_code ARG_UNUSED (cmp),
     817              :  const enum tree_code ARG_UNUSED (icmp))
     818              : {
     819            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     820            0 :   if (INTEGRAL_TYPE_P (type)
     821            0 :  && invert_tree_comparison (cmp, HONOR_NANS (captures[1])) == icmp
     822            0 :  && canonicalize_math_after_vectorization_p ()
     823              : )
     824              :     {
     825              :       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail267;
     826              :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail267;
     827              :       {
     828              :         tree res_op0;
     829              :         {
     830              :           tree _o1[3], _r1;
     831              :           _o1[0] = captures[0];
     832              :           _o1[1] = captures[3];
     833              :           _o1[2] = captures[5];
     834              :           _r1 = fold_build3_loc (loc, COND_EXPR, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2]);
     835              :           res_op0 = _r1;
     836              :         }
     837              :         tree res_op1;
     838              :         res_op1 =  build_one_cst (type);
     839              :         tree _r;
     840              :         _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
     841              :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 214, __FILE__, __LINE__, true);
     842              :         return _r;
     843              :       }
     844            0 : next_after_fail267:;
     845              :     }
     846            0 :   return NULL_TREE;
     847              : }
     848              : 
     849              : tree
     850            0 : generic_simplify_175 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     851              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     852              : {
     853            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     854            0 :   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail302;
     855            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail302;
     856            0 :   {
     857            0 :     tree _r;
     858            0 :     _r =  constant_boolean_node (true, type);
     859            0 :     if (TREE_SIDE_EFFECTS (captures[1]))
     860            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
     861            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 241, __FILE__, __LINE__, true);
     862              :     return _r;
     863              :   }
     864            0 : next_after_fail302:;
     865              :   return NULL_TREE;
     866              : }
     867              : 
     868              : tree
     869            0 : generic_simplify_178 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     870              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     871              :  const enum tree_code ARG_UNUSED (code2),
     872              :  const enum tree_code ARG_UNUSED (code1))
     873              : {
     874            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     875            0 :   if ((TREE_CODE (captures[2]) == INTEGER_CST
     876            0 :  && TREE_CODE (captures[5]) == INTEGER_CST)
     877            0 :  || ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
     878            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[2])))
     879            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[2])))
     880            0 :  && bitwise_equal_p (captures[2], captures[5]))
     881              : )
     882              :     {
     883            0 :       {
     884            0 :  bool one_before = false;
     885            0 :  bool one_after = false;
     886            0 :  int cmp = 0;
     887            0 :  bool allbits = true;
     888            0 :  if (TREE_CODE (captures[2]) == INTEGER_CST
     889            0 :  && TREE_CODE (captures[5]) == INTEGER_CST)
     890              :  {
     891            0 :  allbits = TYPE_PRECISION (TREE_TYPE (captures[2])) <= TYPE_PRECISION (TREE_TYPE (captures[5]));
     892            0 :  auto t1 = wi::to_wide (fold_convert (TREE_TYPE (captures[5]), captures[2]));
     893            0 :  auto t2 = wi::to_wide (captures[5]);
     894            0 :  cmp = wi::cmp (t1, t2, TYPE_SIGN (TREE_TYPE (captures[5])));
     895            0 :  if (cmp < 0
     896            0 :  && t1 == t2 - 1)
     897              :  one_before = true;
     898            0 :  if (cmp > 0
     899            0 :  && t1 == t2 + 1)
     900              :  one_after = true;
     901              :  }
     902            0 :  bool val;
     903            0 :  switch (code2)
     904              :  {
     905            0 :  case EQ_EXPR: val = (cmp == 0); break;
     906            0 :  case NE_EXPR: val = (cmp != 0); break;
     907            0 :  case LT_EXPR: val = (cmp < 0); break;
     908            0 :  case GT_EXPR: val = (cmp > 0); break;
     909            0 :  case LE_EXPR: val = (cmp <= 0); break;
     910            0 :  case GE_EXPR: val = (cmp >= 0); break;
     911            0 :  default: gcc_unreachable ();
     912              :  }
     913            0 :           if (code1 == EQ_EXPR && val
     914              : )
     915              :             {
     916            0 :               if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail306;
     917            0 :               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail306;
     918            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail306;
     919            0 :               {
     920            0 :                 tree _r;
     921            0 :                 _r = captures[3];
     922            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 223, __FILE__, __LINE__, true);
     923              :                 return _r;
     924              :               }
     925            0 : next_after_fail306:;
     926              :             }
     927              :           else
     928              :             {
     929            0 :               if (code1 == NE_EXPR && val && allbits
     930              : )
     931              :                 {
     932            0 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail307;
     933            0 :                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail307;
     934            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail307;
     935            0 :                   {
     936            0 :                     tree _r;
     937            0 :                     _r =  constant_boolean_node (true, type);
     938            0 :                     if (TREE_SIDE_EFFECTS (captures[1]))
     939            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
     940            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 224, __FILE__, __LINE__, true);
     941              :                     return _r;
     942              :                   }
     943            0 : next_after_fail307:;
     944              :                 }
     945              :               else
     946              :                 {
     947            0 :                   if (code1 == NE_EXPR && !val && allbits
     948              : )
     949              :                     {
     950            0 :                       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail308;
     951            0 :                       if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail308;
     952            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail308;
     953            0 :                       {
     954            0 :                         tree _r;
     955            0 :                         _r = captures[0];
     956            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 225, __FILE__, __LINE__, true);
     957              :                         return _r;
     958              :                       }
     959            0 : next_after_fail308:;
     960              :                     }
     961              :                   else
     962              :                     {
     963            0 :                       if (code1 == EQ_EXPR
     964            0 :  && code2 == GT_EXPR
     965            0 :  && cmp == 0
     966            0 :  && allbits
     967            0 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
     968            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GE_EXPR))
     969            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
     970              : )
     971              :                         {
     972            0 :                           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail309;
     973            0 :                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail309;
     974            0 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail309;
     975            0 :                           {
     976            0 :                             tree res_op0;
     977            0 :                             res_op0 = captures[4];
     978            0 :                             tree res_op1;
     979            0 :                             res_op1 = captures[5];
     980            0 :                             tree _r;
     981            0 :                             _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
     982            0 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 226, __FILE__, __LINE__, true);
     983              :                             return _r;
     984              :                           }
     985            0 : next_after_fail309:;
     986              :                         }
     987              :                       else
     988              :                         {
     989            0 :                           if (code1 == EQ_EXPR
     990            0 :  && code2 == LT_EXPR
     991            0 :  && cmp == 0
     992            0 :  && allbits
     993            0 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
     994            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LE_EXPR))
     995            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
     996              : )
     997              :                             {
     998            0 :                               if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail310;
     999            0 :                               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail310;
    1000            0 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail310;
    1001            0 :                               {
    1002            0 :                                 tree res_op0;
    1003            0 :                                 res_op0 = captures[4];
    1004            0 :                                 tree res_op1;
    1005            0 :                                 res_op1 = captures[5];
    1006            0 :                                 tree _r;
    1007            0 :                                 _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
    1008            0 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 227, __FILE__, __LINE__, true);
    1009              :                                 return _r;
    1010              :                               }
    1011            0 : next_after_fail310:;
    1012              :                             }
    1013              :                           else
    1014              :                             {
    1015            0 :                               if (code1 == EQ_EXPR
    1016            0 :  && code2 == GE_EXPR
    1017              :  && one_before
    1018            0 :  && allbits
    1019            0 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
    1020            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GE_EXPR))
    1021            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
    1022              : )
    1023              :                                 {
    1024            0 :                                   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail311;
    1025            0 :                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail311;
    1026            0 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail311;
    1027            0 :                                   {
    1028            0 :                                     tree res_op0;
    1029            0 :                                     res_op0 = captures[4];
    1030            0 :                                     tree res_op1;
    1031            0 :                                     {
    1032            0 :                                       tree _o1[1], _r1;
    1033            0 :                                       _o1[0] = captures[2];
    1034            0 :                                       if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
    1035              :                                         {
    1036            0 :                                           _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
    1037              :                                         }
    1038              :                                       else
    1039              :                                         _r1 = _o1[0];
    1040            0 :                                       res_op1 = _r1;
    1041              :                                     }
    1042            0 :                                     tree _r;
    1043            0 :                                     _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
    1044            0 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 228, __FILE__, __LINE__, true);
    1045              :                                     return _r;
    1046              :                                   }
    1047            0 : next_after_fail311:;
    1048              :                                 }
    1049              :                               else
    1050              :                                 {
    1051            0 :                                   if (code1 == EQ_EXPR
    1052            0 :  && code2 == LE_EXPR
    1053              :  && one_after
    1054            0 :  && allbits
    1055            0 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
    1056            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LE_EXPR))
    1057            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
    1058              : )
    1059              :                                     {
    1060            0 :                                       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail312;
    1061            0 :                                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail312;
    1062            0 :                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail312;
    1063            0 :                                       {
    1064            0 :                                         tree res_op0;
    1065            0 :                                         res_op0 = captures[4];
    1066            0 :                                         tree res_op1;
    1067            0 :                                         {
    1068            0 :                                           tree _o1[1], _r1;
    1069            0 :                                           _o1[0] = captures[2];
    1070            0 :                                           if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
    1071              :                                             {
    1072            0 :                                               _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
    1073              :                                             }
    1074              :                                           else
    1075              :                                             _r1 = _o1[0];
    1076            0 :                                           res_op1 = _r1;
    1077              :                                         }
    1078            0 :                                         tree _r;
    1079            0 :                                         _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
    1080            0 :                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 229, __FILE__, __LINE__, true);
    1081              :                                         return _r;
    1082              :                                       }
    1083            0 : next_after_fail312:;
    1084              :                                     }
    1085              :                                 }
    1086              :                             }
    1087              :                         }
    1088              :                     }
    1089              :                 }
    1090              :             }
    1091              :       }
    1092              :     }
    1093              :   return NULL_TREE;
    1094              : }
    1095              : 
    1096              : tree
    1097          189 : generic_simplify_218 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1098              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1099              :  const enum tree_code ARG_UNUSED (cmp))
    1100              : {
    1101          189 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1102          378 :   if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    1103          356 :  && !TYPE_OVERFLOW_WRAPS (TREE_TYPE(captures[0]))
    1104              : )
    1105              :     {
    1106            3 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail362;
    1107            3 :       {
    1108            3 :         tree res_op0;
    1109            3 :         res_op0 = captures[0];
    1110            3 :         tree res_op1;
    1111            3 :         res_op1 =  build_zero_cst (TREE_TYPE(captures[0]));
    1112            3 :         tree _r;
    1113            3 :         _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1114            3 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 274, __FILE__, __LINE__, true);
    1115              :         return _r;
    1116              :       }
    1117            0 : next_after_fail362:;
    1118              :     }
    1119              :   return NULL_TREE;
    1120              : }
    1121              : 
    1122              : tree
    1123           33 : generic_simplify_227 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1124              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1125              :  const enum tree_code ARG_UNUSED (cmp),
    1126              :  const enum tree_code ARG_UNUSED (icmp))
    1127              : {
    1128           33 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1129           66 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    1130           29 :  && TYPE_UNSIGNED (TREE_TYPE (captures[0]))
    1131           13 :  && type_has_mode_precision_p (TREE_TYPE (captures[0]))
    1132           13 :  && types_match (captures[0], captures[2])
    1133           13 :  && tree_fits_shwi_p (captures[1])
    1134           13 :  && tree_to_shwi (captures[1]) > 0
    1135           46 :  && tree_to_shwi (captures[1]) < TYPE_PRECISION (TREE_TYPE (captures[0]))
    1136              : )
    1137              :     {
    1138           13 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail375;
    1139           13 :       {
    1140           13 :         tree res_op0;
    1141           13 :         {
    1142           13 :           tree _o1[2], _r1;
    1143           13 :           _o1[0] = captures[0];
    1144           13 :           _o1[1] = captures[2];
    1145           13 :           _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1146           13 :           res_op0 = _r1;
    1147              :         }
    1148           13 :         tree res_op1;
    1149           13 :         {
    1150           13 :           tree _o1[2], _r1;
    1151           13 :           _o1[0] =  build_one_cst (TREE_TYPE (captures[0]));
    1152           13 :           _o1[1] = captures[1];
    1153           13 :           _r1 = fold_build2_loc (loc, LSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1154           13 :           res_op1 = _r1;
    1155              :         }
    1156           13 :         tree _r;
    1157           13 :         _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
    1158           13 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 286, __FILE__, __LINE__, true);
    1159              :         return _r;
    1160              :       }
    1161            0 : next_after_fail375:;
    1162              :     }
    1163              :   return NULL_TREE;
    1164              : }
    1165              : 
    1166              : tree
    1167            0 : generic_simplify_235 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1168              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1169              :  const enum tree_code ARG_UNUSED (op))
    1170              : {
    1171            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1172            0 :   if (!TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[1]))
    1173              : )
    1174              :     {
    1175            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail396;
    1176            0 :       {
    1177            0 :         tree res_op0;
    1178            0 :         res_op0 = captures[3];
    1179            0 :         tree res_op1;
    1180            0 :         res_op1 = captures[2];
    1181            0 :         tree _r;
    1182            0 :         _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
    1183            0 :         if (TREE_SIDE_EFFECTS (captures[1]))
    1184            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1185            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 307, __FILE__, __LINE__, true);
    1186              :         return _r;
    1187              :       }
    1188            0 : next_after_fail396:;
    1189              :     }
    1190              :   return NULL_TREE;
    1191              : }
    1192              : 
    1193              : tree
    1194     40748199 : generic_simplify_243 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1195              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1196              :  const enum tree_code ARG_UNUSED (cmp))
    1197              : {
    1198     40748199 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1199     81496574 :   if (wi::bit_and_not (get_known_nonzero_bits (captures[1]),
    1200    122244597 :  get_nonzero_bits (captures[0])) != 0
    1201              : )
    1202              :     {
    1203        80270 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail404;
    1204        80270 :       {
    1205        80270 :         tree _r;
    1206        80270 :         _r =  constant_boolean_node (cmp == NE_EXPR, type);
    1207        80270 :         if (TREE_SIDE_EFFECTS (captures[0]))
    1208            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1209        80270 :         if (TREE_SIDE_EFFECTS (captures[1]))
    1210            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1211        80270 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 314, __FILE__, __LINE__, true);
    1212              :         return _r;
    1213              :       }
    1214            0 : next_after_fail404:;
    1215              :     }
    1216              :   return NULL_TREE;
    1217              : }
    1218              : 
    1219              : tree
    1220           13 : generic_simplify_251 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1221              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1222              :  const enum tree_code ARG_UNUSED (cmp))
    1223              : {
    1224           13 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1225           13 :   if (tree_fits_shwi_p (captures[3])
    1226           13 :  && tree_to_shwi (captures[3]) > 0
    1227           26 :  && tree_to_shwi (captures[3]) < TYPE_PRECISION (TREE_TYPE (captures[2]))
    1228              : )
    1229              :     {
    1230           13 :       if (tree_to_shwi (captures[3]) > wi::ctz (wi::to_wide (captures[5]))
    1231              : )
    1232              :         {
    1233            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail415;
    1234            0 :           {
    1235            0 :             tree _r;
    1236            0 :             _r =  constant_boolean_node (cmp == NE_EXPR, type);
    1237            0 :             if (TREE_SIDE_EFFECTS (captures[2]))
    1238            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1239            0 :             if (TREE_SIDE_EFFECTS (captures[3]))
    1240            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
    1241            0 :             if (TREE_SIDE_EFFECTS (captures[4]))
    1242            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[4]), _r);
    1243            0 :             if (TREE_SIDE_EFFECTS (captures[5]))
    1244            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[5]), _r);
    1245            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 325, __FILE__, __LINE__, true);
    1246              :             return _r;
    1247              :           }
    1248            0 : next_after_fail415:;
    1249              :         }
    1250              :       else
    1251              :         {
    1252           13 :           {
    1253           13 :  wide_int c1 = wi::to_wide (captures[3]);
    1254           13 :  wide_int c2 = wi::lrshift (wi::to_wide (captures[4]), c1);
    1255           13 :  wide_int c3 = wi::lrshift (wi::to_wide (captures[5]), c1);
    1256           13 :               if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail416;
    1257           13 :               if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail416;
    1258           13 :               if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail416;
    1259           13 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail416;
    1260           13 :               {
    1261           13 :                 tree res_op0;
    1262           13 :                 {
    1263           13 :                   tree _o1[2], _r1;
    1264           13 :                   _o1[0] = captures[2];
    1265           13 :                   _o1[1] =  wide_int_to_tree (TREE_TYPE (captures[2]), c2);
    1266           13 :                   _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1267           13 :                   res_op0 = _r1;
    1268              :                 }
    1269           13 :                 tree res_op1;
    1270           13 :                 res_op1 =  wide_int_to_tree (TREE_TYPE (captures[2]), c3);
    1271           13 :                 tree _r;
    1272           13 :                 _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1273           13 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 326, __FILE__, __LINE__, true);
    1274           13 :                 return _r;
    1275              :               }
    1276            0 : next_after_fail416:;
    1277           13 :           }
    1278              :         }
    1279              :     }
    1280              :   return NULL_TREE;
    1281              : }
    1282              : 
    1283              : tree
    1284        25712 : generic_simplify_264 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1285              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1286              :  const enum tree_code ARG_UNUSED (cmp),
    1287              :  const enum tree_code ARG_UNUSED (icmp),
    1288              :  const enum tree_code ARG_UNUSED (ncmp))
    1289              : {
    1290        25712 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1291        25712 :   if (types_match (type, TREE_TYPE (captures[0]))
    1292              : )
    1293              :     {
    1294        25047 :       {
    1295        25047 :  enum tree_code ic = invert_tree_comparison
    1296        25047 :  (cmp, HONOR_NANS (captures[1]));
    1297        25047 :           if (ic == icmp
    1298              : )
    1299              :             {
    1300        24803 :               if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail438;
    1301        24803 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail438;
    1302        24803 :               {
    1303        24803 :                 tree res_op0;
    1304        24803 :                 res_op0 = captures[1];
    1305        24803 :                 tree res_op1;
    1306        24803 :                 res_op1 = captures[2];
    1307        24803 :                 tree _r;
    1308        24803 :                 _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
    1309        24803 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 348, __FILE__, __LINE__, true);
    1310              :                 return _r;
    1311              :               }
    1312        25712 : next_after_fail438:;
    1313              :             }
    1314              :           else
    1315              :             {
    1316          244 :               if (ic == ncmp
    1317              : )
    1318              :                 {
    1319            0 :                   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail439;
    1320            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail439;
    1321            0 :                   {
    1322            0 :                     tree res_op0;
    1323            0 :                     res_op0 = captures[1];
    1324            0 :                     tree res_op1;
    1325            0 :                     res_op1 = captures[2];
    1326            0 :                     tree _r;
    1327            0 :                     _r = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
    1328            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 349, __FILE__, __LINE__, true);
    1329              :                     return _r;
    1330              :                   }
    1331        25712 : next_after_fail439:;
    1332              :                 }
    1333              :             }
    1334              :       }
    1335              :     }
    1336              :   return NULL_TREE;
    1337              : }
    1338              : 
    1339              : tree
    1340      6528973 : generic_simplify_274 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1341              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1342              :  const enum tree_code ARG_UNUSED (cmp))
    1343              : {
    1344      6528973 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1345      6528973 :   if (REAL_VALUE_MINUS_ZERO (TREE_REAL_CST (captures[1]))
    1346              : )
    1347              :     {
    1348         1708 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail454;
    1349         1708 :       {
    1350         1708 :         tree res_op0;
    1351         1708 :         res_op0 = captures[0];
    1352         1708 :         tree res_op1;
    1353         1708 :         res_op1 =  build_real (TREE_TYPE (captures[1]), dconst0);
    1354         1708 :         tree _r;
    1355         1708 :         _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1356         1708 :         if (TREE_SIDE_EFFECTS (captures[1]))
    1357            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1358         1708 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 362, __FILE__, __LINE__, true);
    1359              :         return _r;
    1360              :       }
    1361            0 : next_after_fail454:;
    1362              :     }
    1363              :   else
    1364              :     {
    1365      6527265 :       if (TREE_CODE (captures[0]) == REAL_CST
    1366      6527265 :  && REAL_VALUE_MINUS_ZERO (TREE_REAL_CST (captures[0]))
    1367              : )
    1368              :         {
    1369            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail455;
    1370            0 :           {
    1371            0 :             tree res_op0;
    1372            0 :             res_op0 =  build_real (TREE_TYPE (captures[0]), dconst0);
    1373            0 :             tree res_op1;
    1374            0 :             res_op1 = captures[1];
    1375            0 :             tree _r;
    1376            0 :             _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1377            0 :             if (TREE_SIDE_EFFECTS (captures[0]))
    1378            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1379            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 363, __FILE__, __LINE__, true);
    1380              :             return _r;
    1381              :           }
    1382            0 : next_after_fail455:;
    1383              :         }
    1384              :       else
    1385              :         {
    1386      6527265 :           if (REAL_VALUE_ISNAN (TREE_REAL_CST (captures[1]))
    1387          906 :  && (cmp == EQ_EXPR || cmp == NE_EXPR || !flag_trapping_math)
    1388          330 :  && !tree_expr_signaling_nan_p (captures[1])
    1389      6527565 :  && !tree_expr_maybe_signaling_nan_p (captures[0])
    1390              : )
    1391              :             {
    1392          300 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail456;
    1393          300 :               {
    1394          300 :                 tree _r;
    1395          300 :                 _r =  constant_boolean_node (cmp == NE_EXPR, type);
    1396          300 :                 if (TREE_SIDE_EFFECTS (captures[0]))
    1397            6 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1398          300 :                 if (TREE_SIDE_EFFECTS (captures[1]))
    1399            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1400          300 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 364, __FILE__, __LINE__, true);
    1401              :                 return _r;
    1402              :               }
    1403            0 : next_after_fail456:;
    1404              :             }
    1405              :           else
    1406              :             {
    1407      6526965 :               if (TREE_CODE (captures[0]) == REAL_CST
    1408         2041 :  && REAL_VALUE_ISNAN (TREE_REAL_CST (captures[0]))
    1409         1847 :  && (cmp == EQ_EXPR || cmp == NE_EXPR || !flag_trapping_math)
    1410            0 :  && !tree_expr_signaling_nan_p (captures[0])
    1411      6526965 :  && !tree_expr_signaling_nan_p (captures[1])
    1412              : )
    1413              :                 {
    1414            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail457;
    1415            0 :                   {
    1416            0 :                     tree _r;
    1417            0 :                     _r =  constant_boolean_node (cmp == NE_EXPR, type);
    1418            0 :                     if (TREE_SIDE_EFFECTS (captures[0]))
    1419            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1420            0 :                     if (TREE_SIDE_EFFECTS (captures[1]))
    1421            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1422            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 365, __FILE__, __LINE__, true);
    1423              :                     return _r;
    1424              :                   }
    1425            0 : next_after_fail457:;
    1426              :                 }
    1427              :               else
    1428              :                 {
    1429      6526965 :                   if (REAL_VALUE_ISINF (TREE_REAL_CST (captures[1]))
    1430      7273990 :  && MODE_HAS_INFINITIES (TYPE_MODE (TREE_TYPE (captures[1])))
    1431              : )
    1432              :                     {
    1433       249036 :                       {
    1434       249036 :  REAL_VALUE_TYPE max;
    1435       249036 :  enum tree_code code = cmp;
    1436       249036 :  bool neg = REAL_VALUE_NEGATIVE (TREE_REAL_CST (captures[1]));
    1437       249036 :  if (neg)
    1438        34091 :  code = swap_tree_comparison (code);
    1439       249036 :                           if (code == GT_EXPR
    1440       249036 :  && !(HONOR_NANS (captures[0]) && flag_trapping_math)
    1441              : )
    1442              :                             {
    1443           21 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail458;
    1444           21 :                               {
    1445           21 :                                 tree _r;
    1446           21 :                                 _r =  constant_boolean_node (false, type);
    1447           21 :                                 if (TREE_SIDE_EFFECTS (captures[0]))
    1448            0 :                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1449           21 :                                 if (TREE_SIDE_EFFECTS (captures[1]))
    1450            0 :                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1451           21 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 366, __FILE__, __LINE__, true);
    1452        72236 :                                 return _r;
    1453              :                               }
    1454            0 : next_after_fail458:;
    1455              :                             }
    1456              :                           else
    1457              :                             {
    1458       249015 :                               if (code == LE_EXPR
    1459              : )
    1460              :                                 {
    1461        31949 :                                   if (! HONOR_NANS (captures[0])
    1462              : )
    1463              :                                     {
    1464            0 :                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail459;
    1465            0 :                                       {
    1466            0 :                                         tree _r;
    1467            0 :                                         _r =  constant_boolean_node (true, type);
    1468            0 :                                         if (TREE_SIDE_EFFECTS (captures[0]))
    1469            0 :                                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1470            0 :                                         if (TREE_SIDE_EFFECTS (captures[1]))
    1471            0 :                                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1472            0 :                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 367, __FILE__, __LINE__, true);
    1473              :                                         return _r;
    1474              :                                       }
    1475            0 : next_after_fail459:;
    1476              :                                     }
    1477              :                                   else
    1478              :                                     {
    1479        31949 :                                       if (!flag_trapping_math
    1480              : )
    1481              :                                         {
    1482           16 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail460;
    1483           16 :                                           {
    1484           16 :                                             if (! tree_invariant_p (captures[0])) goto next_after_fail460;
    1485            0 :                                             tree res_op0;
    1486            0 :                                             res_op0 = unshare_expr (captures[0]);
    1487            0 :                                             tree res_op1;
    1488            0 :                                             res_op1 = captures[0];
    1489            0 :                                             tree _r;
    1490            0 :                                             _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
    1491            0 :                                             if (TREE_SIDE_EFFECTS (captures[1]))
    1492            0 :                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1493            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 368, __FILE__, __LINE__, true);
    1494              :                                             return _r;
    1495              :                                           }
    1496       176800 : next_after_fail460:;
    1497              :                                         }
    1498              :                                     }
    1499              :                                 }
    1500              :                               else
    1501              :                                 {
    1502       144636 :                                   if ((code == EQ_EXPR && !(HONOR_NANS (captures[0]) && flag_trapping_math))
    1503       361666 :  || code == GE_EXPR
    1504              : )
    1505              :                                     {
    1506          175 :                                       {
    1507          175 :  real_maxval (&max, neg, TYPE_MODE (TREE_TYPE (captures[0])));
    1508          175 :                                           if (neg
    1509              : )
    1510              :                                             {
    1511           69 :                                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail461;
    1512           69 :                                               {
    1513           69 :                                                 tree res_op0;
    1514           69 :                                                 res_op0 = captures[0];
    1515           69 :                                                 tree res_op1;
    1516           69 :                                                 res_op1 =  build_real (TREE_TYPE (captures[0]), max);
    1517           69 :                                                 tree _r;
    1518           69 :                                                 _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
    1519           69 :                                                 if (TREE_SIDE_EFFECTS (captures[1]))
    1520            0 :                                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1521           69 :                                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 369, __FILE__, __LINE__, true);
    1522              :                                                 return _r;
    1523              :                                               }
    1524            0 : next_after_fail461:;
    1525              :                                             }
    1526              :                                           else
    1527              :                                             {
    1528          106 :                                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail462;
    1529          106 :                                               {
    1530          106 :                                                 tree res_op0;
    1531          106 :                                                 res_op0 = captures[0];
    1532          106 :                                                 tree res_op1;
    1533          106 :                                                 res_op1 =  build_real (TREE_TYPE (captures[0]), max);
    1534          106 :                                                 tree _r;
    1535          106 :                                                 _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
    1536          106 :                                                 if (TREE_SIDE_EFFECTS (captures[1]))
    1537            0 :                                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1538          106 :                                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 370, __FILE__, __LINE__, true);
    1539              :                                                 return _r;
    1540              :                                               }
    1541            0 : next_after_fail462:;
    1542              :                                             }
    1543              :                                       }
    1544              :                                     }
    1545              :                                   else
    1546              :                                     {
    1547       216891 :                                       if (code == LT_EXPR
    1548              : )
    1549              :                                         {
    1550          118 :                                           {
    1551          118 :  real_maxval (&max, neg, TYPE_MODE (TREE_TYPE (captures[0])));
    1552          118 :                                               if (neg
    1553              : )
    1554              :                                                 {
    1555           40 :                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail463;
    1556           40 :                                                   {
    1557           40 :                                                     tree res_op0;
    1558           40 :                                                     res_op0 = captures[0];
    1559           40 :                                                     tree res_op1;
    1560           40 :                                                     res_op1 =  build_real (TREE_TYPE (captures[0]), max);
    1561           40 :                                                     tree _r;
    1562           40 :                                                     _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
    1563           40 :                                                     if (TREE_SIDE_EFFECTS (captures[1]))
    1564            0 :                                                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1565           40 :                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 371, __FILE__, __LINE__, true);
    1566              :                                                     return _r;
    1567              :                                                   }
    1568            0 : next_after_fail463:;
    1569              :                                                 }
    1570              :                                               else
    1571              :                                                 {
    1572           78 :                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail464;
    1573           78 :                                                   {
    1574           78 :                                                     tree res_op0;
    1575           78 :                                                     res_op0 = captures[0];
    1576           78 :                                                     tree res_op1;
    1577           78 :                                                     res_op1 =  build_real (TREE_TYPE (captures[0]), max);
    1578           78 :                                                     tree _r;
    1579           78 :                                                     _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
    1580           78 :                                                     if (TREE_SIDE_EFFECTS (captures[1]))
    1581            0 :                                                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1582           78 :                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 372, __FILE__, __LINE__, true);
    1583              :                                                     return _r;
    1584              :                                                   }
    1585            0 : next_after_fail464:;
    1586              :                                                 }
    1587              :                                           }
    1588              :                                         }
    1589              :                                       else
    1590              :                                         {
    1591       216773 :                                           if (code == NE_EXPR
    1592              : )
    1593              :                                             {
    1594        71922 :                                               {
    1595        71922 :  real_maxval (&max, neg, TYPE_MODE (TREE_TYPE (captures[0])));
    1596        71922 :                                                   if (! HONOR_NANS (captures[0])
    1597              : )
    1598              :                                                     {
    1599            0 :                                                       if (neg
    1600              : )
    1601              :                                                         {
    1602            0 :                                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail465;
    1603            0 :                                                           {
    1604            0 :                                                             tree res_op0;
    1605            0 :                                                             res_op0 = captures[0];
    1606            0 :                                                             tree res_op1;
    1607            0 :                                                             res_op1 =  build_real (TREE_TYPE (captures[0]), max);
    1608            0 :                                                             tree _r;
    1609            0 :                                                             _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
    1610            0 :                                                             if (TREE_SIDE_EFFECTS (captures[1]))
    1611            0 :                                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1612            0 :                                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 373, __FILE__, __LINE__, true);
    1613              :                                                             return _r;
    1614              :                                                           }
    1615            0 : next_after_fail465:;
    1616              :                                                         }
    1617              :                                                       else
    1618              :                                                         {
    1619            0 :                                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail466;
    1620            0 :                                                           {
    1621            0 :                                                             tree res_op0;
    1622            0 :                                                             res_op0 = captures[0];
    1623            0 :                                                             tree res_op1;
    1624            0 :                                                             res_op1 =  build_real (TREE_TYPE (captures[0]), max);
    1625            0 :                                                             tree _r;
    1626            0 :                                                             _r = fold_build2_loc (loc, LE_EXPR, type, res_op0, res_op1);
    1627            0 :                                                             if (TREE_SIDE_EFFECTS (captures[1]))
    1628            0 :                                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1629            0 :                                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 374, __FILE__, __LINE__, true);
    1630              :                                                             return _r;
    1631              :                                                           }
    1632            0 : next_after_fail466:;
    1633              :                                                         }
    1634              :                                                     }
    1635              :                                                   else
    1636              :                                                     {
    1637        71922 :                                                       if (neg
    1638              : )
    1639              :                                                         {
    1640          627 :                                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail467;
    1641          627 :                                                           {
    1642          627 :                                                             tree res_op0;
    1643          627 :                                                             res_op0 = captures[0];
    1644          627 :                                                             tree res_op1;
    1645          627 :                                                             res_op1 =  build_real (TREE_TYPE (captures[0]), max);
    1646          627 :                                                             tree _r;
    1647          627 :                                                             _r = fold_build2_loc (loc, UNGE_EXPR, type, res_op0, res_op1);
    1648          627 :                                                             if (TREE_SIDE_EFFECTS (captures[1]))
    1649            0 :                                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1650          627 :                                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 375, __FILE__, __LINE__, true);
    1651              :                                                             return _r;
    1652              :                                                           }
    1653            0 : next_after_fail467:;
    1654              :                                                         }
    1655              :                                                       else
    1656              :                                                         {
    1657        71295 :                                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail468;
    1658        71295 :                                                           {
    1659        71295 :                                                             tree res_op0;
    1660        71295 :                                                             res_op0 = captures[0];
    1661        71295 :                                                             tree res_op1;
    1662        71295 :                                                             res_op1 =  build_real (TREE_TYPE (captures[0]), max);
    1663        71295 :                                                             tree _r;
    1664        71295 :                                                             _r = fold_build2_loc (loc, UNLE_EXPR, type, res_op0, res_op1);
    1665        71295 :                                                             if (TREE_SIDE_EFFECTS (captures[1]))
    1666            0 :                                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1667        71295 :                                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 376, __FILE__, __LINE__, true);
    1668              :                                                             return _r;
    1669              :                                                           }
    1670            0 : next_after_fail468:;
    1671              :                                                         }
    1672              :                                                     }
    1673              :                                               }
    1674              :                                             }
    1675              :                                         }
    1676              :                                     }
    1677              :                                 }
    1678              :                             }
    1679              :                       }
    1680              :                     }
    1681              :                 }
    1682              :             }
    1683              :         }
    1684              :     }
    1685              :   return NULL_TREE;
    1686              : }
    1687              : 
    1688              : tree
    1689          374 : generic_simplify_315 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1690              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1691              :  const enum tree_code ARG_UNUSED (op),
    1692              :  const combined_fn ARG_UNUSED (ctz))
    1693              : {
    1694          374 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1695          374 :   {
    1696          374 :  tree type0 = TREE_TYPE (captures[1]);
    1697          374 :  int prec = TYPE_PRECISION (type0);
    1698          374 :  bool ok = true;
    1699          374 :  if (sanitize_flags_p (SANITIZE_BUILTIN)
    1700          374 :  && (!cfun
    1701           64 :  || (cfun->curr_properties & PROP_ssa) == 0))
    1702              :  ok = false;
    1703          620 :       if (ok && prec <= MAX_FIXED_MODE_SIZE
    1704              : )
    1705              :         {
    1706          310 :           if (tree_int_cst_sgn (captures[2]) < 0 || wi::to_widest (captures[2]) >= prec
    1707              : )
    1708              :             {
    1709           36 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail582;
    1710           36 :               {
    1711           36 :                 tree _r;
    1712           36 :                 _r =  constant_boolean_node (op != EQ_EXPR, type);
    1713           36 :                 if (TREE_SIDE_EFFECTS (captures[1]))
    1714            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1715           36 :                 if (TREE_SIDE_EFFECTS (captures[2]))
    1716            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1717           36 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 472, __FILE__, __LINE__, true);
    1718          310 :                 return _r;
    1719              :               }
    1720            0 : next_after_fail582:;
    1721              :             }
    1722              :           else
    1723              :             {
    1724          274 :               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail583;
    1725          274 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail583;
    1726          274 :               {
    1727          274 :                 tree res_op0;
    1728          274 :                 {
    1729          274 :                   tree _o1[2], _r1;
    1730          274 :                   _o1[0] = captures[1];
    1731          274 :                   _o1[1] =  wide_int_to_tree (type0,
    1732          274 :  wi::mask (tree_to_uhwi (captures[2]) + 1,
    1733              :  false, prec));
    1734          274 :                   _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1735          274 :                   res_op0 = _r1;
    1736              :                 }
    1737          274 :                 tree res_op1;
    1738          274 :                 res_op1 =  wide_int_to_tree (type0,
    1739          274 :  wi::shifted_mask (tree_to_uhwi (captures[2]), 1,
    1740              :  false, prec));
    1741          274 :                 tree _r;
    1742          274 :                 _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
    1743          274 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 473, __FILE__, __LINE__, true);
    1744              :                 return _r;
    1745              :               }
    1746           64 : next_after_fail583:;
    1747              :             }
    1748              :         }
    1749              :   }
    1750           64 :   return NULL_TREE;
    1751              : }
    1752              : 
    1753              : tree
    1754            0 : generic_simplify_326 (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 combined_fn ARG_UNUSED (COPYSIGN_ALL))
    1757              : {
    1758            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1759            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail598;
    1760            0 :   {
    1761            0 :     tree _r;
    1762            0 :     _r = captures[0];
    1763            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 488, __FILE__, __LINE__, true);
    1764              :     return _r;
    1765              :   }
    1766            0 : next_after_fail598:;
    1767            0 :   return NULL_TREE;
    1768              : }
    1769              : 
    1770              : tree
    1771        14819 : generic_simplify_333 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1772              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1773              :  const enum tree_code ARG_UNUSED (div))
    1774              : {
    1775        14819 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1776        14819 :   if (INTEGRAL_TYPE_P (type)
    1777        14785 :  && ssa_name_has_boolean_range (captures[1])
    1778        14819 :  && !flag_non_call_exceptions
    1779              : )
    1780              :     {
    1781            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail607;
    1782            0 :       {
    1783            0 :         tree _r;
    1784            0 :         _r = captures[0];
    1785            0 :         if (TREE_SIDE_EFFECTS (captures[1]))
    1786            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1787            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 495, __FILE__, __LINE__, true);
    1788              :         return _r;
    1789              :       }
    1790            0 : next_after_fail607:;
    1791              :     }
    1792              :   return NULL_TREE;
    1793              : }
    1794              : 
    1795              : tree
    1796        25378 : generic_simplify_339 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1797              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1798              :  const enum tree_code ARG_UNUSED (div))
    1799              : {
    1800        25378 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1801        25378 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && TYPE_UNSIGNED (TREE_TYPE (captures[0]))
    1802              : )
    1803              :     {
    1804        25230 :       if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail614;
    1805        25230 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail614;
    1806        25230 :       {
    1807        25230 :         tree res_op0;
    1808        25230 :         res_op0 = captures[0];
    1809        25230 :         tree res_op1;
    1810        25230 :         res_op1 =  wide_int_to_tree
    1811        50460 :  (type, wi::mask (TYPE_PRECISION (type)
    1812        25230 :  - wi::exact_log2 (wi::to_wide (captures[1])),
    1813        25230 :  false, TYPE_PRECISION (type)));
    1814        25230 :         tree _r;
    1815        25230 :         _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    1816        25230 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 502, __FILE__, __LINE__, true);
    1817              :         return _r;
    1818              :       }
    1819        25378 : next_after_fail614:;
    1820              :     }
    1821              :   return NULL_TREE;
    1822              : }
    1823              : 
    1824              : tree
    1825          933 : generic_simplify_343 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1826              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1827              :  const enum tree_code ARG_UNUSED (mod))
    1828              : {
    1829          933 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1830          933 :   if (!integer_zerop (captures[1])
    1831              : )
    1832              :     {
    1833          796 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail618;
    1834          796 :       {
    1835          796 :         tree _r;
    1836          796 :         _r = captures[0];
    1837          796 :         if (TREE_SIDE_EFFECTS (captures[1]))
    1838           74 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1839          796 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 506, __FILE__, __LINE__, true);
    1840              :         return _r;
    1841              :       }
    1842            0 : next_after_fail618:;
    1843              :     }
    1844              :   return NULL_TREE;
    1845              : }
    1846              : 
    1847              : tree
    1848            2 : generic_simplify_351 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1849              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    1850              : {
    1851            2 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1852            0 :   if (FLOAT_TYPE_P (type)
    1853            2 :  && ! HONOR_NANS (type)
    1854            2 :  && ! HONOR_INFINITIES (type)
    1855              : )
    1856              :     {
    1857            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail626;
    1858            0 :       {
    1859            0 :         tree _r;
    1860            0 :         _r =  build_minus_one_cst (type);
    1861            0 :         if (TREE_SIDE_EFFECTS (captures[0]))
    1862            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1863            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 514, __FILE__, __LINE__, true);
    1864              :         return _r;
    1865              :       }
    1866            0 : next_after_fail626:;
    1867              :     }
    1868              :   return NULL_TREE;
    1869              : }
    1870              : 
    1871              : tree
    1872            6 : generic_simplify_358 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1873              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1874              :  const combined_fn ARG_UNUSED (COS),
    1875              :  const combined_fn ARG_UNUSED (SIN),
    1876              :  const combined_fn ARG_UNUSED (TAN))
    1877              : {
    1878            6 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1879            6 :   if (flag_unsafe_math_optimizations && canonicalize_math_p ()
    1880              : )
    1881              :     {
    1882            6 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail635;
    1883            6 :       {
    1884            6 :         tree res_op0;
    1885            6 :         res_op0 =  build_one_cst (type);
    1886            6 :         tree res_op1;
    1887            6 :         {
    1888            6 :           tree _o1[1], _r1;
    1889            6 :           _o1[0] = captures[1];
    1890            6 :           _r1 = maybe_build_call_expr_loc (loc, TAN, TREE_TYPE (_o1[0]), 1, _o1[0]);
    1891            6 :           if (!_r1)
    1892            0 :             goto next_after_fail635;
    1893            6 :           res_op1 = _r1;
    1894              :         }
    1895            6 :         tree _r;
    1896            6 :         _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
    1897            6 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 523, __FILE__, __LINE__, true);
    1898              :         return _r;
    1899              :       }
    1900            6 : next_after_fail635:;
    1901              :     }
    1902              :   return NULL_TREE;
    1903              : }
    1904              : 
    1905              : tree
    1906           39 : generic_simplify_366 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1907              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    1908              :  const enum tree_code ARG_UNUSED (cmp),
    1909              :  const enum tree_code ARG_UNUSED (minmax))
    1910              : {
    1911           39 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1912           39 :   {
    1913           39 :  tree_code code = minmax_from_comparison (cmp, captures[0], captures[1], captures[0], captures[4]);
    1914           39 :       if ((cmp == LT_EXPR || cmp == LE_EXPR)
    1915           15 :  && code == MIN_EXPR
    1916           43 :  && integer_nonzerop (fold_build2 (LE_EXPR, boolean_type_node, captures[3], captures[4]))
    1917              : )
    1918              :         {
    1919            4 :           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail647;
    1920            4 :           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail647;
    1921            4 :           if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail647;
    1922            4 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail647;
    1923            4 :           {
    1924            4 :             tree res_op0;
    1925            4 :             res_op0 = captures[2];
    1926            4 :             tree res_op1;
    1927            4 :             res_op1 = captures[4];
    1928            4 :             tree _r;
    1929            4 :             _r = fold_build2_loc (loc, MIN_EXPR, type, res_op0, res_op1);
    1930            4 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 535, __FILE__, __LINE__, true);
    1931              :             return _r;
    1932              :           }
    1933           39 : next_after_fail647:;
    1934              :         }
    1935              :       else
    1936              :         {
    1937           35 :           if ((cmp == GT_EXPR || cmp == GE_EXPR)
    1938           24 :  && code == MAX_EXPR
    1939           59 :  && integer_nonzerop (fold_build2 (GE_EXPR, boolean_type_node, captures[3], captures[4]))
    1940              : )
    1941              :             {
    1942           10 :               if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail648;
    1943           10 :               if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail648;
    1944           10 :               if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail648;
    1945           10 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail648;
    1946           10 :               {
    1947           10 :                 tree res_op0;
    1948           10 :                 res_op0 = captures[2];
    1949           10 :                 tree res_op1;
    1950           10 :                 res_op1 = captures[4];
    1951           10 :                 tree _r;
    1952           10 :                 _r = fold_build2_loc (loc, MAX_EXPR, type, res_op0, res_op1);
    1953           10 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 536, __FILE__, __LINE__, true);
    1954              :                 return _r;
    1955              :               }
    1956           39 : next_after_fail648:;
    1957              :             }
    1958              :         }
    1959              :   }
    1960              :   return NULL_TREE;
    1961              : }
    1962              : 
    1963              : tree
    1964            0 : generic_simplify_381 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1965              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
    1966              : {
    1967            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1968            0 :   if (INTEGRAL_TYPE_P (type)
    1969              : )
    1970              :     {
    1971            0 :       if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail668;
    1972            0 :       if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail668;
    1973            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail668;
    1974            0 :       {
    1975            0 :         tree _r;
    1976            0 :         _r = captures[2];
    1977            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 556, __FILE__, __LINE__, true);
    1978              :         return _r;
    1979              :       }
    1980            0 : next_after_fail668:;
    1981              :     }
    1982              :   return NULL_TREE;
    1983              : }
    1984              : 
    1985              : tree
    1986           36 : generic_simplify_385 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1987              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    1988              :  const enum tree_code ARG_UNUSED (op))
    1989              : {
    1990           36 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1991           36 :   {
    1992           36 :  auto c1 = wi::to_wide (captures[1]);
    1993           36 :  auto c2 = wi::to_wide (captures[2]);
    1994           36 :       if (wi::popcount (c1) == 1
    1995          120 :  && ((op == PLUS_EXPR && wi::eq_p (wi::neg (c2), c1))
    1996           48 :  || (op == BIT_AND_EXPR && wi::eq_p (wi::bit_not (c2), c1)))
    1997              : )
    1998              :         {
    1999           24 :           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail672;
    2000           24 :           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail672;
    2001           24 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail672;
    2002           24 :           {
    2003           24 :             tree res_op0;
    2004           24 :             res_op0 = captures[0];
    2005           24 :             tree res_op1;
    2006           24 :             res_op1 = captures[1];
    2007           24 :             tree _r;
    2008           24 :             _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
    2009           24 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 560, __FILE__, __LINE__, true);
    2010           24 :             return _r;
    2011              :           }
    2012           12 : next_after_fail672:;
    2013              :         }
    2014              :   }
    2015           12 :   return NULL_TREE;
    2016              : }
    2017              : 
    2018              : tree
    2019           22 : generic_simplify_396 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2020              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    2021              :  const enum tree_code ARG_UNUSED (cmp))
    2022              : {
    2023           22 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2024           22 :   if (INTEGRAL_TYPE_P (type)
    2025           22 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    2026           22 :  && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
    2027           44 :  && TYPE_PRECISION (TREE_TYPE (captures[0])) == TYPE_PRECISION (type)
    2028              : )
    2029              :     {
    2030           22 :       {
    2031           22 :  tree shifter = build_int_cst (integer_type_node, TYPE_PRECISION (type) - 1);
    2032           22 :           if (cmp == LT_EXPR
    2033              : )
    2034              :             {
    2035           13 :               if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail684;
    2036           13 :               if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail684;
    2037           13 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail684;
    2038           13 :               {
    2039           13 :                 tree res_op0;
    2040           13 :                 {
    2041           13 :                   tree _o1[1], _r1;
    2042           13 :                   {
    2043           13 :                     tree _o2[2], _r2;
    2044           13 :                     _o2[0] = captures[0];
    2045           13 :                     _o2[1] = shifter;
    2046           13 :                     _r2 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    2047           13 :                     _o1[0] = _r2;
    2048              :                   }
    2049           13 :                   if (TREE_TYPE (_o1[0]) != type)
    2050              :                     {
    2051            1 :                       _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    2052              :                     }
    2053              :                   else
    2054              :                     _r1 = _o1[0];
    2055           13 :                   res_op0 = _r1;
    2056              :                 }
    2057           13 :                 tree res_op1;
    2058           13 :                 res_op1 = captures[1];
    2059           13 :                 tree _r;
    2060           13 :                 _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
    2061           13 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 570, __FILE__, __LINE__, true);
    2062              :                 return _r;
    2063              :               }
    2064           22 : next_after_fail684:;
    2065              :             }
    2066              :           else
    2067              :             {
    2068            9 :               if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail685;
    2069            9 :               if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail685;
    2070            9 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail685;
    2071            9 :               {
    2072            9 :                 tree res_op0;
    2073            9 :                 {
    2074            9 :                   tree _o1[2], _r1;
    2075            9 :                   {
    2076            9 :                     tree _o2[1], _r2;
    2077            9 :                     {
    2078            9 :                       tree _o3[2], _r3;
    2079            9 :                       _o3[0] = captures[0];
    2080            9 :                       _o3[1] = shifter;
    2081            9 :                       _r3 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
    2082            9 :                       _o2[0] = _r3;
    2083              :                     }
    2084            9 :                     if (TREE_TYPE (_o2[0]) != type)
    2085              :                       {
    2086            1 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, type, _o2[0]);
    2087              :                       }
    2088              :                     else
    2089              :                       _r2 = _o2[0];
    2090            9 :                     _o1[0] = _r2;
    2091              :                   }
    2092            9 :                   _o1[1] = captures[1];
    2093            9 :                   _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2094            9 :                   res_op0 = _r1;
    2095              :                 }
    2096            9 :                 tree _r;
    2097            9 :                 _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
    2098            9 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 571, __FILE__, __LINE__, true);
    2099              :                 return _r;
    2100              :               }
    2101           22 : next_after_fail685:;
    2102              :             }
    2103              :       }
    2104              :     }
    2105              :   return NULL_TREE;
    2106              : }
    2107              : 
    2108              : tree
    2109        37390 : generic_simplify_415 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2110              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2111              :  const enum tree_code ARG_UNUSED (cmp),
    2112              :  const enum tree_code ARG_UNUSED (out))
    2113              : {
    2114        37390 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2115        37390 :   if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (captures[1]))
    2116        37374 :  && types_match (TREE_TYPE (captures[3]), TREE_TYPE (captures[0]))
    2117        37374 :  && tree_nop_conversion_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[3]))
    2118        37390 :  && wi::to_wide (captures[4]) != 0
    2119            0 :  && single_use (captures[1])
    2120              : )
    2121              :     {
    2122        37374 :       {
    2123        37374 :  unsigned int prec = TYPE_PRECISION (TREE_TYPE (captures[3]));
    2124        37374 :  signop sign = TYPE_SIGN (TREE_TYPE (captures[3]));
    2125        37374 :           if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail708;
    2126        37374 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail708;
    2127        37374 :           {
    2128        37374 :             tree res_op0;
    2129        37374 :             res_op0 = captures[3];
    2130        37374 :             tree res_op1;
    2131        37374 :             res_op1 =  wide_int_to_tree (TREE_TYPE (captures[3]),
    2132        37374 :  wi::max_value (prec, sign)
    2133       112122 :  - wi::to_wide (captures[4]));
    2134        37374 :             tree _r;
    2135        37374 :             _r = fold_build2_loc (loc, out, type, res_op0, res_op1);
    2136        37374 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 594, __FILE__, __LINE__, true);
    2137              :             return _r;
    2138              :           }
    2139        37390 : next_after_fail708:;
    2140              :       }
    2141              :     }
    2142              :   return NULL_TREE;
    2143              : }
    2144              : 
    2145              : tree
    2146         1730 : generic_simplify_426 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2147              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2148              :  const enum tree_code ARG_UNUSED (cmp),
    2149              :  const enum tree_code ARG_UNUSED (neg_cmp))
    2150              : {
    2151         1730 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2152         1730 :   if (flag_unsafe_math_optimizations
    2153              : )
    2154              :     {
    2155            9 :       {
    2156            9 :  tree tem = const_binop (RDIV_EXPR, type, captures[2], captures[1]);
    2157            9 :           if (tem
    2158           27 :  && !(REAL_VALUE_ISINF (TREE_REAL_CST (tem))
    2159           15 :  || (real_zerop (tem) && !real_zerop (captures[1])))
    2160              : )
    2161              :             {
    2162            3 :               if (real_less (&dconst0, TREE_REAL_CST_PTR (captures[1]))
    2163              : )
    2164              :                 {
    2165            2 :                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail751;
    2166            2 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail751;
    2167            2 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail751;
    2168            2 :                   {
    2169            2 :                     tree res_op0;
    2170            2 :                     res_op0 = captures[0];
    2171            2 :                     tree res_op1;
    2172            2 :                     res_op1 =  tem;
    2173            2 :                     tree _r;
    2174            2 :                     _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    2175            2 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 620, __FILE__, __LINE__, true);
    2176              :                     return _r;
    2177              :                   }
    2178         1730 : next_after_fail751:;
    2179              :                 }
    2180              :               else
    2181              :                 {
    2182            1 :                   if (real_less (TREE_REAL_CST_PTR (captures[1]), &dconst0)
    2183              : )
    2184              :                     {
    2185            1 :                       if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail752;
    2186            1 :                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail752;
    2187            1 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail752;
    2188            1 :                       {
    2189            1 :                         tree res_op0;
    2190            1 :                         res_op0 = captures[0];
    2191            1 :                         tree res_op1;
    2192            1 :                         res_op1 =  tem;
    2193            1 :                         tree _r;
    2194            1 :                         _r = fold_build2_loc (loc, neg_cmp, type, res_op0, res_op1);
    2195            1 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 621, __FILE__, __LINE__, true);
    2196              :                         return _r;
    2197              :                       }
    2198         1730 : next_after_fail752:;
    2199              :                     }
    2200              :                 }
    2201              :             }
    2202              :       }
    2203              :     }
    2204              :   return NULL_TREE;
    2205              : }
    2206              : 
    2207              : tree
    2208            0 : generic_simplify_435 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2209              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2210              :  const enum tree_code ARG_UNUSED (cmp),
    2211              :  const enum tree_code ARG_UNUSED (out))
    2212              : {
    2213            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2214            0 :   if (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
    2215            0 :  && types_match (TREE_TYPE (captures[1]), TREE_TYPE (captures[2]))
    2216              : )
    2217              :     {
    2218            0 :       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail767;
    2219            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail767;
    2220            0 :       {
    2221            0 :         tree res_op0;
    2222            0 :         {
    2223            0 :           tree _o1[1], _r1;
    2224            0 :           _o1[0] = captures[0];
    2225            0 :           _r1 = fold_build1_loc (loc, IMAGPART_EXPR, TREE_TYPE (TREE_TYPE (_o1[0])), _o1[0]);
    2226            0 :           res_op0 = _r1;
    2227              :         }
    2228            0 :         tree res_op1;
    2229            0 :         res_op1 =  build_zero_cst (TREE_TYPE (captures[1]));
    2230            0 :         tree _r;
    2231            0 :         _r = fold_build2_loc (loc, out, type, res_op0, res_op1);
    2232            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 617, __FILE__, __LINE__, true);
    2233              :         return _r;
    2234              :       }
    2235            0 : next_after_fail767:;
    2236              :     }
    2237              :   return NULL_TREE;
    2238              : }
    2239              : 
    2240              : tree
    2241            0 : generic_simplify_439 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2242              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2243              :  const combined_fn ARG_UNUSED (logs),
    2244              :  const combined_fn ARG_UNUSED (exps),
    2245              :  const enum tree_code ARG_UNUSED (cmp))
    2246              : {
    2247            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2248            0 :   if (flag_unsafe_math_optimizations
    2249              : )
    2250              :     {
    2251            0 :       if (! HONOR_SIGN_DEPENDENT_ROUNDING (type)
    2252            0 :  && ! HONOR_NANS (type) && ! HONOR_INFINITIES (type)
    2253            0 :  && ! flag_trapping_math
    2254            0 :  && ! flag_errno_math
    2255              : )
    2256              :         {
    2257            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail771;
    2258            0 :           {
    2259            0 :             tree res_op0;
    2260            0 :             res_op0 = captures[1];
    2261            0 :             tree res_op1;
    2262            0 :             {
    2263            0 :               tree _o1[1], _r1;
    2264            0 :               _o1[0] = captures[2];
    2265            0 :               _r1 = maybe_build_call_expr_loc (loc, exps, TREE_TYPE (_o1[0]), 1, _o1[0]);
    2266            0 :               if (!_r1)
    2267            0 :                 goto next_after_fail771;
    2268            0 :               if (EXPR_P (_r1))
    2269            0 :                 goto next_after_fail771;
    2270            0 :               res_op1 = _r1;
    2271              :             }
    2272            0 :             tree _r;
    2273            0 :             _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    2274            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 636, __FILE__, __LINE__, true);
    2275              :             return _r;
    2276              :           }
    2277            0 : next_after_fail771:;
    2278              :         }
    2279              :     }
    2280              :   return NULL_TREE;
    2281              : }
    2282              : 
    2283              : tree
    2284         2934 : generic_simplify_446 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2285              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2286              :  const enum tree_code ARG_UNUSED (shiftrotate))
    2287              : {
    2288         2934 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2289         2934 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail782;
    2290         2934 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail782;
    2291         2934 :   {
    2292         2934 :     tree res_op0;
    2293         2934 :     res_op0 = captures[0];
    2294         2934 :     tree _r;
    2295         2934 :     _r = non_lvalue_loc (loc, res_op0);
    2296         2934 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 647, __FILE__, __LINE__, true);
    2297              :     return _r;
    2298              :   }
    2299         2934 : next_after_fail782:;
    2300              :   return NULL_TREE;
    2301              : }
    2302              : 
    2303              : tree
    2304            0 : generic_simplify_453 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2305              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    2306              : {
    2307            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2308            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail792;
    2309            0 :   {
    2310            0 :     tree res_op0;
    2311            0 :     res_op0 = captures[0];
    2312            0 :     tree res_op1;
    2313            0 :     {
    2314            0 :       tree _o1[2], _r1;
    2315            0 :       _o1[0] = captures[2];
    2316            0 :       _o1[1] = captures[1];
    2317            0 :       _r1 = fold_build2_loc (loc, LSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2318            0 :       res_op1 = _r1;
    2319              :     }
    2320            0 :     tree _r;
    2321            0 :     _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    2322            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 655, __FILE__, __LINE__, true);
    2323              :     return _r;
    2324              :   }
    2325            0 : next_after_fail792:;
    2326            0 :   return NULL_TREE;
    2327              : }
    2328              : 
    2329              : tree
    2330      3810791 : generic_simplify_457 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2331              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    2332              :  const enum tree_code ARG_UNUSED (bitop))
    2333              : {
    2334      3810791 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2335      3810791 :   if (0
    2336              :  && TREE_CODE (captures[3]) != INTEGER_CST
    2337              :  && tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
    2338              :  && types_match (type, captures[2])
    2339              :  && !POINTER_TYPE_P (TREE_TYPE (captures[2]))
    2340              :  && TREE_CODE (TREE_TYPE (captures[2])) != OFFSET_TYPE
    2341              : )
    2342              :     {
    2343              :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail801;
    2344              :       {
    2345              :         tree res_op0;
    2346              :         res_op0 = captures[2];
    2347              :         tree res_op1;
    2348              :         {
    2349              :           tree _o1[1], _r1;
    2350              :           _o1[0] = captures[3];
    2351              :           if (TREE_TYPE (_o1[0]) != type)
    2352              :             {
    2353              :               _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    2354              :             }
    2355              :           else
    2356              :             _r1 = _o1[0];
    2357              :           res_op1 = _r1;
    2358              :         }
    2359              :         tree _r;
    2360              :         _r = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
    2361              :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 664, __FILE__, __LINE__, true);
    2362              :         return _r;
    2363              :       }
    2364              : next_after_fail801:;
    2365              :     }
    2366      3810791 :   return NULL_TREE;
    2367              : }
    2368              : 
    2369              : tree
    2370         8104 : generic_simplify_460 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2371              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    2372              :  const enum tree_code ARG_UNUSED (minmax))
    2373              : {
    2374         8104 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2375         8104 :   if (INTEGRAL_TYPE_P (type)
    2376         8104 :  && types_match (captures[1], type) && int_fits_type_p (captures[2], type)
    2377          659 :  && TYPE_SIGN (TREE_TYPE (captures[0])) == TYPE_SIGN (type)
    2378         8104 :  && TYPE_PRECISION (TREE_TYPE (captures[0])) > TYPE_PRECISION (type)
    2379              : )
    2380              :     {
    2381            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail806;
    2382            0 :       {
    2383            0 :         tree res_op0;
    2384            0 :         res_op0 = captures[1];
    2385            0 :         tree res_op1;
    2386            0 :         {
    2387            0 :           tree _o1[1], _r1;
    2388            0 :           _o1[0] = captures[2];
    2389            0 :           if (TREE_TYPE (_o1[0]) != type)
    2390              :             {
    2391            0 :               _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    2392              :             }
    2393              :           else
    2394              :             _r1 = _o1[0];
    2395            0 :           res_op1 = _r1;
    2396              :         }
    2397            0 :         tree _r;
    2398            0 :         _r = fold_build2_loc (loc, minmax, type, res_op0, res_op1);
    2399            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 669, __FILE__, __LINE__, true);
    2400              :         return _r;
    2401              :       }
    2402            0 : next_after_fail806:;
    2403              :     }
    2404              :   return NULL_TREE;
    2405              : }
    2406              : 
    2407              : tree
    2408            0 : generic_simplify_466 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2409              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    2410              :  const combined_fn ARG_UNUSED (copysigns),
    2411              :  const combined_fn ARG_UNUSED (coss))
    2412              : {
    2413            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2414            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail824;
    2415            0 :   {
    2416            0 :     tree res_op0;
    2417            0 :     res_op0 = captures[0];
    2418            0 :     tree _r;
    2419            0 :     _r = maybe_build_call_expr_loc (loc, coss, type, 1, res_op0);
    2420            0 :     if (!_r)
    2421            0 :       goto next_after_fail824;
    2422            0 :     if (TREE_SIDE_EFFECTS (captures[1]))
    2423            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2424            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 675, __FILE__, __LINE__, true);
    2425              :     return _r;
    2426              :   }
    2427            0 : next_after_fail824:;
    2428              :   return NULL_TREE;
    2429              : }
    2430              : 
    2431              : tree
    2432            0 : generic_simplify_469 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2433              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2434              :  const combined_fn ARG_UNUSED (copysigns),
    2435              :  const combined_fn ARG_UNUSED (pows))
    2436              : {
    2437            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2438            0 :   {
    2439            0 :  HOST_WIDE_INT n;
    2440            0 :       if (real_isinteger (&TREE_REAL_CST (captures[2]), &n) && (n & 1) == 0
    2441              : )
    2442              :         {
    2443            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail827;
    2444            0 :           {
    2445            0 :             tree res_op0;
    2446            0 :             res_op0 = captures[0];
    2447            0 :             tree res_op1;
    2448            0 :             res_op1 = captures[2];
    2449            0 :             tree _r;
    2450            0 :             _r = maybe_build_call_expr_loc (loc, pows, type, 2, res_op0, res_op1);
    2451            0 :             if (!_r)
    2452            0 :               goto next_after_fail827;
    2453            0 :             if (TREE_SIDE_EFFECTS (captures[1]))
    2454            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2455            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 678, __FILE__, __LINE__, true);
    2456            0 :             return _r;
    2457              :           }
    2458            0 : next_after_fail827:;
    2459              :         }
    2460              :   }
    2461            0 :   return NULL_TREE;
    2462              : }
    2463              : 
    2464              : tree
    2465            0 : generic_simplify_471 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2466              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2467              :  const combined_fn ARG_UNUSED (pow))
    2468              : {
    2469            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2470            0 :   if (flag_unsafe_math_optimizations
    2471              : )
    2472              :     {
    2473            0 :       if (! HONOR_INFINITIES (type)
    2474            0 :  && ! flag_trapping_math
    2475            0 :  && ! flag_errno_math
    2476              : )
    2477              :         {
    2478            0 :           if (! HONOR_NANS (type) && ! HONOR_SIGNED_ZEROS (type)
    2479              : )
    2480              :             {
    2481            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail829;
    2482            0 :               {
    2483            0 :                 tree _r;
    2484            0 :                 _r = captures[0];
    2485            0 :                 if (TREE_SIDE_EFFECTS (captures[1]))
    2486            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2487            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 680, __FILE__, __LINE__, true);
    2488              :                 return _r;
    2489              :               }
    2490            0 : next_after_fail829:;
    2491              :             }
    2492              :         }
    2493              :     }
    2494              :   return NULL_TREE;
    2495              : }
    2496              : 
    2497              : tree
    2498            0 : generic_simplify_474 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2499              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2500              :  const combined_fn ARG_UNUSED (copysigns),
    2501              :  const combined_fn ARG_UNUSED (hypots))
    2502              : {
    2503            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2504            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail832;
    2505            0 :   {
    2506            0 :     tree res_op0;
    2507            0 :     res_op0 = captures[0];
    2508            0 :     tree res_op1;
    2509            0 :     res_op1 = captures[2];
    2510            0 :     tree _r;
    2511            0 :     _r = maybe_build_call_expr_loc (loc, hypots, type, 2, res_op0, res_op1);
    2512            0 :     if (!_r)
    2513            0 :       goto next_after_fail832;
    2514            0 :     if (TREE_SIDE_EFFECTS (captures[1]))
    2515            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2516            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 683, __FILE__, __LINE__, true);
    2517              :     return _r;
    2518              :   }
    2519            0 : next_after_fail832:;
    2520              :   return NULL_TREE;
    2521              : }
    2522              : 
    2523              : tree
    2524            8 : generic_simplify_479 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2525              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    2526              : {
    2527            8 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2528           16 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    2529           16 :  && TYPE_PRECISION (TREE_TYPE (captures[0])) == 1
    2530              : )
    2531              :     {
    2532            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail837;
    2533            0 :       {
    2534            0 :         tree res_op0;
    2535            0 :         res_op0 = captures[0];
    2536            0 :         tree res_op1;
    2537            0 :         res_op1 = captures[1];
    2538            0 :         tree _r;
    2539            0 :         _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    2540            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 688, __FILE__, __LINE__, true);
    2541              :         return _r;
    2542              :       }
    2543            0 : next_after_fail837:;
    2544              :     }
    2545              :   return NULL_TREE;
    2546              : }
    2547              : 
    2548              : tree
    2549            2 : generic_simplify_484 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2550              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    2551              : {
    2552            2 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2553            2 :   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail842;
    2554            2 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail842;
    2555            2 :   {
    2556            2 :     tree res_op0;
    2557            2 :     res_op0 = captures[0];
    2558            2 :     tree res_op1;
    2559            2 :     {
    2560            2 :       tree _o1[1], _r1;
    2561            2 :       _o1[0] = captures[5];
    2562            2 :       _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    2563            2 :       res_op1 = _r1;
    2564              :     }
    2565            2 :     tree _r;
    2566            2 :     _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    2567            2 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 693, __FILE__, __LINE__, true);
    2568              :     return _r;
    2569              :   }
    2570            2 : next_after_fail842:;
    2571              :   return NULL_TREE;
    2572              : }
    2573              : 
    2574              : tree
    2575            0 : generic_simplify_491 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2576              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    2577              : {
    2578            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2579            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail849;
    2580            0 :   {
    2581            0 :     tree res_op0;
    2582            0 :     res_op0 = captures[0];
    2583            0 :     tree res_op1;
    2584            0 :     res_op1 = captures[1];
    2585            0 :     tree _r;
    2586            0 :     _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
    2587            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 699, __FILE__, __LINE__, true);
    2588              :     return _r;
    2589              :   }
    2590            0 : next_after_fail849:;
    2591            0 :   return NULL_TREE;
    2592              : }
    2593              : 
    2594              : tree
    2595           13 : generic_simplify_495 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2596              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    2597              : {
    2598           13 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2599           13 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail853;
    2600           13 :   {
    2601           13 :     tree _r;
    2602           13 :     _r =  build_zero_cst (type);
    2603           13 :     if (TREE_SIDE_EFFECTS (captures[0]))
    2604            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    2605           13 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 703, __FILE__, __LINE__, true);
    2606              :     return _r;
    2607              :   }
    2608            0 : next_after_fail853:;
    2609            0 :   return NULL_TREE;
    2610              : }
    2611              : 
    2612              : tree
    2613            8 : generic_simplify_500 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2614              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2615              :  const enum tree_code ARG_UNUSED (eqne))
    2616              : {
    2617            8 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2618            8 :   if (eqne == EQ_EXPR
    2619              : )
    2620              :     {
    2621            4 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail859;
    2622            4 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail859;
    2623            4 :       {
    2624            4 :         tree _r;
    2625            4 :         _r =  constant_boolean_node (false, type);
    2626            4 :         if (TREE_SIDE_EFFECTS (captures[2]))
    2627            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2628            4 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 708, __FILE__, __LINE__, true);
    2629              :         return _r;
    2630              :       }
    2631            8 : next_after_fail859:;
    2632              :     }
    2633              :   else
    2634              :     {
    2635            4 :       if (eqne == NE_EXPR
    2636              : )
    2637              :         {
    2638            4 :           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail860;
    2639            4 :           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail860;
    2640            4 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail860;
    2641            4 :           {
    2642            4 :             tree _r;
    2643            4 :             _r = captures[0];
    2644            4 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 709, __FILE__, __LINE__, true);
    2645              :             return _r;
    2646              :           }
    2647            8 : next_after_fail860:;
    2648              :         }
    2649              :     }
    2650              :   return NULL_TREE;
    2651              : }
    2652              : 
    2653              : tree
    2654            4 : generic_simplify_511 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2655              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    2656              : {
    2657            4 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2658            4 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail903;
    2659            4 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail903;
    2660            4 :   {
    2661            4 :     tree _r;
    2662            4 :     _r = captures[2];
    2663            4 :     if (TREE_SIDE_EFFECTS (captures[1]))
    2664            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2665            4 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 724, __FILE__, __LINE__, true);
    2666              :     return _r;
    2667              :   }
    2668            4 : next_after_fail903:;
    2669              :   return NULL_TREE;
    2670              : }
    2671              : 
    2672              : tree
    2673        34504 : generic_simplify_515 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2674              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2675              :  const enum tree_code ARG_UNUSED (shift))
    2676              : {
    2677        34504 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2678        34504 :   if (tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
    2679        34504 :  && TYPE_PRECISION (type) <= HOST_BITS_PER_WIDE_INT
    2680        34504 :  && tree_fits_uhwi_p (captures[4])
    2681        34504 :  && tree_to_uhwi (captures[4]) > 0
    2682        69007 :  && tree_to_uhwi (captures[4]) < TYPE_PRECISION (type)
    2683              : )
    2684              :     {
    2685        34503 :       {
    2686        34503 :  unsigned int shiftc = tree_to_uhwi (captures[4]);
    2687        34503 :  unsigned HOST_WIDE_INT mask = TREE_INT_CST_LOW (captures[5]);
    2688        34503 :  unsigned HOST_WIDE_INT newmask, zerobits = 0;
    2689        34503 :  tree shift_type = TREE_TYPE (captures[2]);
    2690        34503 :  unsigned int prec;
    2691        34503 :  if (shift == LSHIFT_EXPR)
    2692         5454 :  zerobits = ((HOST_WIDE_INT_1U << shiftc) - 1);
    2693        29049 :  else if (shift == RSHIFT_EXPR
    2694        29049 :  && type_has_mode_precision_p (shift_type))
    2695              :  {
    2696        29049 :  prec = TYPE_PRECISION (TREE_TYPE (captures[2]));
    2697        29049 :  tree arg00 = captures[3];
    2698        29049 :  if (captures[2] != captures[3]
    2699        29049 :  && TYPE_UNSIGNED (TREE_TYPE (captures[3])))
    2700              :  {
    2701        28799 :  tree inner_type = TREE_TYPE (captures[3]);
    2702        28799 :  if (type_has_mode_precision_p (inner_type)
    2703        28799 :  && TYPE_PRECISION (inner_type) < prec)
    2704              :  {
    2705          270 :  prec = TYPE_PRECISION (inner_type);
    2706          270 :  if (shiftc < prec)
    2707          269 :  shift_type = inner_type;
    2708              :  }
    2709              :  }
    2710        29049 :  zerobits = HOST_WIDE_INT_M1U;
    2711        29049 :  if (shiftc < prec)
    2712              :  {
    2713        29048 :  zerobits >>= HOST_BITS_PER_WIDE_INT - shiftc;
    2714        29048 :  zerobits <<= prec - shiftc;
    2715              :  }
    2716        29049 :  if (!TYPE_UNSIGNED (TREE_TYPE (captures[2]))
    2717        29049 :  && prec == TYPE_PRECISION (TREE_TYPE (captures[2])))
    2718              :  {
    2719          818 :  if ((mask & zerobits) == 0)
    2720          811 :  shift_type = unsigned_type_for (TREE_TYPE (captures[2]));
    2721              :  else
    2722              :  zerobits = 0;
    2723              :  }
    2724              :  }
    2725        34496 :           if ((mask & zerobits) == mask
    2726              : )
    2727              :             {
    2728            1 :               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail907;
    2729            1 :               if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail907;
    2730            1 :               if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail907;
    2731            1 :               if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail907;
    2732            1 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail907;
    2733            1 :               {
    2734            1 :                 tree _r;
    2735            1 :                 _r =  build_int_cst (type, 0);
    2736            1 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 728, __FILE__, __LINE__, true);
    2737        34504 :                 return _r;
    2738              :               }
    2739        34504 : next_after_fail907:;
    2740              :             }
    2741              :           else
    2742              :             {
    2743        34502 :               {
    2744        34502 :  newmask = mask | zerobits;
    2745        34502 :                   if (newmask != mask && (newmask & (newmask + 1)) == 0
    2746              : )
    2747              :                     {
    2748              :                       {
    2749         7356 :  for (prec = BITS_PER_UNIT;
    2750        11252 :  prec < HOST_BITS_PER_WIDE_INT; prec <<= 1)
    2751         9056 :  if (newmask == (HOST_WIDE_INT_1U << prec) - 1)
    2752              :  break;
    2753         3896 :                           if (prec < HOST_BITS_PER_WIDE_INT
    2754         2196 :  || newmask == HOST_WIDE_INT_M1U
    2755              : )
    2756              :                             {
    2757         2120 :                               {
    2758         2120 :  tree newmaskt = build_int_cst_type (TREE_TYPE (captures[5]), newmask);
    2759         2120 :                                   if (!tree_int_cst_equal (newmaskt, captures[5])
    2760              : )
    2761              :                                     {
    2762         2120 :                                       if (shift_type != TREE_TYPE (captures[2])
    2763              : )
    2764              :                                         {
    2765           88 :                                           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail908;
    2766           88 :                                           if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail908;
    2767           88 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail908;
    2768           88 :                                           {
    2769           88 :                                             tree res_op0;
    2770           88 :                                             {
    2771           88 :                                               tree _o1[1], _r1;
    2772           88 :                                               {
    2773           88 :                                                 tree _o2[2], _r2;
    2774           88 :                                                 {
    2775           88 :                                                   tree _o3[1], _r3;
    2776           88 :                                                   _o3[0] = captures[2];
    2777           88 :                                                   if (TREE_TYPE (_o3[0]) != shift_type)
    2778              :                                                     {
    2779           88 :                                                       _r3 = fold_build1_loc (loc, NOP_EXPR, shift_type, _o3[0]);
    2780              :                                                     }
    2781              :                                                   else
    2782              :                                                     _r3 = _o3[0];
    2783           88 :                                                   _o2[0] = _r3;
    2784              :                                                 }
    2785           88 :                                                 _o2[1] = captures[4];
    2786           88 :                                                 _r2 = fold_build2_loc (loc, shift, shift_type, _o2[0], _o2[1]);
    2787           88 :                                                 _o1[0] = _r2;
    2788              :                                               }
    2789           88 :                                               if (TREE_TYPE (_o1[0]) != type)
    2790              :                                                 {
    2791           88 :                                                   _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    2792              :                                                 }
    2793              :                                               else
    2794              :                                                 _r1 = _o1[0];
    2795           88 :                                               res_op0 = _r1;
    2796              :                                             }
    2797           88 :                                             tree res_op1;
    2798           88 :                                             res_op1 =  newmaskt;
    2799           88 :                                             tree _r;
    2800           88 :                                             _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    2801           88 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 729, __FILE__, __LINE__, true);
    2802              :                                             return _r;
    2803              :                                           }
    2804        34504 : next_after_fail908:;
    2805              :                                         }
    2806              :                                       else
    2807              :                                         {
    2808         2032 :                                           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail909;
    2809          897 :                                           if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail909;
    2810          897 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail909;
    2811          897 :                                           {
    2812          897 :                                             tree res_op0;
    2813          897 :                                             res_op0 = captures[0];
    2814          897 :                                             tree res_op1;
    2815          897 :                                             res_op1 =  newmaskt;
    2816          897 :                                             tree _r;
    2817          897 :                                             _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    2818          897 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 730, __FILE__, __LINE__, true);
    2819              :                                             return _r;
    2820              :                                           }
    2821        34504 : next_after_fail909:;
    2822              :                                         }
    2823              :                                     }
    2824              :                               }
    2825              :                             }
    2826              :                       }
    2827              :                     }
    2828              :               }
    2829              :             }
    2830              :       }
    2831              :     }
    2832              :   return NULL_TREE;
    2833              : }
    2834              : 
    2835              : tree
    2836            0 : generic_simplify_524 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2837              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    2838              : {
    2839            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2840            0 :   {
    2841            0 :  tree ltype0 = TREE_TYPE (captures[0]);
    2842            0 :  tree ltype1 = TREE_TYPE (captures[3]);
    2843            0 :       if (INTEGRAL_TYPE_P (type)
    2844            0 :  && INTEGRAL_TYPE_P (ltype0)
    2845            0 :  && INTEGRAL_TYPE_P (ltype1)
    2846            0 :  && element_precision (type) <= element_precision (ltype0)
    2847            0 :  && element_precision (ltype0) <= element_precision (ltype1)
    2848              : )
    2849              :         {
    2850            0 :           if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail926;
    2851            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail926;
    2852            0 :           {
    2853            0 :             tree res_op0;
    2854            0 :             {
    2855            0 :               tree _o1[2], _r1;
    2856            0 :               _o1[0] =  captures[4];
    2857            0 :               _o1[1] = captures[2];
    2858            0 :               _r1 = fold_build2_loc (loc, LSHIFT_EXPR, ltype1, _o1[0], _o1[1]);
    2859            0 :               res_op0 = _r1;
    2860              :             }
    2861            0 :             tree _r;
    2862            0 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    2863            0 :             if (TREE_SIDE_EFFECTS (captures[1]))
    2864            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2865            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 738, __FILE__, __LINE__, true);
    2866              :             return _r;
    2867              :           }
    2868            0 : next_after_fail926:;
    2869              :         }
    2870              :   }
    2871              :   return NULL_TREE;
    2872              : }
    2873              : 
    2874              : tree
    2875            4 : generic_simplify_533 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2876              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
    2877              : {
    2878            4 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2879            4 :   if (!TYPE_UNSIGNED (TREE_TYPE (captures[2]))
    2880            7 :  && (element_precision (TREE_TYPE (captures[2]))
    2881            3 :  <= element_precision (TREE_TYPE (captures[3]))
    2882            0 :  || !TYPE_UNSIGNED (TREE_TYPE (captures[3])))
    2883              : )
    2884              :     {
    2885            3 :       {
    2886            3 :  tree shift_type = TREE_TYPE (captures[2]);
    2887            3 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail935;
    2888            3 :           {
    2889            3 :             tree res_op0;
    2890            3 :             {
    2891            3 :               tree _o1[2], _r1;
    2892            3 :               {
    2893            3 :                 tree _o2[1], _r2;
    2894            3 :                 _o2[0] = captures[3];
    2895            3 :                 if (TREE_TYPE (_o2[0]) != shift_type)
    2896              :                   {
    2897            1 :                     _r2 = fold_build1_loc (loc, NOP_EXPR, shift_type, _o2[0]);
    2898              :                   }
    2899              :                 else
    2900              :                   _r2 = _o2[0];
    2901            3 :                 _o1[0] = _r2;
    2902              :               }
    2903            3 :               _o1[1] = captures[4];
    2904            3 :               _r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2905            3 :               res_op0 = _r1;
    2906              :             }
    2907            3 :             tree _r;
    2908            3 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    2909            3 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 743, __FILE__, __LINE__, true);
    2910              :             return _r;
    2911              :           }
    2912            0 : next_after_fail935:;
    2913              :       }
    2914              :     }
    2915              :   return NULL_TREE;
    2916              : }
    2917              : 
    2918              : tree
    2919          416 : generic_simplify_543 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2920              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
    2921              : {
    2922          416 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2923          416 :   if (tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
    2924          416 :  && wi::to_wide (captures[1]) == element_precision (type) - 1
    2925              : )
    2926              :     {
    2927           44 :       {
    2928           44 :  tree stype = TREE_TYPE (captures[0]);
    2929           44 :  tree ntype = TYPE_UNSIGNED (stype) ? signed_type_for (stype)
    2930            9 :  : unsigned_type_for (stype);
    2931           44 :           if (VECTOR_TYPE_P (type)
    2932              : )
    2933              :             {
    2934            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail946;
    2935            0 :               {
    2936            0 :                 tree res_op0;
    2937            0 :                 {
    2938            0 :                   tree _o1[2], _r1;
    2939            0 :                   {
    2940            0 :                     tree _o2[1], _r2;
    2941            0 :                     _o2[0] = captures[0];
    2942            0 :                     if (TREE_TYPE (_o2[0]) != ntype)
    2943              :                       {
    2944            0 :                         _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, ntype, _o2[0]);
    2945              :                       }
    2946              :                     else
    2947              :                       _r2 = _o2[0];
    2948            0 :                     _o1[0] = _r2;
    2949              :                   }
    2950            0 :                   _o1[1] = captures[1];
    2951            0 :                   _r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2952            0 :                   res_op0 = _r1;
    2953              :                 }
    2954            0 :                 tree _r;
    2955            0 :                 _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
    2956            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 756, __FILE__, __LINE__, true);
    2957              :                 return _r;
    2958              :               }
    2959            0 : next_after_fail946:;
    2960              :             }
    2961              :           else
    2962              :             {
    2963           44 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail947;
    2964           44 :               {
    2965           44 :                 tree res_op0;
    2966           44 :                 {
    2967           44 :                   tree _o1[2], _r1;
    2968           44 :                   {
    2969           44 :                     tree _o2[1], _r2;
    2970           44 :                     _o2[0] = captures[0];
    2971           44 :                     if (TREE_TYPE (_o2[0]) != ntype)
    2972              :                       {
    2973           44 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, ntype, _o2[0]);
    2974              :                       }
    2975              :                     else
    2976              :                       _r2 = _o2[0];
    2977           44 :                     _o1[0] = _r2;
    2978              :                   }
    2979           44 :                   _o1[1] = captures[1];
    2980           44 :                   _r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2981           44 :                   res_op0 = _r1;
    2982              :                 }
    2983           44 :                 tree _r;
    2984           44 :                 _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    2985           44 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 757, __FILE__, __LINE__, true);
    2986              :                 return _r;
    2987              :               }
    2988            0 : next_after_fail947:;
    2989              :             }
    2990              :       }
    2991              :     }
    2992              :   return NULL_TREE;
    2993              : }
    2994              : 
    2995              : tree
    2996            2 : generic_simplify_562 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2997              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2998              :  const enum tree_code ARG_UNUSED (op),
    2999              :  const enum tree_code ARG_UNUSED (logic))
    3000              : {
    3001            2 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3002            2 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail980;
    3003            2 :   {
    3004            2 :     tree res_op0;
    3005            2 :     res_op0 = captures[0];
    3006            2 :     tree res_op1;
    3007            2 :     res_op1 = captures[1];
    3008            2 :     tree _r;
    3009            2 :     _r = fold_build2_loc (loc, logic, type, res_op0, res_op1);
    3010            2 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 777, __FILE__, __LINE__, true);
    3011              :     return _r;
    3012              :   }
    3013            0 : next_after_fail980:;
    3014            0 :   return NULL_TREE;
    3015              : }
    3016              : 
    3017              : tree
    3018            0 : generic_simplify_568 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3019              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    3020              :  const combined_fn ARG_UNUSED (FMIN_ALL))
    3021              : {
    3022            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3023            0 :   if (flag_finite_math_only
    3024              : )
    3025              :     {
    3026            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail986;
    3027            0 :       {
    3028            0 :         tree res_op0;
    3029            0 :         res_op0 = captures[0];
    3030            0 :         tree res_op1;
    3031            0 :         res_op1 = captures[1];
    3032            0 :         tree _r;
    3033            0 :         _r = fold_build2_loc (loc, MIN_EXPR, type, res_op0, res_op1);
    3034            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 783, __FILE__, __LINE__, true);
    3035              :         return _r;
    3036              :       }
    3037            0 : next_after_fail986:;
    3038              :     }
    3039              :   return NULL_TREE;
    3040              : }
    3041              : 
    3042              : tree
    3043            0 : generic_simplify_573 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3044              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    3045              :  const enum tree_code ARG_UNUSED (cmp))
    3046              : {
    3047            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3048            0 :   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail991;
    3049            0 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail991;
    3050            0 :   if (TREE_SIDE_EFFECTS (_p2)) goto next_after_fail991;
    3051            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail991;
    3052            0 :   {
    3053            0 :     tree _r;
    3054            0 :     _r = captures[0];
    3055            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 566, __FILE__, __LINE__, true);
    3056              :     return _r;
    3057              :   }
    3058            0 : next_after_fail991:;
    3059              :   return NULL_TREE;
    3060              : }
    3061              : 
    3062              : tree
    3063            0 : generic_simplify_583 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3064              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    3065              :  const combined_fn ARG_UNUSED (cond_op))
    3066              : {
    3067            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3068            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1001;
    3069            0 :   {
    3070            0 :     tree res_op0;
    3071            0 :     {
    3072            0 :       tree _o1[2], _r1;
    3073            0 :       _o1[0] = captures[2];
    3074            0 :       _o1[1] = captures[0];
    3075            0 :       _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    3076            0 :       res_op0 = _r1;
    3077              :     }
    3078            0 :     tree res_op1;
    3079            0 :     res_op1 = captures[3];
    3080            0 :     tree res_op2;
    3081            0 :     res_op2 = captures[4];
    3082            0 :     tree res_op3;
    3083            0 :     res_op3 = captures[5];
    3084            0 :     tree res_op4;
    3085            0 :     res_op4 = captures[6];
    3086            0 :     tree _r;
    3087            0 :     _r = maybe_build_call_expr_loc (loc, cond_op, type, 5, res_op0, res_op1, res_op2, res_op3, res_op4);
    3088            0 :     if (!_r)
    3089            0 :       goto next_after_fail1001;
    3090            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 794, __FILE__, __LINE__, true);
    3091              :     return _r;
    3092              :   }
    3093            0 : next_after_fail1001:;
    3094              :   return NULL_TREE;
    3095              : }
    3096              : 
    3097              : tree
    3098            0 : generic_simplify_588 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3099              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3100              :  const combined_fn ARG_UNUSED (bswap))
    3101              : {
    3102            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3103            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1009;
    3104            0 :   {
    3105            0 :     tree _r;
    3106            0 :     _r = captures[0];
    3107            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 802, __FILE__, __LINE__, true);
    3108              :     return _r;
    3109              :   }
    3110            0 : next_after_fail1009:;
    3111            0 :   return NULL_TREE;
    3112              : }
    3113              : 
    3114              : tree
    3115            0 : generic_simplify_595 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3116              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    3117              :  const combined_fn ARG_UNUSED (ovf))
    3118              : {
    3119            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3120            0 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
    3121            0 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    3122            0 :  && TYPE_PRECISION (TREE_TYPE (captures[1])) > TYPE_PRECISION (TREE_TYPE (captures[2]))
    3123            0 :  && (!TYPE_UNSIGNED (TREE_TYPE (captures[1])) || TYPE_UNSIGNED (TREE_TYPE (captures[2])))
    3124              : )
    3125              :     {
    3126            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1016;
    3127            0 :       {
    3128            0 :         tree res_op0;
    3129            0 :         res_op0 = captures[0];
    3130            0 :         tree res_op1;
    3131            0 :         res_op1 = captures[2];
    3132            0 :         tree _r;
    3133            0 :         _r = maybe_build_call_expr_loc (loc, ovf, type, 2, res_op0, res_op1);
    3134            0 :         if (!_r)
    3135            0 :           goto next_after_fail1016;
    3136            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 809, __FILE__, __LINE__, true);
    3137              :         return _r;
    3138              :       }
    3139            0 : next_after_fail1016:;
    3140              :     }
    3141              :   return NULL_TREE;
    3142              : }
    3143              : 
    3144              : tree
    3145            0 : generic_simplify_603 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3146              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3147              :  const combined_fn ARG_UNUSED (fns))
    3148              : {
    3149            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3150            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1024;
    3151            0 :   {
    3152            0 :     tree _r;
    3153            0 :     _r = captures[0];
    3154            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 817, __FILE__, __LINE__, true);
    3155              :     return _r;
    3156              :   }
    3157            0 : next_after_fail1024:;
    3158            0 :   return NULL_TREE;
    3159              : }
    3160              : 
    3161              : tree
    3162            0 : generic_simplify_608 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3163              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    3164              : {
    3165            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3166            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1029;
    3167            0 :   {
    3168            0 :     tree _r;
    3169            0 :     _r = captures[0];
    3170            0 :     if (TREE_SIDE_EFFECTS (captures[1]))
    3171            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    3172            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 822, __FILE__, __LINE__, true);
    3173              :     return _r;
    3174              :   }
    3175            0 : next_after_fail1029:;
    3176            0 :   return NULL_TREE;
    3177              : }
    3178              : 
    3179              : tree
    3180            0 : generic_simplify_615 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3181              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3182              :  const combined_fn ARG_UNUSED (rints))
    3183              : {
    3184            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3185            0 :   if (canonicalize_math_p ()
    3186              : )
    3187              :     {
    3188            0 :       if (!flag_errno_math
    3189              : )
    3190              :         {
    3191            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1036;
    3192            0 :           {
    3193            0 :             tree res_op0;
    3194            0 :             res_op0 = captures[0];
    3195            0 :             tree _r;
    3196            0 :             _r = fold_build1_loc (loc, FIX_TRUNC_EXPR, type, res_op0);
    3197            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 829, __FILE__, __LINE__, true);
    3198              :             return _r;
    3199              :           }
    3200            0 : next_after_fail1036:;
    3201              :         }
    3202              :     }
    3203              :   return NULL_TREE;
    3204              : }
    3205              : 
    3206              : tree
    3207            0 : generic_simplify_622 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3208              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
    3209              : {
    3210            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3211            0 :   if (canonicalize_math_after_vectorization_p ()
    3212              : )
    3213              :     {
    3214              :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1043;
    3215              :       {
    3216              :         tree res_op0;
    3217              :         res_op0 = captures[0];
    3218              :         tree res_op1;
    3219              :         res_op1 = captures[1];
    3220              :         tree res_op2;
    3221              :         res_op2 = captures[2];
    3222              :         tree _r;
    3223              :         _r = maybe_build_call_expr_loc (loc, CFN_FNMS, type, 3, res_op0, res_op1, res_op2);
    3224              :         if (!_r)
    3225              :           goto next_after_fail1043;
    3226              :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 836, __FILE__, __LINE__, true);
    3227              :         return _r;
    3228              :       }
    3229            0 : next_after_fail1043:;
    3230              :     }
    3231            0 :   return NULL_TREE;
    3232              : }
    3233              : 
    3234              : tree
    3235            0 : generic_simplify_631 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3236              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree ARG_UNUSED (_p3), tree ARG_UNUSED (_p4), tree *ARG_UNUSED (captures))
    3237              : {
    3238            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3239            0 :   if (canonicalize_math_after_vectorization_p ()
    3240              : )
    3241              :     {
    3242              :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1052;
    3243              :       {
    3244              :         tree res_op0;
    3245              :         res_op0 = captures[0];
    3246              :         tree res_op1;
    3247              :         res_op1 = captures[1];
    3248              :         tree res_op2;
    3249              :         res_op2 = captures[2];
    3250              :         tree res_op3;
    3251              :         res_op3 = captures[3];
    3252              :         tree res_op4;
    3253              :         res_op4 = captures[4];
    3254              :         tree _r;
    3255              :         _r = maybe_build_call_expr_loc (loc, CFN_COND_FNMA, type, 5, res_op0, res_op1, res_op2, res_op3, res_op4);
    3256              :         if (!_r)
    3257              :           goto next_after_fail1052;
    3258              :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 845, __FILE__, __LINE__, true);
    3259              :         return _r;
    3260              :       }
    3261            0 : next_after_fail1052:;
    3262              :     }
    3263            0 :   return NULL_TREE;
    3264              : }
    3265              : 
    3266              : tree
    3267            0 : generic_simplify_640 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3268              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3269              :  const combined_fn ARG_UNUSED (bswap),
    3270              :  const combined_fn ARG_UNUSED (popcount))
    3271              : {
    3272            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3273            0 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    3274            0 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    3275              : )
    3276              :     {
    3277            0 :       {
    3278            0 :  tree type0 = TREE_TYPE (captures[0]);
    3279            0 :  tree type1 = TREE_TYPE (captures[1]);
    3280            0 :  unsigned int prec0 = TYPE_PRECISION (type0);
    3281            0 :  unsigned int prec1 = TYPE_PRECISION (type1);
    3282            0 :           if (prec0 == prec1 || (prec0 > prec1 && TYPE_UNSIGNED (type1))
    3283              : )
    3284              :             {
    3285            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1061;
    3286            0 :               {
    3287            0 :                 tree res_op0;
    3288            0 :                 {
    3289            0 :                   tree _o1[1], _r1;
    3290            0 :                   {
    3291            0 :                     tree _o2[1], _r2;
    3292            0 :                     _o2[0] = captures[2];
    3293            0 :                     if (TREE_TYPE (_o2[0]) != type1)
    3294              :                       {
    3295            0 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, type1, _o2[0]);
    3296              :                       }
    3297              :                     else
    3298              :                       _r2 = _o2[0];
    3299            0 :                     _o1[0] = _r2;
    3300              :                   }
    3301            0 :                   if (TREE_TYPE (_o1[0]) != type0)
    3302              :                     {
    3303            0 :                       _r1 = fold_build1_loc (loc, NOP_EXPR, type0, _o1[0]);
    3304              :                     }
    3305              :                   else
    3306              :                     _r1 = _o1[0];
    3307            0 :                   res_op0 = _r1;
    3308              :                 }
    3309            0 :                 tree _r;
    3310            0 :                 _r = maybe_build_call_expr_loc (loc, popcount, type, 1, res_op0);
    3311            0 :                 if (!_r)
    3312            0 :                   goto next_after_fail1061;
    3313            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 851, __FILE__, __LINE__, true);
    3314              :                 return _r;
    3315              :               }
    3316            0 : next_after_fail1061:;
    3317              :             }
    3318              :       }
    3319              :     }
    3320              :   return NULL_TREE;
    3321              : }
    3322              : 
    3323              : tree
    3324            0 : generic_simplify_652 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3325              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3326              :  const combined_fn ARG_UNUSED (reduc))
    3327              : {
    3328            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3329            0 :   {
    3330            0 :  tree ctor = (TREE_CODE (captures[0]) == SSA_NAME
    3331            0 :  ? gimple_assign_rhs1 (SSA_NAME_DEF_STMT (captures[0])) : captures[0]);
    3332            0 :  tree elt = ctor_single_nonzero_element (ctor);
    3333            0 :       if (elt
    3334            0 :  && types_match (type, TREE_TYPE (elt))
    3335            0 :  && !HONOR_SNANS (type)
    3336            0 :  && !HONOR_SIGNED_ZEROS (type)
    3337              : )
    3338              :         {
    3339            0 :           if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail1075;
    3340            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1075;
    3341            0 :           {
    3342            0 :             tree _r;
    3343            0 :             _r =  elt;
    3344            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 861, __FILE__, __LINE__, true);
    3345              :             return _r;
    3346              :           }
    3347            0 : next_after_fail1075:;
    3348              :         }
    3349              :   }
    3350              :   return NULL_TREE;
    3351              : }
    3352              : 
    3353              : tree
    3354      6630384 : generic_simplify_FLOAT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0)
    3355              : {
    3356      6630384 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3357      6630384 :   switch (TREE_CODE (_p0))
    3358              :     {
    3359       566494 :     CASE_CONVERT:
    3360       566494 :       {
    3361       566494 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3362       566494 :         switch (TREE_CODE (_q20))
    3363              :           {
    3364            0 :           case LT_EXPR:
    3365            0 :             {
    3366            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3367            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3368            0 :               {
    3369            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    3370            0 :                 tree res = generic_simplify_545 (loc, type, _p0, captures, LT_EXPR);
    3371            0 :                 if (res) return res;
    3372              :               }
    3373            0 :               break;
    3374              :             }
    3375            0 :           case LE_EXPR:
    3376            0 :             {
    3377            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3378            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3379            0 :               {
    3380            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    3381            0 :                 tree res = generic_simplify_545 (loc, type, _p0, captures, LE_EXPR);
    3382            0 :                 if (res) return res;
    3383              :               }
    3384            0 :               break;
    3385              :             }
    3386            0 :           case EQ_EXPR:
    3387            0 :             {
    3388            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3389            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3390            0 :               {
    3391            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    3392            0 :                 tree res = generic_simplify_545 (loc, type, _p0, captures, EQ_EXPR);
    3393            0 :                 if (res) return res;
    3394              :               }
    3395            0 :               break;
    3396              :             }
    3397            0 :           case NE_EXPR:
    3398            0 :             {
    3399            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3400            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3401            0 :               {
    3402            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    3403            0 :                 tree res = generic_simplify_545 (loc, type, _p0, captures, NE_EXPR);
    3404            0 :                 if (res) return res;
    3405              :               }
    3406            0 :               break;
    3407              :             }
    3408            0 :           case GE_EXPR:
    3409            0 :             {
    3410            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3411            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3412            0 :               {
    3413            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    3414            0 :                 tree res = generic_simplify_545 (loc, type, _p0, captures, GE_EXPR);
    3415            0 :                 if (res) return res;
    3416              :               }
    3417            0 :               break;
    3418              :             }
    3419            0 :           case GT_EXPR:
    3420            0 :             {
    3421            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3422            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3423            0 :               {
    3424            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    3425            0 :                 tree res = generic_simplify_545 (loc, type, _p0, captures, GT_EXPR);
    3426            0 :                 if (res) return res;
    3427              :               }
    3428            0 :               break;
    3429              :             }
    3430            0 :           case UNORDERED_EXPR:
    3431            0 :             {
    3432            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3433            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3434            0 :               {
    3435            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    3436            0 :                 tree res = generic_simplify_545 (loc, type, _p0, captures, UNORDERED_EXPR);
    3437            0 :                 if (res) return res;
    3438              :               }
    3439            0 :               break;
    3440              :             }
    3441            0 :           case ORDERED_EXPR:
    3442            0 :             {
    3443            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3444            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3445            0 :               {
    3446            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    3447            0 :                 tree res = generic_simplify_545 (loc, type, _p0, captures, ORDERED_EXPR);
    3448            0 :                 if (res) return res;
    3449              :               }
    3450            0 :               break;
    3451              :             }
    3452            0 :           case UNLT_EXPR:
    3453            0 :             {
    3454            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3455            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3456            0 :               {
    3457            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    3458            0 :                 tree res = generic_simplify_545 (loc, type, _p0, captures, UNLT_EXPR);
    3459            0 :                 if (res) return res;
    3460              :               }
    3461            0 :               break;
    3462              :             }
    3463            0 :           case UNLE_EXPR:
    3464            0 :             {
    3465            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3466            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3467            0 :               {
    3468            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    3469            0 :                 tree res = generic_simplify_545 (loc, type, _p0, captures, UNLE_EXPR);
    3470            0 :                 if (res) return res;
    3471              :               }
    3472            0 :               break;
    3473              :             }
    3474            0 :           case UNGT_EXPR:
    3475            0 :             {
    3476            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3477            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3478            0 :               {
    3479            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    3480            0 :                 tree res = generic_simplify_545 (loc, type, _p0, captures, UNGT_EXPR);
    3481            0 :                 if (res) return res;
    3482              :               }
    3483            0 :               break;
    3484              :             }
    3485            0 :           case UNGE_EXPR:
    3486            0 :             {
    3487            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3488            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3489            0 :               {
    3490            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    3491            0 :                 tree res = generic_simplify_545 (loc, type, _p0, captures, UNGE_EXPR);
    3492            0 :                 if (res) return res;
    3493              :               }
    3494            0 :               break;
    3495              :             }
    3496            0 :           case UNEQ_EXPR:
    3497            0 :             {
    3498            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3499            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3500            0 :               {
    3501            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    3502            0 :                 tree res = generic_simplify_545 (loc, type, _p0, captures, UNEQ_EXPR);
    3503            0 :                 if (res) return res;
    3504              :               }
    3505            0 :               break;
    3506              :             }
    3507            0 :           case LTGT_EXPR:
    3508            0 :             {
    3509            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3510            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3511            0 :               {
    3512            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    3513            0 :                 tree res = generic_simplify_545 (loc, type, _p0, captures, LTGT_EXPR);
    3514            0 :                 if (res) return res;
    3515              :               }
    3516            0 :               break;
    3517              :             }
    3518              :           default:;
    3519              :           }
    3520              :         break;
    3521              :       }
    3522      6630384 :     default:;
    3523              :     }
    3524      6630384 :   {
    3525      6630384 :     tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    3526     13260768 :     if ((
    3527              : 
    3528              :  && useless_type_conversion_p (type, TREE_TYPE (captures[0])))
    3529              :  || (
    3530              : 1
    3531      6630384 :  && type == TREE_TYPE (captures[0]))
    3532              : )
    3533              :       {
    3534            0 :         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1134;
    3535            0 :         {
    3536            0 :           tree _r;
    3537            0 :           _r = captures[0];
    3538            0 :           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 875, __FILE__, __LINE__, true);
    3539      6630384 :           return _r;
    3540              :         }
    3541            0 : next_after_fail1134:;
    3542              :       }
    3543              :   }
    3544      6630384 :   switch (TREE_CODE (_p0))
    3545              :     {
    3546       566494 :     CASE_CONVERT:
    3547       566494 :       {
    3548       566494 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3549       566494 :         {
    3550       566494 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
    3551       566494 :           {
    3552       566494 :  tree inside_type = TREE_TYPE (captures[1]);
    3553       566494 :  tree inter_type = TREE_TYPE (captures[0]);
    3554       566494 :  int inside_int = ANY_INTEGRAL_TYPE_P (inside_type);
    3555       566494 :  int inside_ptr = POINTER_TYPE_P (inside_type);
    3556       566494 :  int inside_float = FLOAT_TYPE_P (inside_type);
    3557       566494 :  unsigned int inside_prec = element_precision (inside_type);
    3558       566494 :  int inside_unsignedp = TYPE_UNSIGNED (inside_type);
    3559       566494 :  int inter_int = ANY_INTEGRAL_TYPE_P (inter_type);
    3560       566494 :  int inter_ptr = POINTER_TYPE_P (inter_type);
    3561       566494 :  int inter_float = FLOAT_TYPE_P (inter_type);
    3562       566494 :  unsigned int inter_prec = element_precision (inter_type);
    3563       566494 :  int inter_unsignedp = TYPE_UNSIGNED (inter_type);
    3564       566494 :  int final_int = ANY_INTEGRAL_TYPE_P (type);
    3565       566494 :  int final_ptr = POINTER_TYPE_P (type);
    3566       566494 :  int final_float = FLOAT_TYPE_P (type);
    3567       566494 :  unsigned int final_prec = element_precision (type);
    3568       566494 :  int final_unsignedp = TYPE_UNSIGNED (type);
    3569       566494 :  int is_vec = VECTOR_TYPE_P (type);
    3570       566494 :  gcc_checking_assert (is_vec == VECTOR_TYPE_P (inside_type)
    3571              :  && is_vec == VECTOR_TYPE_P (inter_type));
    3572       566494 :               if (((
    3573              : 
    3574              :  && useless_type_conversion_p (type, inside_type))
    3575              :  || (
    3576              : 1
    3577       566494 :  && TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (inside_type)))
    3578            0 :  && (((inter_int || inter_ptr) && final_int)
    3579            0 :  || (inter_float && final_float))
    3580            0 :  && inter_prec >= final_prec
    3581       566494 :  && (! is_vec
    3582            0 :  || supportable_convert_operation (FLOAT_EXPR, type, TREE_TYPE (captures[1])))
    3583              : )
    3584              :                 {
    3585            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1135;
    3586            0 :                   {
    3587            0 :                     tree res_op0;
    3588            0 :                     res_op0 = captures[1];
    3589            0 :                     tree _r;
    3590            0 :                     _r = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
    3591            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 876, __FILE__, __LINE__, true);
    3592              :                     return _r;
    3593              :                   }
    3594            0 : next_after_fail1135:;
    3595              :                 }
    3596              :               else
    3597              :                 {
    3598            6 :                   if (((inter_int && inside_int) || (inter_float && inside_float))
    3599       566488 :  && (final_int || final_float)
    3600       566488 :  && inter_prec >= inside_prec
    3601       565493 :  && (inter_float || inter_unsignedp == inside_unsignedp)
    3602      1129594 :  && (! is_vec
    3603            0 :  || supportable_convert_operation (FLOAT_EXPR, type, TREE_TYPE (captures[1])))
    3604              : )
    3605              :                     {
    3606       563100 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1136;
    3607       563100 :                       {
    3608       563100 :                         tree res_op0;
    3609       563100 :                         res_op0 = captures[1];
    3610       563100 :                         tree _r;
    3611       563100 :                         _r = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
    3612       563100 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 877, __FILE__, __LINE__, true);
    3613              :                         return _r;
    3614              :                       }
    3615            0 : next_after_fail1136:;
    3616              :                     }
    3617              :                   else
    3618              :                     {
    3619         3388 :                       if (inside_int && inter_int && final_int
    3620            0 :  && ((inside_prec < inter_prec && inter_prec < final_prec
    3621            0 :  && inside_unsignedp && !inter_unsignedp)
    3622            0 :  || final_prec == inter_prec
    3623            0 :  || (inside_prec < inter_prec && inter_prec > final_prec
    3624            0 :  && !inside_unsignedp && inter_unsignedp))
    3625         3394 :  && (! is_vec
    3626            0 :  || supportable_convert_operation (FLOAT_EXPR, type, TREE_TYPE (captures[1])))
    3627              : )
    3628              :                         {
    3629            0 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1137;
    3630            0 :                           {
    3631            0 :                             tree res_op0;
    3632            0 :                             res_op0 = captures[1];
    3633            0 :                             tree _r;
    3634            0 :                             _r = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
    3635            0 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 878, __FILE__, __LINE__, true);
    3636              :                             return _r;
    3637              :                           }
    3638            0 : next_after_fail1137:;
    3639              :                         }
    3640              :                       else
    3641              :                         {
    3642         3394 :                           if (! inside_float && ! inter_float && ! final_float
    3643              :  && ! is_vec
    3644            0 :  && (inter_prec >= inside_prec || inter_prec >= final_prec)
    3645            0 :  && ! (inside_int && inter_int
    3646            0 :  && inter_unsignedp != inside_unsignedp
    3647            0 :  && inter_prec < final_prec)
    3648            0 :  && ((inter_unsignedp && inter_prec > inside_prec)
    3649            0 :  == (final_unsignedp && final_prec > inter_prec))
    3650            0 :  && ! (inside_ptr && inter_prec != final_prec)
    3651            0 :  && ! (final_ptr && inside_prec != inter_prec)
    3652              : )
    3653              :                             {
    3654            0 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1138;
    3655            0 :                               {
    3656            0 :                                 tree res_op0;
    3657            0 :                                 res_op0 = captures[1];
    3658            0 :                                 tree _r;
    3659            0 :                                 _r = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
    3660            0 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 879, __FILE__, __LINE__, true);
    3661              :                                 return _r;
    3662              :                               }
    3663            0 : next_after_fail1138:;
    3664            0 :                             }
    3665              :                           else
    3666              :                             {
    3667         3394 :                               if (inside_int && inter_int && final_int
    3668         3388 :  && final_prec <= inside_prec
    3669            0 :  && inter_prec >= inside_prec
    3670         3394 :  && (! is_vec
    3671            0 :  || supportable_convert_operation (FLOAT_EXPR, type, TREE_TYPE (captures[1])))
    3672              : )
    3673              :                                 {
    3674            0 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1139;
    3675            0 :                                   {
    3676            0 :                                     tree res_op0;
    3677            0 :                                     res_op0 = captures[1];
    3678            0 :                                     tree _r;
    3679            0 :                                     _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3680            0 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 880, __FILE__, __LINE__, true);
    3681              :                                     return _r;
    3682              :                                   }
    3683            0 : next_after_fail1139:;
    3684              :                                 }
    3685              :                               else
    3686              :                                 {
    3687              :                                   if (0
    3688              :  && final_int && inter_int && inside_int
    3689              :  && ! is_vec
    3690              :  && final_prec >= inside_prec
    3691              :  && inside_prec > inter_prec
    3692              :  && inter_unsignedp
    3693              : )
    3694              :                                     {
    3695              :                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1140;
    3696              :                                       {
    3697              :                                         tree res_op0;
    3698              :                                         {
    3699              :                                           tree _o1[2], _r1;
    3700              :                                           _o1[0] = captures[1];
    3701              :                                           _o1[1] =  wide_int_to_tree
    3702              :  (inside_type,
    3703              :  wi::mask (inter_prec, false,
    3704              :  TYPE_PRECISION (inside_type)));
    3705              :                                           _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    3706              :                                           res_op0 = _r1;
    3707              :                                         }
    3708              :                                         tree _r;
    3709              :                                         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3710              :                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 881, __FILE__, __LINE__, true);
    3711              :                                         return _r;
    3712              :                                       }
    3713              : next_after_fail1140:;
    3714              :                                     }
    3715              :                                   else
    3716              :                                     {
    3717              :                                       if (0
    3718              :  && inside_int && inter_float && final_int
    3719              :  && ! is_vec
    3720              :  && ((unsigned) significand_size (TYPE_MODE (inter_type))
    3721              :  >= inside_prec - !inside_unsignedp)
    3722              : )
    3723              :                                         {
    3724              :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1141;
    3725              :                                           {
    3726              :                                             tree res_op0;
    3727              :                                             res_op0 = captures[1];
    3728              :                                             tree _r;
    3729              :                                             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3730              :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 882, __FILE__, __LINE__, true);
    3731              :                                             return _r;
    3732              :                                           }
    3733              : next_after_fail1141:;
    3734              :                                         }
    3735              :                                     }
    3736              :                                 }
    3737              :                             }
    3738              :                         }
    3739              :                     }
    3740              :                 }
    3741              :           }
    3742              :         }
    3743              :         break;
    3744              :       }
    3745            0 :     case FLOAT_EXPR:
    3746            0 :       {
    3747            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3748            0 :         {
    3749            0 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
    3750            0 :           {
    3751            0 :  tree inside_type = TREE_TYPE (captures[1]);
    3752            0 :  tree inter_type = TREE_TYPE (captures[0]);
    3753            0 :  int inside_int = ANY_INTEGRAL_TYPE_P (inside_type);
    3754            0 :  int inside_ptr = POINTER_TYPE_P (inside_type);
    3755            0 :  int inside_float = FLOAT_TYPE_P (inside_type);
    3756            0 :  unsigned int inside_prec = element_precision (inside_type);
    3757            0 :  int inside_unsignedp = TYPE_UNSIGNED (inside_type);
    3758            0 :  int inter_int = ANY_INTEGRAL_TYPE_P (inter_type);
    3759            0 :  int inter_ptr = POINTER_TYPE_P (inter_type);
    3760            0 :  int inter_float = FLOAT_TYPE_P (inter_type);
    3761            0 :  unsigned int inter_prec = element_precision (inter_type);
    3762            0 :  int inter_unsignedp = TYPE_UNSIGNED (inter_type);
    3763            0 :  int final_int = ANY_INTEGRAL_TYPE_P (type);
    3764            0 :  int final_ptr = POINTER_TYPE_P (type);
    3765            0 :  int final_float = FLOAT_TYPE_P (type);
    3766            0 :  unsigned int final_prec = element_precision (type);
    3767            0 :  int final_unsignedp = TYPE_UNSIGNED (type);
    3768            0 :  int is_vec = VECTOR_TYPE_P (type);
    3769            0 :  gcc_checking_assert (is_vec == VECTOR_TYPE_P (inside_type)
    3770              :  && is_vec == VECTOR_TYPE_P (inter_type));
    3771            0 :               if (((
    3772              : 
    3773              :  && useless_type_conversion_p (type, inside_type))
    3774              :  || (
    3775              : 1
    3776            0 :  && TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (inside_type)))
    3777            0 :  && (((inter_int || inter_ptr) && final_int)
    3778            0 :  || (inter_float && final_float))
    3779            0 :  && inter_prec >= final_prec
    3780            0 :  && (! is_vec
    3781            0 :  || supportable_convert_operation (FLOAT_EXPR, type, TREE_TYPE (captures[1])))
    3782              : )
    3783              :                 {
    3784            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1142;
    3785            0 :                   {
    3786            0 :                     tree res_op0;
    3787            0 :                     res_op0 = captures[1];
    3788            0 :                     tree _r;
    3789            0 :                     _r = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
    3790            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 876, __FILE__, __LINE__, true);
    3791              :                     return _r;
    3792              :                   }
    3793            0 : next_after_fail1142:;
    3794              :                 }
    3795              :               else
    3796              :                 {
    3797            0 :                   if (((inter_int && inside_int) || (inter_float && inside_float))
    3798            0 :  && (final_int || final_float)
    3799            0 :  && inter_prec >= inside_prec
    3800            0 :  && (inter_float || inter_unsignedp == inside_unsignedp)
    3801            0 :  && (! is_vec
    3802            0 :  || supportable_convert_operation (FLOAT_EXPR, type, TREE_TYPE (captures[1])))
    3803              : )
    3804              :                     {
    3805            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1143;
    3806            0 :                       {
    3807            0 :                         tree res_op0;
    3808            0 :                         res_op0 = captures[1];
    3809            0 :                         tree _r;
    3810            0 :                         _r = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
    3811            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 877, __FILE__, __LINE__, true);
    3812              :                         return _r;
    3813              :                       }
    3814            0 : next_after_fail1143:;
    3815              :                     }
    3816              :                   else
    3817              :                     {
    3818            0 :                       if (inside_int && inter_int && final_int
    3819            0 :  && ((inside_prec < inter_prec && inter_prec < final_prec
    3820            0 :  && inside_unsignedp && !inter_unsignedp)
    3821            0 :  || final_prec == inter_prec
    3822            0 :  || (inside_prec < inter_prec && inter_prec > final_prec
    3823            0 :  && !inside_unsignedp && inter_unsignedp))
    3824            0 :  && (! is_vec
    3825            0 :  || supportable_convert_operation (FLOAT_EXPR, type, TREE_TYPE (captures[1])))
    3826              : )
    3827              :                         {
    3828            0 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1144;
    3829            0 :                           {
    3830            0 :                             tree res_op0;
    3831            0 :                             res_op0 = captures[1];
    3832            0 :                             tree _r;
    3833            0 :                             _r = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
    3834            0 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 878, __FILE__, __LINE__, true);
    3835              :                             return _r;
    3836              :                           }
    3837            0 : next_after_fail1144:;
    3838              :                         }
    3839              :                       else
    3840              :                         {
    3841            0 :                           if (! inside_float && ! inter_float && ! final_float
    3842              :  && ! is_vec
    3843            0 :  && (inter_prec >= inside_prec || inter_prec >= final_prec)
    3844            0 :  && ! (inside_int && inter_int
    3845            0 :  && inter_unsignedp != inside_unsignedp
    3846            0 :  && inter_prec < final_prec)
    3847            0 :  && ((inter_unsignedp && inter_prec > inside_prec)
    3848            0 :  == (final_unsignedp && final_prec > inter_prec))
    3849            0 :  && ! (inside_ptr && inter_prec != final_prec)
    3850            0 :  && ! (final_ptr && inside_prec != inter_prec)
    3851              : )
    3852              :                             {
    3853            0 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1145;
    3854            0 :                               {
    3855            0 :                                 tree res_op0;
    3856            0 :                                 res_op0 = captures[1];
    3857            0 :                                 tree _r;
    3858            0 :                                 _r = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
    3859            0 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 879, __FILE__, __LINE__, true);
    3860              :                                 return _r;
    3861              :                               }
    3862            0 : next_after_fail1145:;
    3863            0 :                             }
    3864              :                           else
    3865              :                             {
    3866            0 :                               if (inside_int && inter_int && final_int
    3867            0 :  && final_prec <= inside_prec
    3868            0 :  && inter_prec >= inside_prec
    3869            0 :  && (! is_vec
    3870            0 :  || supportable_convert_operation (FLOAT_EXPR, type, TREE_TYPE (captures[1])))
    3871              : )
    3872              :                                 {
    3873            0 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1146;
    3874            0 :                                   {
    3875            0 :                                     tree res_op0;
    3876            0 :                                     res_op0 = captures[1];
    3877            0 :                                     tree _r;
    3878            0 :                                     _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3879            0 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 880, __FILE__, __LINE__, true);
    3880              :                                     return _r;
    3881              :                                   }
    3882            0 : next_after_fail1146:;
    3883              :                                 }
    3884              :                               else
    3885              :                                 {
    3886              :                                   if (0
    3887              :  && final_int && inter_int && inside_int
    3888              :  && ! is_vec
    3889              :  && final_prec >= inside_prec
    3890              :  && inside_prec > inter_prec
    3891              :  && inter_unsignedp
    3892              : )
    3893              :                                     {
    3894              :                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1147;
    3895              :                                       {
    3896              :                                         tree res_op0;
    3897              :                                         {
    3898              :                                           tree _o1[2], _r1;
    3899              :                                           _o1[0] = captures[1];
    3900              :                                           _o1[1] =  wide_int_to_tree
    3901              :  (inside_type,
    3902              :  wi::mask (inter_prec, false,
    3903              :  TYPE_PRECISION (inside_type)));
    3904              :                                           _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    3905              :                                           res_op0 = _r1;
    3906              :                                         }
    3907              :                                         tree _r;
    3908              :                                         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3909              :                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 881, __FILE__, __LINE__, true);
    3910              :                                         return _r;
    3911              :                                       }
    3912              : next_after_fail1147:;
    3913              :                                     }
    3914              :                                   else
    3915              :                                     {
    3916              :                                       if (0
    3917              :  && inside_int && inter_float && final_int
    3918              :  && ! is_vec
    3919              :  && ((unsigned) significand_size (TYPE_MODE (inter_type))
    3920              :  >= inside_prec - !inside_unsignedp)
    3921              : )
    3922              :                                         {
    3923              :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1148;
    3924              :                                           {
    3925              :                                             tree res_op0;
    3926              :                                             res_op0 = captures[1];
    3927              :                                             tree _r;
    3928              :                                             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3929              :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 882, __FILE__, __LINE__, true);
    3930              :                                             return _r;
    3931              :                                           }
    3932              : next_after_fail1148:;
    3933              :                                         }
    3934              :                                     }
    3935              :                                 }
    3936              :                             }
    3937              :                         }
    3938              :                     }
    3939              :                 }
    3940              :           }
    3941              :         }
    3942              :         break;
    3943              :       }
    3944              :     default:;
    3945              :     }
    3946              :   return NULL_TREE;
    3947              : }
    3948              : 
    3949              : tree
    3950     72733665 : generic_simplify_MULT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
    3951              : {
    3952     72733665 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3953     72733665 :   switch (TREE_CODE (_p1))
    3954              :     {
    3955          443 :     case VECTOR_CST:
    3956          443 :       {
    3957          443 :         {
    3958          443 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    3959          443 :           if (initializer_each_zero_or_onep (captures[1])
    3960            9 :  && !HONOR_SNANS (type)
    3961          452 :  && !HONOR_SIGNED_ZEROS (type)
    3962              : )
    3963              :             {
    3964            5 :               {
    3965            5 :  tree itype = FLOAT_TYPE_P (type) ? unsigned_type_for (type) : type;
    3966            5 :                   if (itype
    3967            5 :  && (!VECTOR_MODE_P (TYPE_MODE (type))
    3968            5 :  || (VECTOR_MODE_P (TYPE_MODE (itype))
    3969            5 :  && optab_handler (and_optab,
    3970            5 :  TYPE_MODE (itype)) != CODE_FOR_nothing))
    3971              : )
    3972              :                     {
    3973            5 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1445;
    3974            5 :                       {
    3975            5 :                         tree res_op0;
    3976            5 :                         {
    3977            5 :                           tree _o1[2], _r1;
    3978            5 :                           {
    3979            5 :                             tree _o2[1], _r2;
    3980            5 :                             _o2[0] = captures[0];
    3981            5 :                             if (TREE_TYPE (_o2[0]) != itype)
    3982              :                               {
    3983            1 :                                 _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, itype, _o2[0]);
    3984              :                               }
    3985              :                             else
    3986              :                               _r2 = _o2[0];
    3987            5 :                             _o1[0] = _r2;
    3988              :                           }
    3989            5 :                           {
    3990            5 :                             tree _o2[2], _r2;
    3991            5 :                             _o2[0] = captures[1];
    3992            5 :                             _o2[1] =  build_zero_cst (type);
    3993            5 :                             _r2 = fold_build2_loc (loc, NE_EXPR, itype, _o2[0], _o2[1]);
    3994            5 :                             _o1[1] = _r2;
    3995              :                           }
    3996            5 :                           _r1 = fold_build2_loc (loc, BIT_AND_EXPR, itype, _o1[0], _o1[1]);
    3997            5 :                           res_op0 = _r1;
    3998              :                         }
    3999            5 :                         tree _r;
    4000            5 :                         _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
    4001            5 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1000, __FILE__, __LINE__, true);
    4002              :                         return _r;
    4003              :                       }
    4004            0 : next_after_fail1445:;
    4005              :                     }
    4006              :               }
    4007              :             }
    4008              :         }
    4009              :         break;
    4010              :       }
    4011     72733660 :     default:;
    4012              :     }
    4013     72733660 : if (integer_zerop (_p1))
    4014              :   {
    4015        35718 :     {
    4016        35718 :       tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    4017        35718 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1446;
    4018        35718 :       {
    4019        35718 :         tree _r;
    4020        35718 :         _r = captures[1];
    4021        35718 :         if (TREE_SIDE_EFFECTS (captures[0]))
    4022         2442 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    4023        35718 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1001, __FILE__, __LINE__, true);
    4024              :         return _r;
    4025              :       }
    4026            0 : next_after_fail1446:;
    4027              :     }
    4028              :   }
    4029     72697942 : if (real_zerop (_p1))
    4030              :   {
    4031          435 :     {
    4032          435 :       tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    4033          435 :       if (!tree_expr_maybe_nan_p (captures[0])
    4034          218 :  && (!HONOR_NANS (type) || !tree_expr_maybe_infinite_p (captures[0]))
    4035          445 :  && (!HONOR_SIGNED_ZEROS (type) || tree_expr_nonnegative_p (captures[0]))
    4036              : )
    4037              :         {
    4038            4 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1447;
    4039            4 :           {
    4040            4 :             tree _r;
    4041            4 :             _r = captures[1];
    4042            4 :             if (TREE_SIDE_EFFECTS (captures[0]))
    4043            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    4044            4 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1002, __FILE__, __LINE__, true);
    4045              :             return _r;
    4046              :           }
    4047            0 : next_after_fail1447:;
    4048              :         }
    4049              :     }
    4050              :   }
    4051     72697938 : if (real_onep (_p1))
    4052              :   {
    4053         1268 :     {
    4054         1268 :       tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4055         1268 :       if (!tree_expr_maybe_signaling_nan_p (captures[0])
    4056         1268 :  && (!HONOR_SIGNED_ZEROS (type)
    4057         1140 :  || !COMPLEX_FLOAT_TYPE_P (type))
    4058              : )
    4059              :         {
    4060          785 :           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1448;
    4061          785 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1448;
    4062          785 :           {
    4063          785 :             tree res_op0;
    4064          785 :             res_op0 = captures[0];
    4065          785 :             tree _r;
    4066          785 :             _r = non_lvalue_loc (loc, res_op0);
    4067          785 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1003, __FILE__, __LINE__, true);
    4068     72733665 :             return _r;
    4069              :           }
    4070     72697153 : next_after_fail1448:;
    4071              :         }
    4072              :     }
    4073              :   }
    4074     72697153 : if (real_minus_onep (_p1))
    4075              :   {
    4076        44154 :     {
    4077        44154 :       tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4078        44154 :       if (!tree_expr_maybe_signaling_nan_p (captures[0])
    4079        44154 :  && (!HONOR_SIGNED_ZEROS (type)
    4080        41229 :  || !COMPLEX_FLOAT_TYPE_P (type))
    4081              : )
    4082              :         {
    4083        43770 :           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1449;
    4084        43770 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1449;
    4085        43770 :           {
    4086        43770 :             tree res_op0;
    4087        43770 :             res_op0 = captures[0];
    4088        43770 :             tree _r;
    4089        43770 :             _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    4090        43770 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1004, __FILE__, __LINE__, true);
    4091     72733665 :             return _r;
    4092              :           }
    4093     72653383 : next_after_fail1449:;
    4094              :         }
    4095              :     }
    4096              :   }
    4097     72653383 :   switch (TREE_CODE (_p0))
    4098              :     {
    4099        60668 :     case BIT_AND_EXPR:
    4100        60668 :       {
    4101        60668 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4102        60668 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4103        60668 :         switch (TREE_CODE (_q20))
    4104              :           {
    4105          277 :           case RSHIFT_EXPR:
    4106          277 :             {
    4107          277 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4108          277 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4109          277 :               if (uniform_integer_cst_p (_q31))
    4110              :                 {
    4111           14 :                   if (uniform_integer_cst_p (_q21))
    4112              :                     {
    4113           14 :                       if (uniform_integer_cst_p (_p1))
    4114              :                         {
    4115           14 :                           {
    4116           14 :                             tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q21, _p1 };
    4117           14 :                             {
    4118           14 :  tree rshift_cst = uniform_integer_cst_p (captures[1]);
    4119           14 :  tree bit_and_cst = uniform_integer_cst_p (captures[2]);
    4120           14 :  tree mult_cst = uniform_integer_cst_p (captures[3]);
    4121           14 :                                 if (VECTOR_TYPE_P (type)
    4122            0 :  && tree_fits_uhwi_p (rshift_cst)
    4123            0 :  && tree_fits_uhwi_p (mult_cst)
    4124            0 :  && tree_fits_uhwi_p (bit_and_cst)
    4125              : )
    4126              :                                   {
    4127            0 :                                     {
    4128            0 :  HOST_WIDE_INT vec_elem_bits = vector_element_bits (type);
    4129            0 :  poly_int64 vec_nelts = TYPE_VECTOR_SUBPARTS (type);
    4130            0 :  poly_int64 vec_bits = vec_elem_bits * vec_nelts;
    4131            0 :  unsigned HOST_WIDE_INT cmp_bits_i, bit_and_i, mult_i;
    4132            0 :  unsigned HOST_WIDE_INT target_mult_i, target_bit_and_i;
    4133            0 :  cmp_bits_i = tree_to_uhwi (rshift_cst) + 1;
    4134            0 :  mult_i = tree_to_uhwi (mult_cst);
    4135            0 :  target_mult_i = (HOST_WIDE_INT_1U << cmp_bits_i) - 1;
    4136            0 :  bit_and_i = tree_to_uhwi (bit_and_cst);
    4137            0 :  target_bit_and_i = 0;
    4138            0 :  for (unsigned i = 0; i < vec_elem_bits / cmp_bits_i; i++)
    4139            0 :  target_bit_and_i = (target_bit_and_i << cmp_bits_i) | 1U;
    4140            0 :                                         if ((exact_log2 (cmp_bits_i)) >= 0
    4141            0 :  && cmp_bits_i < HOST_BITS_PER_WIDE_INT
    4142            0 :  && multiple_p (vec_bits, cmp_bits_i)
    4143            0 :  && vec_elem_bits <= HOST_BITS_PER_WIDE_INT
    4144            0 :  && target_mult_i == mult_i
    4145            0 :  && target_bit_and_i == bit_and_i
    4146              : )
    4147              :                                           {
    4148            0 :                                             {
    4149            0 :  tree cmp_type = build_nonstandard_integer_type (cmp_bits_i, 0);
    4150            0 :  poly_int64 vector_type_nelts = exact_div (vec_bits, cmp_bits_i);
    4151            0 :  tree vec_cmp_type = build_vector_type (cmp_type, vector_type_nelts);
    4152            0 :  tree vec_truth_type = truth_type_for (vec_cmp_type);
    4153            0 :  tree zeros = build_zero_cst (vec_cmp_type);
    4154            0 :  tree ones = build_all_ones_cst (vec_cmp_type);
    4155            0 :                                                 if (expand_vec_cmp_expr_p (vec_cmp_type, vec_truth_type, LT_EXPR)
    4156            0 :  && expand_vec_cond_expr_p (vec_cmp_type, vec_truth_type)
    4157              : )
    4158              :                                                   {
    4159            0 :                                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1450;
    4160            0 :                                                     {
    4161            0 :                                                       tree res_op0;
    4162            0 :                                                       {
    4163            0 :                                                         tree _o1[3], _r1;
    4164            0 :                                                         {
    4165            0 :                                                           tree _o2[2], _r2;
    4166            0 :                                                           {
    4167            0 :                                                             tree _o3[1], _r3;
    4168            0 :                                                             _o3[0] = captures[0];
    4169            0 :                                                             if (TREE_TYPE (_o3[0]) != vec_cmp_type)
    4170              :                                                               {
    4171            0 :                                                                 _r3 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, vec_cmp_type, _o3[0]);
    4172              :                                                               }
    4173              :                                                             else
    4174              :                                                               _r3 = _o3[0];
    4175            0 :                                                             _o2[0] = _r3;
    4176              :                                                           }
    4177            0 :                                                           _o2[1] =  zeros;
    4178            0 :                                                           _r2 = fold_build2_loc (loc, LT_EXPR, vec_truth_type, _o2[0], _o2[1]);
    4179            0 :                                                           _o1[0] = _r2;
    4180              :                                                         }
    4181            0 :                                                         _o1[1] =  ones;
    4182            0 :                                                         _o1[2] =  zeros;
    4183            0 :                                                         _r1 = fold_build3_loc (loc, VEC_COND_EXPR, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2]);
    4184            0 :                                                         res_op0 = _r1;
    4185              :                                                       }
    4186            0 :                                                       tree _r;
    4187            0 :                                                       _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
    4188            0 :                                                       if (TREE_SIDE_EFFECTS (captures[1]))
    4189            0 :                                                         _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    4190            0 :                                                       if (TREE_SIDE_EFFECTS (captures[2]))
    4191            0 :                                                         _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    4192            0 :                                                       if (TREE_SIDE_EFFECTS (captures[3]))
    4193            0 :                                                         _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
    4194            0 :                                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1005, __FILE__, __LINE__, true);
    4195            0 :                                                       return _r;
    4196              :                                                     }
    4197            0 : next_after_fail1450:;
    4198              :                                                   }
    4199              :                                             }
    4200              :                                           }
    4201              :                                     }
    4202              :                                   }
    4203              :                             }
    4204              :                           }
    4205              :                         }
    4206              :                     }
    4207              :                 }
    4208              :               break;
    4209              :             }
    4210              :           default:;
    4211              :           }
    4212              :         break;
    4213              :       }
    4214     72653383 :     default:;
    4215              :     }
    4216     72653383 :   switch (TREE_CODE (_p1))
    4217              :     {
    4218         3184 :     case COND_EXPR:
    4219         3184 :       {
    4220         3184 :         tree _q30 = TREE_OPERAND (_p1, 0);
    4221         3184 :         tree _q31 = TREE_OPERAND (_p1, 1);
    4222         3184 :         tree _q32 = TREE_OPERAND (_p1, 2);
    4223         3184 :         switch (TREE_CODE (_q30))
    4224              :           {
    4225          530 :           case GT_EXPR:
    4226          530 :             {
    4227          530 :               tree _q40 = TREE_OPERAND (_q30, 0);
    4228          530 :               tree _q41 = TREE_OPERAND (_q30, 1);
    4229          530 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    4230              :                 {
    4231            0 :                   if (real_zerop (_q41))
    4232              :                     {
    4233            0 :                       if (real_onep (_q31))
    4234              :                         {
    4235            0 :                           if (real_minus_onep (_q32))
    4236              :                             {
    4237            0 :                               {
    4238            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    4239            0 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4240              : )
    4241              :                                   {
    4242            0 :                                     if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1451;
    4243            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1451;
    4244            0 :                                     {
    4245            0 :                                       tree res_op0;
    4246            0 :                                       {
    4247            0 :                                         tree _o1[1], _r1;
    4248            0 :                                         _o1[0] = captures[0];
    4249            0 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4250            0 :                                         res_op0 = _r1;
    4251              :                                       }
    4252            0 :                                       tree _r;
    4253            0 :                                       _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4254            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1006, __FILE__, __LINE__, true);
    4255              :                                       return _r;
    4256              :                                     }
    4257     72653383 : next_after_fail1451:;
    4258              :                                   }
    4259              :                               }
    4260              :                             }
    4261              :                         }
    4262              :                     }
    4263              :                 }
    4264              :               break;
    4265              :             }
    4266           20 :           case GE_EXPR:
    4267           20 :             {
    4268           20 :               tree _q40 = TREE_OPERAND (_q30, 0);
    4269           20 :               tree _q41 = TREE_OPERAND (_q30, 1);
    4270           20 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    4271              :                 {
    4272            0 :                   if (real_zerop (_q41))
    4273              :                     {
    4274            0 :                       if (real_onep (_q31))
    4275              :                         {
    4276            0 :                           if (real_minus_onep (_q32))
    4277              :                             {
    4278            0 :                               {
    4279            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    4280            0 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4281              : )
    4282              :                                   {
    4283            0 :                                     if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1452;
    4284            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1452;
    4285            0 :                                     {
    4286            0 :                                       tree res_op0;
    4287            0 :                                       {
    4288            0 :                                         tree _o1[1], _r1;
    4289            0 :                                         _o1[0] = captures[0];
    4290            0 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4291            0 :                                         res_op0 = _r1;
    4292              :                                       }
    4293            0 :                                       tree _r;
    4294            0 :                                       _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4295            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1006, __FILE__, __LINE__, true);
    4296              :                                       return _r;
    4297              :                                     }
    4298     72653383 : next_after_fail1452:;
    4299              :                                   }
    4300              :                               }
    4301              :                             }
    4302              :                         }
    4303              :                     }
    4304              :                 }
    4305              :               break;
    4306              :             }
    4307           51 :           case LT_EXPR:
    4308           51 :             {
    4309           51 :               tree _q40 = TREE_OPERAND (_q30, 0);
    4310           51 :               tree _q41 = TREE_OPERAND (_q30, 1);
    4311           51 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    4312              :                 {
    4313            0 :                   if (real_zerop (_q41))
    4314              :                     {
    4315            0 :                       if (real_onep (_q31))
    4316              :                         {
    4317            0 :                           if (real_minus_onep (_q32))
    4318              :                             {
    4319            0 :                               {
    4320            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    4321            0 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4322              : )
    4323              :                                   {
    4324            0 :                                     if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1453;
    4325            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1453;
    4326            0 :                                     {
    4327            0 :                                       tree res_op0;
    4328            0 :                                       {
    4329            0 :                                         tree _o1[1], _r1;
    4330            0 :                                         _o1[0] = captures[0];
    4331            0 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4332            0 :                                         res_op0 = _r1;
    4333              :                                       }
    4334            0 :                                       tree _r;
    4335            0 :                                       _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    4336            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1006, __FILE__, __LINE__, true);
    4337              :                                       return _r;
    4338              :                                     }
    4339     72653383 : next_after_fail1453:;
    4340              :                                   }
    4341              :                               }
    4342              :                             }
    4343              :                         }
    4344              :                     }
    4345              :                 }
    4346              :               break;
    4347              :             }
    4348            5 :           case LE_EXPR:
    4349            5 :             {
    4350            5 :               tree _q40 = TREE_OPERAND (_q30, 0);
    4351            5 :               tree _q41 = TREE_OPERAND (_q30, 1);
    4352            5 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    4353              :                 {
    4354            0 :                   if (real_zerop (_q41))
    4355              :                     {
    4356            0 :                       if (real_onep (_q31))
    4357              :                         {
    4358            0 :                           if (real_minus_onep (_q32))
    4359              :                             {
    4360            0 :                               {
    4361            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    4362            0 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4363              : )
    4364              :                                   {
    4365            0 :                                     if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1454;
    4366            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1454;
    4367            0 :                                     {
    4368            0 :                                       tree res_op0;
    4369            0 :                                       {
    4370            0 :                                         tree _o1[1], _r1;
    4371            0 :                                         _o1[0] = captures[0];
    4372            0 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4373            0 :                                         res_op0 = _r1;
    4374              :                                       }
    4375            0 :                                       tree _r;
    4376            0 :                                       _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    4377            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1006, __FILE__, __LINE__, true);
    4378              :                                       return _r;
    4379              :                                     }
    4380     72653383 : next_after_fail1454:;
    4381              :                                   }
    4382              :                               }
    4383              :                             }
    4384              :                         }
    4385              :                     }
    4386              :                 }
    4387              :               break;
    4388              :             }
    4389              :           default:;
    4390              :           }
    4391              :         break;
    4392              :       }
    4393     72653383 :     default:;
    4394              :     }
    4395     72653383 :   switch (TREE_CODE (_p0))
    4396              :     {
    4397        91004 :     case COND_EXPR:
    4398        91004 :       {
    4399        91004 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4400        91004 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4401        91004 :         tree _q22 = TREE_OPERAND (_p0, 2);
    4402        91004 :         switch (TREE_CODE (_q20))
    4403              :           {
    4404        24774 :           case GT_EXPR:
    4405        24774 :             {
    4406        24774 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4407        24774 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4408        24774 :               if (real_zerop (_q31))
    4409              :                 {
    4410            4 :                   if (real_onep (_q21))
    4411              :                     {
    4412            3 :                       if (real_minus_onep (_q22))
    4413              :                         {
    4414            1 :                           if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    4415              :                             {
    4416            1 :                               {
    4417            1 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
    4418            1 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4419              : )
    4420              :                                   {
    4421            1 :                                     if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1455;
    4422            1 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1455;
    4423            1 :                                     {
    4424            1 :                                       tree res_op0;
    4425            1 :                                       {
    4426            1 :                                         tree _o1[1], _r1;
    4427            1 :                                         _o1[0] = captures[0];
    4428            1 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4429            1 :                                         res_op0 = _r1;
    4430              :                                       }
    4431            1 :                                       tree _r;
    4432            1 :                                       _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4433            1 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1006, __FILE__, __LINE__, true);
    4434              :                                       return _r;
    4435              :                                     }
    4436            3 : next_after_fail1455:;
    4437              :                                   }
    4438              :                               }
    4439              :                             }
    4440              :                         }
    4441              :                     }
    4442            3 :                   if (real_minus_onep (_q21))
    4443              :                     {
    4444            1 :                       if (real_onep (_q22))
    4445              :                         {
    4446            1 :                           if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    4447              :                             {
    4448            1 :                               {
    4449            1 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q22 };
    4450            1 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4451              : )
    4452              :                                   {
    4453            1 :                                     if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1456;
    4454            1 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1456;
    4455            1 :                                     {
    4456            1 :                                       tree res_op0;
    4457            1 :                                       {
    4458            1 :                                         tree _o1[1], _r1;
    4459            1 :                                         _o1[0] = captures[0];
    4460            1 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4461            1 :                                         res_op0 = _r1;
    4462              :                                       }
    4463            1 :                                       tree _r;
    4464            1 :                                       _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    4465            1 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1007, __FILE__, __LINE__, true);
    4466              :                                       return _r;
    4467              :                                     }
    4468     72653375 : next_after_fail1456:;
    4469              :                                   }
    4470              :                               }
    4471              :                             }
    4472              :                         }
    4473              :                     }
    4474              :                 }
    4475              :               break;
    4476              :             }
    4477         8428 :           case GE_EXPR:
    4478         8428 :             {
    4479         8428 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4480         8428 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4481         8428 :               if (real_zerop (_q31))
    4482              :                 {
    4483            2 :                   if (real_onep (_q21))
    4484              :                     {
    4485            1 :                       if (real_minus_onep (_q22))
    4486              :                         {
    4487            1 :                           if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    4488              :                             {
    4489            1 :                               {
    4490            1 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
    4491            1 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4492              : )
    4493              :                                   {
    4494            1 :                                     if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1457;
    4495            1 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1457;
    4496            1 :                                     {
    4497            1 :                                       tree res_op0;
    4498            1 :                                       {
    4499            1 :                                         tree _o1[1], _r1;
    4500            1 :                                         _o1[0] = captures[0];
    4501            1 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4502            1 :                                         res_op0 = _r1;
    4503              :                                       }
    4504            1 :                                       tree _r;
    4505            1 :                                       _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4506            1 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1006, __FILE__, __LINE__, true);
    4507              :                                       return _r;
    4508              :                                     }
    4509            1 : next_after_fail1457:;
    4510              :                                   }
    4511              :                               }
    4512              :                             }
    4513              :                         }
    4514              :                     }
    4515            1 :                   if (real_minus_onep (_q21))
    4516              :                     {
    4517            1 :                       if (real_onep (_q22))
    4518              :                         {
    4519            1 :                           if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    4520              :                             {
    4521            1 :                               {
    4522            1 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q22 };
    4523            1 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4524              : )
    4525              :                                   {
    4526            1 :                                     if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1458;
    4527            1 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1458;
    4528            1 :                                     {
    4529            1 :                                       tree res_op0;
    4530            1 :                                       {
    4531            1 :                                         tree _o1[1], _r1;
    4532            1 :                                         _o1[0] = captures[0];
    4533            1 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4534            1 :                                         res_op0 = _r1;
    4535              :                                       }
    4536            1 :                                       tree _r;
    4537            1 :                                       _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    4538            1 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1007, __FILE__, __LINE__, true);
    4539              :                                       return _r;
    4540              :                                     }
    4541     72653375 : next_after_fail1458:;
    4542              :                                   }
    4543              :                               }
    4544              :                             }
    4545              :                         }
    4546              :                     }
    4547              :                 }
    4548              :               break;
    4549              :             }
    4550         7837 :           case LT_EXPR:
    4551         7837 :             {
    4552         7837 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4553         7837 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4554         7837 :               if (real_zerop (_q31))
    4555              :                 {
    4556            2 :                   if (real_onep (_q21))
    4557              :                     {
    4558            1 :                       if (real_minus_onep (_q22))
    4559              :                         {
    4560            1 :                           if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    4561              :                             {
    4562            1 :                               {
    4563            1 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
    4564            1 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4565              : )
    4566              :                                   {
    4567            1 :                                     if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1459;
    4568            1 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1459;
    4569            1 :                                     {
    4570            1 :                                       tree res_op0;
    4571            1 :                                       {
    4572            1 :                                         tree _o1[1], _r1;
    4573            1 :                                         _o1[0] = captures[0];
    4574            1 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4575            1 :                                         res_op0 = _r1;
    4576              :                                       }
    4577            1 :                                       tree _r;
    4578            1 :                                       _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    4579            1 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1006, __FILE__, __LINE__, true);
    4580              :                                       return _r;
    4581              :                                     }
    4582            1 : next_after_fail1459:;
    4583              :                                   }
    4584              :                               }
    4585              :                             }
    4586              :                         }
    4587              :                     }
    4588            1 :                   if (real_minus_onep (_q21))
    4589              :                     {
    4590            1 :                       if (real_onep (_q22))
    4591              :                         {
    4592            1 :                           if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    4593              :                             {
    4594            1 :                               {
    4595            1 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q22 };
    4596            1 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4597              : )
    4598              :                                   {
    4599            1 :                                     if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1460;
    4600            1 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1460;
    4601            1 :                                     {
    4602            1 :                                       tree res_op0;
    4603            1 :                                       {
    4604            1 :                                         tree _o1[1], _r1;
    4605            1 :                                         _o1[0] = captures[0];
    4606            1 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4607            1 :                                         res_op0 = _r1;
    4608              :                                       }
    4609            1 :                                       tree _r;
    4610            1 :                                       _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4611            1 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1007, __FILE__, __LINE__, true);
    4612              :                                       return _r;
    4613              :                                     }
    4614     72653375 : next_after_fail1460:;
    4615              :                                   }
    4616              :                               }
    4617              :                             }
    4618              :                         }
    4619              :                     }
    4620              :                 }
    4621              :               break;
    4622              :             }
    4623         3290 :           case LE_EXPR:
    4624         3290 :             {
    4625         3290 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4626         3290 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4627         3290 :               if (real_zerop (_q31))
    4628              :                 {
    4629            2 :                   if (real_onep (_q21))
    4630              :                     {
    4631            1 :                       if (real_minus_onep (_q22))
    4632              :                         {
    4633            1 :                           if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    4634              :                             {
    4635            1 :                               {
    4636            1 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
    4637            1 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4638              : )
    4639              :                                   {
    4640            1 :                                     if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1461;
    4641            1 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1461;
    4642            1 :                                     {
    4643            1 :                                       tree res_op0;
    4644            1 :                                       {
    4645            1 :                                         tree _o1[1], _r1;
    4646            1 :                                         _o1[0] = captures[0];
    4647            1 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4648            1 :                                         res_op0 = _r1;
    4649              :                                       }
    4650            1 :                                       tree _r;
    4651            1 :                                       _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    4652            1 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1006, __FILE__, __LINE__, true);
    4653              :                                       return _r;
    4654              :                                     }
    4655            1 : next_after_fail1461:;
    4656              :                                   }
    4657              :                               }
    4658              :                             }
    4659              :                         }
    4660              :                     }
    4661            1 :                   if (real_minus_onep (_q21))
    4662              :                     {
    4663            1 :                       if (real_onep (_q22))
    4664              :                         {
    4665            1 :                           if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    4666              :                             {
    4667            1 :                               {
    4668            1 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q22 };
    4669            1 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4670              : )
    4671              :                                   {
    4672            1 :                                     if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1462;
    4673            1 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1462;
    4674            1 :                                     {
    4675            1 :                                       tree res_op0;
    4676            1 :                                       {
    4677            1 :                                         tree _o1[1], _r1;
    4678            1 :                                         _o1[0] = captures[0];
    4679            1 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4680            1 :                                         res_op0 = _r1;
    4681              :                                       }
    4682            1 :                                       tree _r;
    4683            1 :                                       _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4684            1 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1007, __FILE__, __LINE__, true);
    4685              :                                       return _r;
    4686              :                                     }
    4687     72653375 : next_after_fail1462:;
    4688              :                                   }
    4689              :                               }
    4690              :                             }
    4691              :                         }
    4692              :                     }
    4693              :                 }
    4694              :               break;
    4695              :             }
    4696              :           default:;
    4697              :           }
    4698              :         break;
    4699              :       }
    4700     72653375 :     default:;
    4701              :     }
    4702     72653375 :   switch (TREE_CODE (_p1))
    4703              :     {
    4704         3184 :     case COND_EXPR:
    4705         3184 :       {
    4706         3184 :         tree _q30 = TREE_OPERAND (_p1, 0);
    4707         3184 :         tree _q31 = TREE_OPERAND (_p1, 1);
    4708         3184 :         tree _q32 = TREE_OPERAND (_p1, 2);
    4709         3184 :         switch (TREE_CODE (_q30))
    4710              :           {
    4711          530 :           case GT_EXPR:
    4712          530 :             {
    4713          530 :               tree _q40 = TREE_OPERAND (_q30, 0);
    4714          530 :               tree _q41 = TREE_OPERAND (_q30, 1);
    4715          530 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    4716              :                 {
    4717            0 :                   if (real_zerop (_q41))
    4718              :                     {
    4719            0 :                       if (real_minus_onep (_q31))
    4720              :                         {
    4721            0 :                           if (real_onep (_q32))
    4722              :                             {
    4723            0 :                               {
    4724            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q32 };
    4725            0 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4726              : )
    4727              :                                   {
    4728            0 :                                     if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1463;
    4729            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1463;
    4730            0 :                                     {
    4731            0 :                                       tree res_op0;
    4732            0 :                                       {
    4733            0 :                                         tree _o1[1], _r1;
    4734            0 :                                         _o1[0] = captures[0];
    4735            0 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4736            0 :                                         res_op0 = _r1;
    4737              :                                       }
    4738            0 :                                       tree _r;
    4739            0 :                                       _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    4740            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1007, __FILE__, __LINE__, true);
    4741              :                                       return _r;
    4742              :                                     }
    4743     72653375 : next_after_fail1463:;
    4744              :                                   }
    4745              :                               }
    4746              :                             }
    4747              :                         }
    4748              :                     }
    4749              :                 }
    4750              :               break;
    4751              :             }
    4752           20 :           case GE_EXPR:
    4753           20 :             {
    4754           20 :               tree _q40 = TREE_OPERAND (_q30, 0);
    4755           20 :               tree _q41 = TREE_OPERAND (_q30, 1);
    4756           20 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    4757              :                 {
    4758            0 :                   if (real_zerop (_q41))
    4759              :                     {
    4760            0 :                       if (real_minus_onep (_q31))
    4761              :                         {
    4762            0 :                           if (real_onep (_q32))
    4763              :                             {
    4764            0 :                               {
    4765            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q32 };
    4766            0 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4767              : )
    4768              :                                   {
    4769            0 :                                     if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1464;
    4770            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1464;
    4771            0 :                                     {
    4772            0 :                                       tree res_op0;
    4773            0 :                                       {
    4774            0 :                                         tree _o1[1], _r1;
    4775            0 :                                         _o1[0] = captures[0];
    4776            0 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4777            0 :                                         res_op0 = _r1;
    4778              :                                       }
    4779            0 :                                       tree _r;
    4780            0 :                                       _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    4781            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1007, __FILE__, __LINE__, true);
    4782              :                                       return _r;
    4783              :                                     }
    4784     72653375 : next_after_fail1464:;
    4785              :                                   }
    4786              :                               }
    4787              :                             }
    4788              :                         }
    4789              :                     }
    4790              :                 }
    4791              :               break;
    4792              :             }
    4793           51 :           case LT_EXPR:
    4794           51 :             {
    4795           51 :               tree _q40 = TREE_OPERAND (_q30, 0);
    4796           51 :               tree _q41 = TREE_OPERAND (_q30, 1);
    4797           51 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    4798              :                 {
    4799            0 :                   if (real_zerop (_q41))
    4800              :                     {
    4801            0 :                       if (real_minus_onep (_q31))
    4802              :                         {
    4803            0 :                           if (real_onep (_q32))
    4804              :                             {
    4805            0 :                               {
    4806            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q32 };
    4807            0 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4808              : )
    4809              :                                   {
    4810            0 :                                     if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1465;
    4811            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1465;
    4812            0 :                                     {
    4813            0 :                                       tree res_op0;
    4814            0 :                                       {
    4815            0 :                                         tree _o1[1], _r1;
    4816            0 :                                         _o1[0] = captures[0];
    4817            0 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4818            0 :                                         res_op0 = _r1;
    4819              :                                       }
    4820            0 :                                       tree _r;
    4821            0 :                                       _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4822            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1007, __FILE__, __LINE__, true);
    4823              :                                       return _r;
    4824              :                                     }
    4825     72653375 : next_after_fail1465:;
    4826              :                                   }
    4827              :                               }
    4828              :                             }
    4829              :                         }
    4830              :                     }
    4831              :                 }
    4832              :               break;
    4833              :             }
    4834            5 :           case LE_EXPR:
    4835            5 :             {
    4836            5 :               tree _q40 = TREE_OPERAND (_q30, 0);
    4837            5 :               tree _q41 = TREE_OPERAND (_q30, 1);
    4838            5 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    4839              :                 {
    4840            0 :                   if (real_zerop (_q41))
    4841              :                     {
    4842            0 :                       if (real_minus_onep (_q31))
    4843              :                         {
    4844            0 :                           if (real_onep (_q32))
    4845              :                             {
    4846            0 :                               {
    4847            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q32 };
    4848            0 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4849              : )
    4850              :                                   {
    4851            0 :                                     if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1466;
    4852            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1466;
    4853            0 :                                     {
    4854            0 :                                       tree res_op0;
    4855            0 :                                       {
    4856            0 :                                         tree _o1[1], _r1;
    4857            0 :                                         _o1[0] = captures[0];
    4858            0 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4859            0 :                                         res_op0 = _r1;
    4860              :                                       }
    4861            0 :                                       tree _r;
    4862            0 :                                       _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4863            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1007, __FILE__, __LINE__, true);
    4864              :                                       return _r;
    4865              :                                     }
    4866     72653375 : next_after_fail1466:;
    4867              :                                   }
    4868              :                               }
    4869              :                             }
    4870              :                         }
    4871              :                     }
    4872              :                 }
    4873              :               break;
    4874              :             }
    4875              :           default:;
    4876              :           }
    4877              :         break;
    4878              :       }
    4879       901543 :     case CALL_EXPR:
    4880       901543 :       switch (get_call_combined_fn (_p1))
    4881              :         {
    4882           20 :         case CFN_BUILT_IN_COPYSIGNF16:
    4883           20 :           if (call_expr_nargs (_p1) == 2)
    4884              :     {
    4885           20 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    4886           20 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    4887           20 :               if (real_onep (_q30))
    4888              :                 {
    4889           20 :                   if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    4890              :                     {
    4891            0 :                       {
    4892            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4893            0 :                         tree res = generic_simplify_192 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF16);
    4894            0 :                         if (res) return res;
    4895              :                       }
    4896              :                     }
    4897              :                 }
    4898              :             }
    4899              :           break;
    4900            0 :         case CFN_BUILT_IN_COPYSIGNF32:
    4901            0 :           if (call_expr_nargs (_p1) == 2)
    4902              :     {
    4903            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    4904            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    4905            0 :               if (real_onep (_q30))
    4906              :                 {
    4907            0 :                   if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    4908              :                     {
    4909            0 :                       {
    4910            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4911            0 :                         tree res = generic_simplify_192 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF32);
    4912            0 :                         if (res) return res;
    4913              :                       }
    4914              :                     }
    4915              :                 }
    4916              :             }
    4917              :           break;
    4918            0 :         case CFN_BUILT_IN_COPYSIGNF64:
    4919            0 :           if (call_expr_nargs (_p1) == 2)
    4920              :     {
    4921            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    4922            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    4923            0 :               if (real_onep (_q30))
    4924              :                 {
    4925            0 :                   if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    4926              :                     {
    4927            0 :                       {
    4928            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4929            0 :                         tree res = generic_simplify_192 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF64);
    4930            0 :                         if (res) return res;
    4931              :                       }
    4932              :                     }
    4933              :                 }
    4934              :             }
    4935              :           break;
    4936            0 :         case CFN_BUILT_IN_COPYSIGNF128X:
    4937            0 :           if (call_expr_nargs (_p1) == 2)
    4938              :     {
    4939            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    4940            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    4941            0 :               if (real_onep (_q30))
    4942              :                 {
    4943            0 :                   if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    4944              :                     {
    4945            0 :                       {
    4946            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4947            0 :                         tree res = generic_simplify_192 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF128X);
    4948            0 :                         if (res) return res;
    4949              :                       }
    4950              :                     }
    4951              :                 }
    4952              :             }
    4953              :           break;
    4954            0 :         case CFN_BUILT_IN_COPYSIGNF128:
    4955            0 :           if (call_expr_nargs (_p1) == 2)
    4956              :     {
    4957            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    4958            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    4959            0 :               if (real_onep (_q30))
    4960              :                 {
    4961            0 :                   if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    4962              :                     {
    4963            0 :                       {
    4964            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4965            0 :                         tree res = generic_simplify_192 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF128);
    4966            0 :                         if (res) return res;
    4967              :                       }
    4968              :                     }
    4969              :                 }
    4970              :             }
    4971              :           break;
    4972            0 :         case CFN_BUILT_IN_COPYSIGNF32X:
    4973            0 :           if (call_expr_nargs (_p1) == 2)
    4974              :     {
    4975            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    4976            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    4977            0 :               if (real_onep (_q30))
    4978              :                 {
    4979            0 :                   if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    4980              :                     {
    4981            0 :                       {
    4982            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4983            0 :                         tree res = generic_simplify_192 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF32X);
    4984            0 :                         if (res) return res;
    4985              :                       }
    4986              :                     }
    4987              :                 }
    4988              :             }
    4989              :           break;
    4990            0 :         case CFN_BUILT_IN_COPYSIGNF64X:
    4991            0 :           if (call_expr_nargs (_p1) == 2)
    4992              :     {
    4993            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    4994            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    4995            0 :               if (real_onep (_q30))
    4996              :                 {
    4997            0 :                   if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    4998              :                     {
    4999            0 :                       {
    5000            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5001            0 :                         tree res = generic_simplify_192 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF64X);
    5002            0 :                         if (res) return res;
    5003              :                       }
    5004              :                     }
    5005              :                 }
    5006              :             }
    5007              :           break;
    5008           18 :         case CFN_BUILT_IN_COPYSIGN:
    5009           18 :           if (call_expr_nargs (_p1) == 2)
    5010              :     {
    5011           18 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    5012           18 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    5013           18 :               if (real_onep (_q30))
    5014              :                 {
    5015           14 :                   if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    5016              :                     {
    5017            0 :                       {
    5018            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5019            0 :                         tree res = generic_simplify_192 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGN);
    5020            0 :                         if (res) return res;
    5021              :                       }
    5022              :                     }
    5023              :                 }
    5024              :             }
    5025              :           break;
    5026           14 :         case CFN_BUILT_IN_COPYSIGNF:
    5027           14 :           if (call_expr_nargs (_p1) == 2)
    5028              :     {
    5029           14 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    5030           14 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    5031           14 :               if (real_onep (_q30))
    5032              :                 {
    5033           12 :                   if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    5034              :                     {
    5035            0 :                       {
    5036            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5037            0 :                         tree res = generic_simplify_192 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF);
    5038            0 :                         if (res) return res;
    5039              :                       }
    5040              :                     }
    5041              :                 }
    5042              :             }
    5043              :           break;
    5044            0 :         case CFN_BUILT_IN_COPYSIGNL:
    5045            0 :           if (call_expr_nargs (_p1) == 2)
    5046              :     {
    5047            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    5048            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    5049            0 :               if (real_onep (_q30))
    5050              :                 {
    5051            0 :                   if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    5052              :                     {
    5053            0 :                       {
    5054            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5055            0 :                         tree res = generic_simplify_192 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNL);
    5056            0 :                         if (res) return res;
    5057              :                       }
    5058              :                     }
    5059              :                 }
    5060              :             }
    5061              :           break;
    5062            0 :         case CFN_COPYSIGN:
    5063            0 :           if (call_expr_nargs (_p1) == 2)
    5064              :     {
    5065            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    5066            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    5067            0 :               if (real_onep (_q30))
    5068              :                 {
    5069            0 :                   if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    5070              :                     {
    5071            0 :                       {
    5072            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5073            0 :                         tree res = generic_simplify_192 (loc, type, _p0, _p1, captures, CFN_COPYSIGN);
    5074            0 :                         if (res) return res;
    5075              :                       }
    5076              :                     }
    5077              :                 }
    5078              :             }
    5079              :           break;
    5080              :         default:;
    5081              :         }
    5082              :       break;
    5083     72653375 :     default:;
    5084              :     }
    5085     72653375 :   switch (TREE_CODE (_p0))
    5086              :     {
    5087      2774535 :     case CALL_EXPR:
    5088      2774535 :       switch (get_call_combined_fn (_p0))
    5089              :         {
    5090            1 :         case CFN_BUILT_IN_COPYSIGNF16:
    5091            1 :           if (call_expr_nargs (_p0) == 2)
    5092              :     {
    5093            1 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    5094            1 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    5095            1 :               if (real_onep (_q20))
    5096              :                 {
    5097            1 :                   if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5098              :                     {
    5099            0 :                       {
    5100            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _q21 };
    5101            0 :                         tree res = generic_simplify_193 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF16);
    5102            0 :                         if (res) return res;
    5103              :                       }
    5104              :                     }
    5105            1 :                   switch (TREE_CODE (_q21))
    5106              :                     {
    5107            0 :                     case NEGATE_EXPR:
    5108            0 :                       {
    5109            0 :                         tree _q40 = TREE_OPERAND (_q21, 0);
    5110            0 :                         if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    5111              :                           {
    5112            0 :                             {
    5113            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
    5114            0 :                               tree res = generic_simplify_194 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF16);
    5115            0 :                               if (res) return res;
    5116              :                             }
    5117              :                           }
    5118              :                         break;
    5119              :                       }
    5120              :                     default:;
    5121              :                     }
    5122              :                 }
    5123              :             }
    5124              :           break;
    5125            0 :         case CFN_BUILT_IN_COPYSIGNF32:
    5126            0 :           if (call_expr_nargs (_p0) == 2)
    5127              :     {
    5128            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    5129            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    5130            0 :               if (real_onep (_q20))
    5131              :                 {
    5132            0 :                   if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5133              :                     {
    5134            0 :                       {
    5135            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _q21 };
    5136            0 :                         tree res = generic_simplify_193 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF32);
    5137            0 :                         if (res) return res;
    5138              :                       }
    5139              :                     }
    5140            0 :                   switch (TREE_CODE (_q21))
    5141              :                     {
    5142            0 :                     case NEGATE_EXPR:
    5143            0 :                       {
    5144            0 :                         tree _q40 = TREE_OPERAND (_q21, 0);
    5145            0 :                         if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    5146              :                           {
    5147            0 :                             {
    5148            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
    5149            0 :                               tree res = generic_simplify_194 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF32);
    5150            0 :                               if (res) return res;
    5151              :                             }
    5152              :                           }
    5153              :                         break;
    5154              :                       }
    5155              :                     default:;
    5156              :                     }
    5157              :                 }
    5158              :             }
    5159              :           break;
    5160            0 :         case CFN_BUILT_IN_COPYSIGNF64:
    5161            0 :           if (call_expr_nargs (_p0) == 2)
    5162              :     {
    5163            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    5164            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    5165            0 :               if (real_onep (_q20))
    5166              :                 {
    5167            0 :                   if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5168              :                     {
    5169            0 :                       {
    5170            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _q21 };
    5171            0 :                         tree res = generic_simplify_193 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF64);
    5172            0 :                         if (res) return res;
    5173              :                       }
    5174              :                     }
    5175            0 :                   switch (TREE_CODE (_q21))
    5176              :                     {
    5177            0 :                     case NEGATE_EXPR:
    5178            0 :                       {
    5179            0 :                         tree _q40 = TREE_OPERAND (_q21, 0);
    5180            0 :                         if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    5181              :                           {
    5182            0 :                             {
    5183            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
    5184            0 :                               tree res = generic_simplify_194 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF64);
    5185            0 :                               if (res) return res;
    5186              :                             }
    5187              :                           }
    5188              :                         break;
    5189              :                       }
    5190              :                     default:;
    5191              :                     }
    5192              :                 }
    5193              :             }
    5194              :           break;
    5195            0 :         case CFN_BUILT_IN_COPYSIGNF128X:
    5196            0 :           if (call_expr_nargs (_p0) == 2)
    5197              :     {
    5198            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    5199            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    5200            0 :               if (real_onep (_q20))
    5201              :                 {
    5202            0 :                   if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5203              :                     {
    5204            0 :                       {
    5205            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _q21 };
    5206            0 :                         tree res = generic_simplify_193 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF128X);
    5207            0 :                         if (res) return res;
    5208              :                       }
    5209              :                     }
    5210            0 :                   switch (TREE_CODE (_q21))
    5211              :                     {
    5212            0 :                     case NEGATE_EXPR:
    5213            0 :                       {
    5214            0 :                         tree _q40 = TREE_OPERAND (_q21, 0);
    5215            0 :                         if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    5216              :                           {
    5217            0 :                             {
    5218            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
    5219            0 :                               tree res = generic_simplify_194 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF128X);
    5220            0 :                               if (res) return res;
    5221              :                             }
    5222              :                           }
    5223              :                         break;
    5224              :                       }
    5225              :                     default:;
    5226              :                     }
    5227              :                 }
    5228              :             }
    5229              :           break;
    5230            8 :         case CFN_BUILT_IN_COPYSIGNF128:
    5231            8 :           if (call_expr_nargs (_p0) == 2)
    5232              :     {
    5233            8 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    5234            8 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    5235            8 :               if (real_onep (_q20))
    5236              :                 {
    5237            0 :                   if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5238              :                     {
    5239            0 :                       {
    5240            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _q21 };
    5241            0 :                         tree res = generic_simplify_193 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF128);
    5242            0 :                         if (res) return res;
    5243              :                       }
    5244              :                     }
    5245            0 :                   switch (TREE_CODE (_q21))
    5246              :                     {
    5247            0 :                     case NEGATE_EXPR:
    5248            0 :                       {
    5249            0 :                         tree _q40 = TREE_OPERAND (_q21, 0);
    5250            0 :                         if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    5251              :                           {
    5252            0 :                             {
    5253            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
    5254            0 :                               tree res = generic_simplify_194 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF128);
    5255            0 :                               if (res) return res;
    5256              :                             }
    5257              :                           }
    5258              :                         break;
    5259              :                       }
    5260              :                     default:;
    5261              :                     }
    5262              :                 }
    5263              :             }
    5264              :           break;
    5265            0 :         case CFN_BUILT_IN_COPYSIGNF32X:
    5266            0 :           if (call_expr_nargs (_p0) == 2)
    5267              :     {
    5268            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    5269            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    5270            0 :               if (real_onep (_q20))
    5271              :                 {
    5272            0 :                   if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5273              :                     {
    5274            0 :                       {
    5275            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _q21 };
    5276            0 :                         tree res = generic_simplify_193 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF32X);
    5277            0 :                         if (res) return res;
    5278              :                       }
    5279              :                     }
    5280            0 :                   switch (TREE_CODE (_q21))
    5281              :                     {
    5282            0 :                     case NEGATE_EXPR:
    5283            0 :                       {
    5284            0 :                         tree _q40 = TREE_OPERAND (_q21, 0);
    5285            0 :                         if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    5286              :                           {
    5287            0 :                             {
    5288            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
    5289            0 :                               tree res = generic_simplify_194 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF32X);
    5290            0 :                               if (res) return res;
    5291              :                             }
    5292              :                           }
    5293              :                         break;
    5294              :                       }
    5295              :                     default:;
    5296              :                     }
    5297              :                 }
    5298              :             }
    5299              :           break;
    5300            0 :         case CFN_BUILT_IN_COPYSIGNF64X:
    5301            0 :           if (call_expr_nargs (_p0) == 2)
    5302              :     {
    5303            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    5304            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    5305            0 :               if (real_onep (_q20))
    5306              :                 {
    5307            0 :                   if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5308              :                     {
    5309            0 :                       {
    5310            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _q21 };
    5311            0 :                         tree res = generic_simplify_193 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF64X);
    5312            0 :                         if (res) return res;
    5313              :                       }
    5314              :                     }
    5315            0 :                   switch (TREE_CODE (_q21))
    5316              :                     {
    5317            0 :                     case NEGATE_EXPR:
    5318            0 :                       {
    5319            0 :                         tree _q40 = TREE_OPERAND (_q21, 0);
    5320            0 :                         if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    5321              :                           {
    5322            0 :                             {
    5323            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
    5324            0 :                               tree res = generic_simplify_194 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF64X);
    5325            0 :                               if (res) return res;
    5326              :                             }
    5327              :                           }
    5328              :                         break;
    5329              :                       }
    5330              :                     default:;
    5331              :                     }
    5332              :                 }
    5333              :             }
    5334              :           break;
    5335           18 :         case CFN_BUILT_IN_COPYSIGN:
    5336           18 :           if (call_expr_nargs (_p0) == 2)
    5337              :     {
    5338           18 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    5339           18 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    5340           18 :               if (real_onep (_q20))
    5341              :                 {
    5342            3 :                   if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5343              :                     {
    5344            0 :                       {
    5345            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _q21 };
    5346            0 :                         tree res = generic_simplify_193 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGN);
    5347            0 :                         if (res) return res;
    5348              :                       }
    5349              :                     }
    5350            3 :                   switch (TREE_CODE (_q21))
    5351              :                     {
    5352            0 :                     case NEGATE_EXPR:
    5353            0 :                       {
    5354            0 :                         tree _q40 = TREE_OPERAND (_q21, 0);
    5355            0 :                         if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    5356              :                           {
    5357            0 :                             {
    5358            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
    5359            0 :                               tree res = generic_simplify_194 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGN);
    5360            0 :                               if (res) return res;
    5361              :                             }
    5362              :                           }
    5363              :                         break;
    5364              :                       }
    5365              :                     default:;
    5366              :                     }
    5367              :                 }
    5368              :             }
    5369              :           break;
    5370           36 :         case CFN_BUILT_IN_COPYSIGNF:
    5371           36 :           if (call_expr_nargs (_p0) == 2)
    5372              :     {
    5373           36 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    5374           36 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    5375           36 :               if (real_onep (_q20))
    5376              :                 {
    5377           12 :                   if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5378              :                     {
    5379            4 :                       {
    5380            4 :                         tree captures[1] ATTRIBUTE_UNUSED = { _q21 };
    5381            4 :                         tree res = generic_simplify_193 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF);
    5382            4 :                         if (res) return res;
    5383              :                       }
    5384              :                     }
    5385           12 :                   switch (TREE_CODE (_q21))
    5386              :                     {
    5387            0 :                     case NEGATE_EXPR:
    5388            0 :                       {
    5389            0 :                         tree _q40 = TREE_OPERAND (_q21, 0);
    5390            0 :                         if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    5391              :                           {
    5392            0 :                             {
    5393            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
    5394            0 :                               tree res = generic_simplify_194 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF);
    5395            0 :                               if (res) return res;
    5396              :                             }
    5397              :                           }
    5398              :                         break;
    5399              :                       }
    5400              :                     default:;
    5401              :                     }
    5402              :                 }
    5403              :             }
    5404              :           break;
    5405            8 :         case CFN_BUILT_IN_COPYSIGNL:
    5406            8 :           if (call_expr_nargs (_p0) == 2)
    5407              :     {
    5408            8 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    5409            8 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    5410            8 :               if (real_onep (_q20))
    5411              :                 {
    5412            0 :                   if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5413              :                     {
    5414            0 :                       {
    5415            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _q21 };
    5416            0 :                         tree res = generic_simplify_193 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNL);
    5417            0 :                         if (res) return res;
    5418              :                       }
    5419              :                     }
    5420            0 :                   switch (TREE_CODE (_q21))
    5421              :                     {
    5422            0 :                     case NEGATE_EXPR:
    5423            0 :                       {
    5424            0 :                         tree _q40 = TREE_OPERAND (_q21, 0);
    5425            0 :                         if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    5426              :                           {
    5427            0 :                             {
    5428            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
    5429            0 :                               tree res = generic_simplify_194 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNL);
    5430            0 :                               if (res) return res;
    5431              :                             }
    5432              :                           }
    5433              :                         break;
    5434              :                       }
    5435              :                     default:;
    5436              :                     }
    5437              :                 }
    5438              :             }
    5439              :           break;
    5440            0 :         case CFN_COPYSIGN:
    5441            0 :           if (call_expr_nargs (_p0) == 2)
    5442              :     {
    5443            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    5444            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    5445            0 :               if (real_onep (_q20))
    5446              :                 {
    5447            0 :                   if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5448              :                     {
    5449            0 :                       {
    5450            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _q21 };
    5451            0 :                         tree res = generic_simplify_193 (loc, type, _p0, _p1, captures, CFN_COPYSIGN);
    5452            0 :                         if (res) return res;
    5453              :                       }
    5454              :                     }
    5455            0 :                   switch (TREE_CODE (_q21))
    5456              :                     {
    5457            0 :                     case NEGATE_EXPR:
    5458            0 :                       {
    5459            0 :                         tree _q40 = TREE_OPERAND (_q21, 0);
    5460            0 :                         if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    5461              :                           {
    5462            0 :                             {
    5463            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
    5464            0 :                               tree res = generic_simplify_194 (loc, type, _p0, _p1, captures, CFN_COPYSIGN);
    5465            0 :                               if (res) return res;
    5466              :                             }
    5467              :                           }
    5468              :                         break;
    5469              :                       }
    5470              :                     default:;
    5471              :                     }
    5472              :                 }
    5473              :             }
    5474              :           break;
    5475              :         default:;
    5476              :         }
    5477              :       break;
    5478     72653375 :     default:;
    5479              :     }
    5480     72653375 :   switch (TREE_CODE (_p1))
    5481              :     {
    5482       901543 :     case CALL_EXPR:
    5483       901543 :       switch (get_call_combined_fn (_p1))
    5484              :         {
    5485           20 :         case CFN_BUILT_IN_COPYSIGNF16:
    5486           20 :           if (call_expr_nargs (_p1) == 2)
    5487              :     {
    5488           20 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    5489           20 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    5490           20 :               if (real_onep (_q30))
    5491              :                 {
    5492           20 :                   switch (TREE_CODE (_q31))
    5493              :                     {
    5494            0 :                     case NEGATE_EXPR:
    5495            0 :                       {
    5496            0 :                         tree _q50 = TREE_OPERAND (_q31, 0);
    5497            0 :                         if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    5498              :                           {
    5499            0 :                             {
    5500            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5501            0 :                               tree res = generic_simplify_195 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF16);
    5502            0 :                               if (res) return res;
    5503              :                             }
    5504              :                           }
    5505              :                         break;
    5506              :                       }
    5507              :                     default:;
    5508              :                     }
    5509              :                 }
    5510              :             }
    5511              :           break;
    5512            0 :         case CFN_BUILT_IN_COPYSIGNF32:
    5513            0 :           if (call_expr_nargs (_p1) == 2)
    5514              :     {
    5515            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    5516            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    5517            0 :               if (real_onep (_q30))
    5518              :                 {
    5519            0 :                   switch (TREE_CODE (_q31))
    5520              :                     {
    5521            0 :                     case NEGATE_EXPR:
    5522            0 :                       {
    5523            0 :                         tree _q50 = TREE_OPERAND (_q31, 0);
    5524            0 :                         if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    5525              :                           {
    5526            0 :                             {
    5527            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5528            0 :                               tree res = generic_simplify_195 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF32);
    5529            0 :                               if (res) return res;
    5530              :                             }
    5531              :                           }
    5532              :                         break;
    5533              :                       }
    5534              :                     default:;
    5535              :                     }
    5536              :                 }
    5537              :             }
    5538              :           break;
    5539            0 :         case CFN_BUILT_IN_COPYSIGNF64:
    5540            0 :           if (call_expr_nargs (_p1) == 2)
    5541              :     {
    5542            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    5543            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    5544            0 :               if (real_onep (_q30))
    5545              :                 {
    5546            0 :                   switch (TREE_CODE (_q31))
    5547              :                     {
    5548            0 :                     case NEGATE_EXPR:
    5549            0 :                       {
    5550            0 :                         tree _q50 = TREE_OPERAND (_q31, 0);
    5551            0 :                         if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    5552              :                           {
    5553            0 :                             {
    5554            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5555            0 :                               tree res = generic_simplify_195 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF64);
    5556            0 :                               if (res) return res;
    5557              :                             }
    5558              :                           }
    5559              :                         break;
    5560              :                       }
    5561              :                     default:;
    5562              :                     }
    5563              :                 }
    5564              :             }
    5565              :           break;
    5566            0 :         case CFN_BUILT_IN_COPYSIGNF128X:
    5567            0 :           if (call_expr_nargs (_p1) == 2)
    5568              :     {
    5569            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    5570            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    5571            0 :               if (real_onep (_q30))
    5572              :                 {
    5573            0 :                   switch (TREE_CODE (_q31))
    5574              :                     {
    5575            0 :                     case NEGATE_EXPR:
    5576            0 :                       {
    5577            0 :                         tree _q50 = TREE_OPERAND (_q31, 0);
    5578            0 :                         if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    5579              :                           {
    5580            0 :                             {
    5581            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5582            0 :                               tree res = generic_simplify_195 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF128X);
    5583            0 :                               if (res) return res;
    5584              :                             }
    5585              :                           }
    5586              :                         break;
    5587              :                       }
    5588              :                     default:;
    5589              :                     }
    5590              :                 }
    5591              :             }
    5592              :           break;
    5593            0 :         case CFN_BUILT_IN_COPYSIGNF128:
    5594            0 :           if (call_expr_nargs (_p1) == 2)
    5595              :     {
    5596            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    5597            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    5598            0 :               if (real_onep (_q30))
    5599              :                 {
    5600            0 :                   switch (TREE_CODE (_q31))
    5601              :                     {
    5602            0 :                     case NEGATE_EXPR:
    5603            0 :                       {
    5604            0 :                         tree _q50 = TREE_OPERAND (_q31, 0);
    5605            0 :                         if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    5606              :                           {
    5607            0 :                             {
    5608            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5609            0 :                               tree res = generic_simplify_195 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF128);
    5610            0 :                               if (res) return res;
    5611              :                             }
    5612              :                           }
    5613              :                         break;
    5614              :                       }
    5615              :                     default:;
    5616              :                     }
    5617              :                 }
    5618              :             }
    5619              :           break;
    5620            0 :         case CFN_BUILT_IN_COPYSIGNF32X:
    5621            0 :           if (call_expr_nargs (_p1) == 2)
    5622              :     {
    5623            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    5624            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    5625            0 :               if (real_onep (_q30))
    5626              :                 {
    5627            0 :                   switch (TREE_CODE (_q31))
    5628              :                     {
    5629            0 :                     case NEGATE_EXPR:
    5630            0 :                       {
    5631            0 :                         tree _q50 = TREE_OPERAND (_q31, 0);
    5632            0 :                         if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    5633              :                           {
    5634            0 :                             {
    5635            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5636            0 :                               tree res = generic_simplify_195 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF32X);
    5637            0 :                               if (res) return res;
    5638              :                             }
    5639              :                           }
    5640              :                         break;
    5641              :                       }
    5642              :                     default:;
    5643              :                     }
    5644              :                 }
    5645              :             }
    5646              :           break;
    5647            0 :         case CFN_BUILT_IN_COPYSIGNF64X:
    5648            0 :           if (call_expr_nargs (_p1) == 2)
    5649              :     {
    5650            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    5651            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    5652            0 :               if (real_onep (_q30))
    5653              :                 {
    5654            0 :                   switch (TREE_CODE (_q31))
    5655              :                     {
    5656            0 :                     case NEGATE_EXPR:
    5657            0 :                       {
    5658            0 :                         tree _q50 = TREE_OPERAND (_q31, 0);
    5659            0 :                         if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    5660              :                           {
    5661            0 :                             {
    5662            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5663            0 :                               tree res = generic_simplify_195 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF64X);
    5664            0 :                               if (res) return res;
    5665              :                             }
    5666              :                           }
    5667              :                         break;
    5668              :                       }
    5669              :                     default:;
    5670              :                     }
    5671              :                 }
    5672              :             }
    5673              :           break;
    5674           18 :         case CFN_BUILT_IN_COPYSIGN:
    5675           18 :           if (call_expr_nargs (_p1) == 2)
    5676              :     {
    5677           18 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    5678           18 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    5679           18 :               if (real_onep (_q30))
    5680              :                 {
    5681           14 :                   switch (TREE_CODE (_q31))
    5682              :                     {
    5683            0 :                     case NEGATE_EXPR:
    5684            0 :                       {
    5685            0 :                         tree _q50 = TREE_OPERAND (_q31, 0);
    5686            0 :                         if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    5687              :                           {
    5688            0 :                             {
    5689            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5690            0 :                               tree res = generic_simplify_195 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGN);
    5691            0 :                               if (res) return res;
    5692              :                             }
    5693              :                           }
    5694              :                         break;
    5695              :                       }
    5696              :                     default:;
    5697              :                     }
    5698              :                 }
    5699              :             }
    5700              :           break;
    5701           14 :         case CFN_BUILT_IN_COPYSIGNF:
    5702           14 :           if (call_expr_nargs (_p1) == 2)
    5703              :     {
    5704           14 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    5705           14 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    5706           14 :               if (real_onep (_q30))
    5707              :                 {
    5708           12 :                   switch (TREE_CODE (_q31))
    5709              :                     {
    5710            0 :                     case NEGATE_EXPR:
    5711            0 :                       {
    5712            0 :                         tree _q50 = TREE_OPERAND (_q31, 0);
    5713            0 :                         if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    5714              :                           {
    5715            0 :                             {
    5716            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5717            0 :                               tree res = generic_simplify_195 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF);
    5718            0 :                               if (res) return res;
    5719              :                             }
    5720              :                           }
    5721              :                         break;
    5722              :                       }
    5723              :                     default:;
    5724              :                     }
    5725              :                 }
    5726              :             }
    5727              :           break;
    5728            0 :         case CFN_BUILT_IN_COPYSIGNL:
    5729            0 :           if (call_expr_nargs (_p1) == 2)
    5730              :     {
    5731            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    5732            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    5733            0 :               if (real_onep (_q30))
    5734              :                 {
    5735            0 :                   switch (TREE_CODE (_q31))
    5736              :                     {
    5737            0 :                     case NEGATE_EXPR:
    5738            0 :                       {
    5739            0 :                         tree _q50 = TREE_OPERAND (_q31, 0);
    5740            0 :                         if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    5741              :                           {
    5742            0 :                             {
    5743            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5744            0 :                               tree res = generic_simplify_195 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNL);
    5745            0 :                               if (res) return res;
    5746              :                             }
    5747              :                           }
    5748              :                         break;
    5749              :                       }
    5750              :                     default:;
    5751              :                     }
    5752              :                 }
    5753              :             }
    5754              :           break;
    5755            0 :         case CFN_COPYSIGN:
    5756            0 :           if (call_expr_nargs (_p1) == 2)
    5757              :     {
    5758            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    5759            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    5760            0 :               if (real_onep (_q30))
    5761              :                 {
    5762            0 :                   switch (TREE_CODE (_q31))
    5763              :                     {
    5764            0 :                     case NEGATE_EXPR:
    5765            0 :                       {
    5766            0 :                         tree _q50 = TREE_OPERAND (_q31, 0);
    5767            0 :                         if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    5768              :                           {
    5769            0 :                             {
    5770            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5771            0 :                               tree res = generic_simplify_195 (loc, type, _p0, _p1, captures, CFN_COPYSIGN);
    5772            0 :                               if (res) return res;
    5773              :                             }
    5774              :                           }
    5775              :                         break;
    5776              :                       }
    5777              :                     default:;
    5778              :                     }
    5779              :                 }
    5780              :             }
    5781              :           break;
    5782              :         default:;
    5783              :         }
    5784              :       break;
    5785     72653375 :     default:;
    5786              :     }
    5787     72653375 : if (integer_onep (_p1))
    5788              :   {
    5789      3653164 :     {
    5790      3653164 :       tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5791      3653164 :       tree res = generic_simplify_196 (loc, type, _p0, _p1, captures, MULT_EXPR);
    5792      3653164 :       if (res) return res;
    5793              :     }
    5794              :   }
    5795     69000211 :   switch (TREE_CODE (_p0))
    5796              :     {
    5797      5884746 :     case MULT_EXPR:
    5798      5884746 :       {
    5799      5884746 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5800      5884746 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5801      5884746 :         switch (TREE_CODE (_q21))
    5802              :           {
    5803      1162559 :           case INTEGER_CST:
    5804      1162559 :             {
    5805      1162559 :               switch (TREE_CODE (_p1))
    5806              :                 {
    5807       992444 :                 case INTEGER_CST:
    5808       992444 :                   {
    5809       992444 :                     {
    5810       992444 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    5811       992444 :                       {
    5812       992444 :  wi::overflow_type overflow;
    5813       992444 :  wide_int mul = wi::mul (wi::to_wide (captures[1]), wi::to_wide (captures[2]),
    5814      1984888 :  TYPE_SIGN (type), &overflow);
    5815       992444 :                           if (!overflow || TYPE_OVERFLOW_WRAPS (type)
    5816              : )
    5817              :                             {
    5818       992414 :                               if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1467;
    5819       992414 :                               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1467;
    5820       992414 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1467;
    5821       992414 :                               {
    5822       992414 :                                 tree res_op0;
    5823       992414 :                                 res_op0 = captures[0];
    5824       992414 :                                 tree res_op1;
    5825       992414 :                                 res_op1 =  wide_int_to_tree (type, mul);
    5826       992414 :                                 tree _r;
    5827       992414 :                                 _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    5828       992414 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1008, __FILE__, __LINE__, true);
    5829       992414 :                                 return _r;
    5830              :                               }
    5831           30 : next_after_fail1467:;
    5832              :                             }
    5833       992414 :                       }
    5834              :                     }
    5835           30 :                     break;
    5836              :                   }
    5837              :                 default:;
    5838              :                 }
    5839              :               break;
    5840              :             }
    5841              :           default:;
    5842              :           }
    5843              :         break;
    5844              :       }
    5845      7665555 :     case PLUS_EXPR:
    5846      7665555 :       {
    5847      7665555 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5848      7665555 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5849      7665555 :         switch (TREE_CODE (_q20))
    5850              :           {
    5851      1152549 :           case MULT_EXPR:
    5852      1152549 :             {
    5853      1152549 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5854      1152549 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5855      1152549 :               switch (TREE_CODE (_q31))
    5856              :                 {
    5857       304650 :                 case INTEGER_CST:
    5858       304650 :                   {
    5859       304650 :                     switch (TREE_CODE (_q21))
    5860              :                       {
    5861        35453 :                       case INTEGER_CST:
    5862        35453 :                         {
    5863        35453 :                           switch (TREE_CODE (_p1))
    5864              :                             {
    5865        11987 :                             case INTEGER_CST:
    5866        11987 :                               {
    5867        11987 :                                 {
    5868        11987 :                                   tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
    5869        11987 :                                   {
    5870        11987 :  bool overflowed = true;
    5871        11987 :  wi::overflow_type ovf1, ovf2;
    5872        11987 :  wide_int mul = wi::mul (wi::to_wide (captures[3]), wi::to_wide (captures[5]),
    5873        23974 :  TYPE_SIGN (type), &ovf1);
    5874        11987 :  wide_int add = wi::mul (wi::to_wide (captures[4]), wi::to_wide (captures[5]),
    5875        23974 :  TYPE_SIGN (type), &ovf2);
    5876        11987 :  if (TYPE_OVERFLOW_UNDEFINED (type))
    5877              :  {
    5878              :  }
    5879              :  else
    5880         3996 :  overflowed = false;
    5881         3996 :                                       if (!overflowed
    5882              : )
    5883              :                                         {
    5884         3996 :                                           if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1468;
    5885         3996 :                                           if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1468;
    5886         3996 :                                           if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1468;
    5887         3996 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1468;
    5888         3996 :                                           {
    5889         3996 :                                             tree res_op0;
    5890         3996 :                                             {
    5891         3996 :                                               tree _o1[2], _r1;
    5892         3996 :                                               _o1[0] = captures[2];
    5893         3996 :                                               _o1[1] =  wide_int_to_tree (type, mul);
    5894         3996 :                                               _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    5895         3996 :                                               res_op0 = _r1;
    5896              :                                             }
    5897         3996 :                                             tree res_op1;
    5898         3996 :                                             res_op1 =  wide_int_to_tree (type, add);
    5899         3996 :                                             tree _r;
    5900         3996 :                                             _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
    5901         3996 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1009, __FILE__, __LINE__, true);
    5902         3996 :                                             return _r;
    5903              :                                           }
    5904         7991 : next_after_fail1468:;
    5905              :                                         }
    5906        11987 :                                   }
    5907              :                                 }
    5908         7991 :                                 break;
    5909              :                               }
    5910              :                             default:;
    5911              :                             }
    5912              :                           break;
    5913              :                         }
    5914              :                       default:;
    5915              :                       }
    5916              :                     break;
    5917              :                   }
    5918              :                 default:;
    5919              :                 }
    5920              :               break;
    5921              :             }
    5922              :           default:;
    5923              :           }
    5924              :         break;
    5925              :       }
    5926       776736 :     case RDIV_EXPR:
    5927       776736 :       {
    5928       776736 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5929       776736 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5930       776736 :         switch (TREE_CODE (_p1))
    5931              :           {
    5932       272032 :           case RDIV_EXPR:
    5933       272032 :             {
    5934       272032 :               tree _q50 = TREE_OPERAND (_p1, 0);
    5935       272032 :               tree _q51 = TREE_OPERAND (_p1, 1);
    5936       272032 :               {
    5937       272032 :                 tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50, _q51 };
    5938       272032 :                 if (flag_reciprocal_math
    5939              : )
    5940              :                   {
    5941          205 :                     if (flag_associative_math
    5942          204 :  && !HONOR_NANS (type) && !HONOR_INFINITIES (type)
    5943          204 :  && !flag_trapping_math
    5944          203 :  && (TREE_CODE (type) != COMPLEX_TYPE
    5945            0 :  || !HONOR_SIGNED_ZEROS (type))
    5946          205 :  && single_use (captures[0]) && single_use (captures[3])
    5947              : )
    5948              :                       {
    5949          203 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1469;
    5950          203 :                         {
    5951          203 :                           tree res_op0;
    5952          203 :                           {
    5953          203 :                             tree _o1[2], _r1;
    5954          203 :                             _o1[0] = captures[1];
    5955          203 :                             _o1[1] = captures[4];
    5956          203 :                             _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    5957          203 :                             res_op0 = _r1;
    5958              :                           }
    5959          203 :                           tree res_op1;
    5960          203 :                           {
    5961          203 :                             tree _o1[2], _r1;
    5962          203 :                             _o1[0] = captures[2];
    5963          203 :                             _o1[1] = captures[5];
    5964          203 :                             _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    5965          203 :                             res_op1 = _r1;
    5966              :                           }
    5967          203 :                           tree _r;
    5968          203 :                           _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
    5969          203 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1010, __FILE__, __LINE__, true);
    5970              :                           return _r;
    5971              :                         }
    5972            0 : next_after_fail1469:;
    5973              :                       }
    5974              :                   }
    5975              :               }
    5976              :               break;
    5977              :             }
    5978              :           default:;
    5979              :           }
    5980              :         break;
    5981              :       }
    5982        79102 :     case TRUNC_DIV_EXPR:
    5983        79102 :       {
    5984        79102 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5985        79102 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5986        79102 :         if (integer_pow2p (_q21))
    5987              :           {
    5988        56961 :             if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5989              :               {
    5990        37553 :                 {
    5991        37553 :                   tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    5992        37553 :                   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && TYPE_UNSIGNED (TREE_TYPE (captures[0]))
    5993              : )
    5994              :                     {
    5995        37489 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1470;
    5996        37489 :                       {
    5997        37489 :                         tree res_op0;
    5998        37489 :                         res_op0 = captures[0];
    5999        37489 :                         tree res_op1;
    6000        37489 :                         {
    6001        37489 :                           tree _o1[1], _r1;
    6002        37489 :                           _o1[0] = captures[1];
    6003        37489 :                           _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    6004        37489 :                           res_op1 = _r1;
    6005              :                         }
    6006        37489 :                         tree _r;
    6007        37489 :                         _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    6008        37489 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1011, __FILE__, __LINE__, true);
    6009              :                         return _r;
    6010              :                       }
    6011            0 : next_after_fail1470:;
    6012              :                     }
    6013              :                 }
    6014              :               }
    6015              :           }
    6016              :         break;
    6017              :       }
    6018          273 :     case ABS_EXPR:
    6019          273 :       {
    6020          273 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6021          273 :         if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    6022              :           {
    6023            2 :             {
    6024            2 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
    6025            2 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1471;
    6026            2 :               {
    6027            2 :                 if (! tree_invariant_p (captures[1])) goto next_after_fail1471;
    6028            0 :                 tree res_op0;
    6029            0 :                 res_op0 = unshare_expr (captures[1]);
    6030            0 :                 tree res_op1;
    6031            0 :                 res_op1 = captures[1];
    6032            0 :                 tree _r;
    6033            0 :                 _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    6034            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1012, __FILE__, __LINE__, true);
    6035              :                 return _r;
    6036              :               }
    6037          273 : next_after_fail1471:;
    6038              :             }
    6039              :           }
    6040          273 :         switch (TREE_CODE (_p1))
    6041              :           {
    6042           15 :           case ABS_EXPR:
    6043           15 :             {
    6044           15 :               tree _q40 = TREE_OPERAND (_p1, 0);
    6045           15 :               {
    6046           15 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    6047           10 :                 if ((FLOAT_TYPE_P (type)
    6048            5 :  && !HONOR_SIGN_DEPENDENT_ROUNDING (type))
    6049           26 :  || (ANY_INTEGRAL_TYPE_P (type)
    6050           10 :  && TYPE_OVERFLOW_UNDEFINED (type)
    6051            8 :  && !TYPE_OVERFLOW_SANITIZED (type))
    6052              : )
    6053              :                   {
    6054           10 :                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1472;
    6055           10 :                     {
    6056           10 :                       tree res_op0;
    6057           10 :                       {
    6058           10 :                         tree _o1[2], _r1;
    6059           10 :                         _o1[0] = captures[1];
    6060           10 :                         _o1[1] = captures[3];
    6061           10 :                         _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    6062           10 :                         res_op0 = _r1;
    6063              :                       }
    6064           10 :                       tree _r;
    6065           10 :                       _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
    6066           10 :                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1013, __FILE__, __LINE__, true);
    6067              :                       return _r;
    6068              :                     }
    6069            0 : next_after_fail1472:;
    6070              :                   }
    6071              :               }
    6072              :               break;
    6073              :             }
    6074              :           default:;
    6075              :           }
    6076              :         break;
    6077              :       }
    6078            0 :     case ABSU_EXPR:
    6079            0 :       {
    6080            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6081            0 :         if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    6082              :           {
    6083            0 :             {
    6084            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20 };
    6085            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1473;
    6086            0 :               {
    6087            0 :                 tree res_op0;
    6088            0 :                 {
    6089            0 :                   tree _o1[1], _r1;
    6090            0 :                   _o1[0] = captures[1];
    6091            0 :                   if (TREE_TYPE (_o1[0]) != type)
    6092              :                     {
    6093            0 :                       _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    6094              :                     }
    6095              :                   else
    6096              :                     _r1 = _o1[0];
    6097            0 :                   captures[2] = _r1;
    6098              :                 }
    6099            0 :                 res_op0 = unshare_expr (captures[2]);
    6100            0 :                 tree res_op1;
    6101            0 :                 res_op1 = captures[2];
    6102            0 :                 tree _r;
    6103            0 :                 _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    6104            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1014, __FILE__, __LINE__, true);
    6105     72733665 :                 return _r;
    6106              :               }
    6107            0 : next_after_fail1473:;
    6108              :             }
    6109              :           }
    6110              :         break;
    6111              :       }
    6112      2531303 :     case CALL_EXPR:
    6113      2531303 :       switch (get_call_combined_fn (_p0))
    6114              :         {
    6115            1 :         case CFN_BUILT_IN_COPYSIGNF16:
    6116            1 :           if (call_expr_nargs (_p0) == 2)
    6117              :     {
    6118            1 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    6119            1 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    6120            1 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    6121              :                 {
    6122            0 :                   {
    6123            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    6124            0 :                     tree res = generic_simplify_197 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF16);
    6125            0 :                     if (res) return res;
    6126              :                   }
    6127              :                 }
    6128              :             }
    6129              :           break;
    6130            0 :         case CFN_BUILT_IN_COPYSIGNF32:
    6131            0 :           if (call_expr_nargs (_p0) == 2)
    6132              :     {
    6133            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    6134            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    6135            0 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    6136              :                 {
    6137            0 :                   {
    6138            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    6139            0 :                     tree res = generic_simplify_197 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF32);
    6140            0 :                     if (res) return res;
    6141              :                   }
    6142              :                 }
    6143              :             }
    6144              :           break;
    6145            0 :         case CFN_BUILT_IN_COPYSIGNF64:
    6146            0 :           if (call_expr_nargs (_p0) == 2)
    6147              :     {
    6148            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    6149            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    6150            0 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    6151              :                 {
    6152            0 :                   {
    6153            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    6154            0 :                     tree res = generic_simplify_197 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF64);
    6155            0 :                     if (res) return res;
    6156              :                   }
    6157              :                 }
    6158              :             }
    6159              :           break;
    6160            0 :         case CFN_BUILT_IN_COPYSIGNF128X:
    6161            0 :           if (call_expr_nargs (_p0) == 2)
    6162              :     {
    6163            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    6164            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    6165            0 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    6166              :                 {
    6167            0 :                   {
    6168            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    6169            0 :                     tree res = generic_simplify_197 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF128X);
    6170            0 :                     if (res) return res;
    6171              :                   }
    6172              :                 }
    6173              :             }
    6174              :           break;
    6175            8 :         case CFN_BUILT_IN_COPYSIGNF128:
    6176            8 :           if (call_expr_nargs (_p0) == 2)
    6177              :     {
    6178            8 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    6179            8 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    6180            8 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    6181              :                 {
    6182            0 :                   {
    6183            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    6184            0 :                     tree res = generic_simplify_197 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF128);
    6185            0 :                     if (res) return res;
    6186              :                   }
    6187              :                 }
    6188              :             }
    6189              :           break;
    6190            0 :         case CFN_BUILT_IN_COPYSIGNF32X:
    6191            0 :           if (call_expr_nargs (_p0) == 2)
    6192              :     {
    6193            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    6194            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    6195            0 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    6196              :                 {
    6197            0 :                   {
    6198            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    6199            0 :                     tree res = generic_simplify_197 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF32X);
    6200            0 :                     if (res) return res;
    6201              :                   }
    6202              :                 }
    6203              :             }
    6204              :           break;
    6205            0 :         case CFN_BUILT_IN_COPYSIGNF64X:
    6206            0 :           if (call_expr_nargs (_p0) == 2)
    6207              :     {
    6208            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    6209            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    6210            0 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    6211              :                 {
    6212            0 :                   {
    6213            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    6214            0 :                     tree res = generic_simplify_197 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF64X);
    6215            0 :                     if (res) return res;
    6216              :                   }
    6217              :                 }
    6218              :             }
    6219              :           break;
    6220           18 :         case CFN_BUILT_IN_COPYSIGN:
    6221           18 :           if (call_expr_nargs (_p0) == 2)
    6222              :     {
    6223           18 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    6224           18 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    6225           18 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    6226              :                 {
    6227            0 :                   {
    6228            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    6229            0 :                     tree res = generic_simplify_197 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGN);
    6230            0 :                     if (res) return res;
    6231              :                   }
    6232              :                 }
    6233              :             }
    6234              :           break;
    6235           36 :         case CFN_BUILT_IN_COPYSIGNF:
    6236           36 :           if (call_expr_nargs (_p0) == 2)
    6237              :     {
    6238           36 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    6239           36 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    6240           36 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    6241              :                 {
    6242            0 :                   {
    6243            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    6244            0 :                     tree res = generic_simplify_197 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF);
    6245            0 :                     if (res) return res;
    6246              :                   }
    6247              :                 }
    6248              :             }
    6249              :           break;
    6250            8 :         case CFN_BUILT_IN_COPYSIGNL:
    6251            8 :           if (call_expr_nargs (_p0) == 2)
    6252              :     {
    6253            8 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    6254            8 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    6255            8 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    6256              :                 {
    6257            0 :                   {
    6258            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    6259            0 :                     tree res = generic_simplify_197 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNL);
    6260            0 :                     if (res) return res;
    6261              :                   }
    6262              :                 }
    6263              :             }
    6264              :           break;
    6265            0 :         case CFN_COPYSIGN:
    6266            0 :           if (call_expr_nargs (_p0) == 2)
    6267              :     {
    6268            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    6269            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    6270            0 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    6271              :                 {
    6272            0 :                   {
    6273            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    6274            0 :                     tree res = generic_simplify_197 (loc, type, _p0, _p1, captures, CFN_COPYSIGN);
    6275            0 :                     if (res) return res;
    6276              :                   }
    6277              :                 }
    6278              :             }
    6279              :           break;
    6280              :         default:;
    6281              :         }
    6282              :       break;
    6283     67966099 :     default:;
    6284              :     }
    6285     67966099 :   switch (TREE_CODE (_p1))
    6286              :     {
    6287      7427067 :     CASE_CONVERT:
    6288      7427067 :       {
    6289      7427067 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6290      7427067 :         switch (TREE_CODE (_q30))
    6291              :           {
    6292            0 :           case LSHIFT_EXPR:
    6293            0 :             {
    6294            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    6295            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    6296            0 :               if (integer_onep (_q40))
    6297              :                 {
    6298            0 :                   {
    6299            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q41 };
    6300            0 :                     tree res = generic_simplify_198 (loc, type, _p0, _p1, captures);
    6301            0 :                     if (res) return res;
    6302              :                   }
    6303              :                 }
    6304              :               break;
    6305              :             }
    6306              :           default:;
    6307              :           }
    6308              :         break;
    6309              :       }
    6310     67966099 :     default:;
    6311              :     }
    6312     67966099 :   switch (TREE_CODE (_p0))
    6313              :     {
    6314     32236112 :     CASE_CONVERT:
    6315     32236112 :       {
    6316     32236112 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6317     32236112 :         switch (TREE_CODE (_q20))
    6318              :           {
    6319           20 :           case LSHIFT_EXPR:
    6320           20 :             {
    6321           20 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6322           20 :               tree _q31 = TREE_OPERAND (_q20, 1);
    6323           20 :               if (integer_onep (_q30))
    6324              :                 {
    6325            1 :                   {
    6326            1 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _q31 };
    6327            1 :                     tree res = generic_simplify_198 (loc, type, _p0, _p1, captures);
    6328            1 :                     if (res) return res;
    6329              :                   }
    6330              :                 }
    6331              :               break;
    6332              :             }
    6333            1 :           case EQ_EXPR:
    6334            1 :             {
    6335            1 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6336            1 :               tree _q31 = TREE_OPERAND (_q20, 1);
    6337            1 :               if (integer_zerop (_q31))
    6338              :                 {
    6339            1 :                   if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    6340              :                     {
    6341            0 :                       {
    6342            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q31 };
    6343            0 :                         tree res = generic_simplify_199 (loc, type, _p0, _p1, captures);
    6344            0 :                         if (res) return res;
    6345              :                       }
    6346              :                     }
    6347              :                 }
    6348              :               break;
    6349              :             }
    6350              :           default:;
    6351              :           }
    6352              :         break;
    6353              :       }
    6354     67966099 :     default:;
    6355              :     }
    6356     67966099 :   switch (TREE_CODE (_p1))
    6357              :     {
    6358         1149 :     case LSHIFT_EXPR:
    6359         1149 :       {
    6360         1149 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6361         1149 :         tree _q31 = TREE_OPERAND (_p1, 1);
    6362         1149 :         if (integer_onep (_q30))
    6363              :           {
    6364          470 :             {
    6365          470 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
    6366          470 :               tree res = generic_simplify_198 (loc, type, _p0, _p1, captures);
    6367          470 :               if (res) return res;
    6368              :             }
    6369              :           }
    6370              :         break;
    6371              :       }
    6372     67965629 :     default:;
    6373              :     }
    6374     67965629 :   switch (TREE_CODE (_p0))
    6375              :     {
    6376         4253 :     case LSHIFT_EXPR:
    6377         4253 :       {
    6378         4253 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6379         4253 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6380         4253 :         if (integer_onep (_q20))
    6381              :           {
    6382         4031 :             {
    6383         4031 :               tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q21 };
    6384         4031 :               tree res = generic_simplify_198 (loc, type, _p0, _p1, captures);
    6385         4031 :               if (res) return res;
    6386              :             }
    6387              :           }
    6388              :         break;
    6389              :       }
    6390     67961598 :     default:;
    6391              :     }
    6392     67961598 :   switch (TREE_CODE (_p1))
    6393              :     {
    6394      7426646 :     CASE_CONVERT:
    6395      7426646 :       {
    6396      7426646 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6397      7426646 :         switch (TREE_CODE (_q30))
    6398              :           {
    6399            0 :           case EQ_EXPR:
    6400            0 :             {
    6401            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    6402            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    6403            0 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    6404              :                 {
    6405            0 :                   if (integer_zerop (_q41))
    6406              :                     {
    6407            0 :                       {
    6408            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q41 };
    6409            0 :                         tree res = generic_simplify_199 (loc, type, _p0, _p1, captures);
    6410            0 :                         if (res) return res;
    6411              :                       }
    6412              :                     }
    6413              :                 }
    6414              :               break;
    6415              :             }
    6416              :           default:;
    6417              :           }
    6418              :         break;
    6419              :       }
    6420            0 :     case EQ_EXPR:
    6421            0 :       {
    6422            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6423            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
    6424            0 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    6425              :           {
    6426            0 :             if (integer_zerop (_q31))
    6427              :               {
    6428            0 :                 {
    6429            0 :                   tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    6430            0 :                   tree res = generic_simplify_199 (loc, type, _p0, _p1, captures);
    6431            0 :                   if (res) return res;
    6432              :                 }
    6433              :               }
    6434              :           }
    6435              :         break;
    6436              :       }
    6437     67961598 :     default:;
    6438              :     }
    6439     67961598 :   switch (TREE_CODE (_p0))
    6440              :     {
    6441          183 :     case EQ_EXPR:
    6442          183 :       {
    6443          183 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6444          183 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6445          183 :         if (integer_zerop (_q21))
    6446              :           {
    6447           59 :             if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    6448              :               {
    6449            3 :                 {
    6450            3 :                   tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    6451            3 :                   tree res = generic_simplify_199 (loc, type, _p0, _p1, captures);
    6452            3 :                   if (res) return res;
    6453              :                 }
    6454              :               }
    6455              :           }
    6456              :         break;
    6457              :       }
    6458     67961595 :     default:;
    6459              :     }
    6460     67961595 :   switch (TREE_CODE (_p1))
    6461              :     {
    6462            0 :     case VEC_COND_EXPR:
    6463            0 :       {
    6464            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6465            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
    6466            0 :         tree _q32 = TREE_OPERAND (_p1, 2);
    6467            0 :         switch (TREE_CODE (_q30))
    6468              :           {
    6469            0 :           case EQ_EXPR:
    6470            0 :             {
    6471            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    6472            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    6473            0 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    6474              :                 {
    6475            0 :                   if (integer_zerop (_q41))
    6476              :                     {
    6477            0 :                       if (integer_zerop (_q32))
    6478              :                         {
    6479            0 :                           {
    6480            0 :                             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q31, _q32 };
    6481            0 :                             if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1474;
    6482            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1474;
    6483            0 :                             {
    6484            0 :                               tree _r;
    6485            0 :                               _r = captures[2];
    6486            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1015, __FILE__, __LINE__, true);
    6487              :                               return _r;
    6488              :                             }
    6489     67961595 : next_after_fail1474:;
    6490              :                           }
    6491              :                         }
    6492              :                     }
    6493              :                 }
    6494              :               break;
    6495              :             }
    6496              :           default:;
    6497              :           }
    6498              :         break;
    6499              :       }
    6500     67961595 :     default:;
    6501              :     }
    6502     67961595 :   switch (TREE_CODE (_p0))
    6503              :     {
    6504           37 :     case VEC_COND_EXPR:
    6505           37 :       {
    6506           37 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6507           37 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6508           37 :         tree _q22 = TREE_OPERAND (_p0, 2);
    6509           37 :         switch (TREE_CODE (_q20))
    6510              :           {
    6511            1 :           case EQ_EXPR:
    6512            1 :             {
    6513            1 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6514            1 :               tree _q31 = TREE_OPERAND (_q20, 1);
    6515            1 :               if (integer_zerop (_q31))
    6516              :                 {
    6517            1 :                   if (integer_zerop (_q22))
    6518              :                     {
    6519            1 :                       if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    6520              :                         {
    6521            1 :                           {
    6522            1 :                             tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _q22 };
    6523            1 :                             if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1475;
    6524            1 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1475;
    6525            1 :                             {
    6526            1 :                               tree _r;
    6527            1 :                               _r = captures[2];
    6528            1 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1015, __FILE__, __LINE__, true);
    6529              :                               return _r;
    6530              :                             }
    6531     67961594 : next_after_fail1475:;
    6532              :                           }
    6533              :                         }
    6534              :                     }
    6535              :                 }
    6536              :               break;
    6537              :             }
    6538            0 :           case NE_EXPR:
    6539            0 :             {
    6540            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6541            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    6542            0 :               if (integer_zerop (_q31))
    6543              :                 {
    6544            0 :                   if (integer_zerop (_q21))
    6545              :                     {
    6546            0 :                       if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    6547              :                         {
    6548            0 :                           {
    6549            0 :                             tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q21, _q22 };
    6550            0 :                             if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1476;
    6551            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1476;
    6552            0 :                             {
    6553            0 :                               tree _r;
    6554            0 :                               _r = captures[1];
    6555            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1016, __FILE__, __LINE__, true);
    6556              :                               return _r;
    6557              :                             }
    6558     67961594 : next_after_fail1476:;
    6559              :                           }
    6560              :                         }
    6561              :                     }
    6562              :                 }
    6563              :               break;
    6564              :             }
    6565              :           default:;
    6566              :           }
    6567              :         break;
    6568              :       }
    6569     67961594 :     default:;
    6570              :     }
    6571     67961594 :   switch (TREE_CODE (_p1))
    6572              :     {
    6573            0 :     case VEC_COND_EXPR:
    6574            0 :       {
    6575            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6576            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
    6577            0 :         tree _q32 = TREE_OPERAND (_p1, 2);
    6578            0 :         switch (TREE_CODE (_q30))
    6579              :           {
    6580            0 :           case NE_EXPR:
    6581            0 :             {
    6582            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    6583            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    6584            0 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    6585              :                 {
    6586            0 :                   if (integer_zerop (_q41))
    6587              :                     {
    6588            0 :                       if (integer_zerop (_q31))
    6589              :                         {
    6590            0 :                           {
    6591            0 :                             tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q31, _q32 };
    6592            0 :                             if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1477;
    6593            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1477;
    6594            0 :                             {
    6595            0 :                               tree _r;
    6596            0 :                               _r = captures[1];
    6597            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1016, __FILE__, __LINE__, true);
    6598              :                               return _r;
    6599              :                             }
    6600     67961594 : next_after_fail1477:;
    6601              :                           }
    6602              :                         }
    6603              :                     }
    6604              :                 }
    6605              :               break;
    6606              :             }
    6607              :           default:;
    6608              :           }
    6609              :         break;
    6610              :       }
    6611     67961594 :     default:;
    6612              :     }
    6613     67961594 :   switch (TREE_CODE (_p0))
    6614              :     {
    6615       776533 :     case RDIV_EXPR:
    6616       776533 :       {
    6617       776533 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6618       776533 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6619       776533 :         switch (TREE_CODE (_q20))
    6620              :           {
    6621        58513 :           case REAL_CST:
    6622        58513 :             {
    6623        58513 :               switch (TREE_CODE (_p1))
    6624              :                 {
    6625            1 :                 case REAL_CST:
    6626            1 :                   {
    6627            1 :                     {
    6628            1 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    6629            1 :                       if (flag_associative_math
    6630            1 :  && single_use (captures[0])
    6631              : )
    6632              :                         {
    6633            1 :                           {
    6634            1 :  tree tem = const_binop (MULT_EXPR, type, captures[1], captures[3]);
    6635            1 :                               if (tem
    6636              : )
    6637              :                                 {
    6638            1 :                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1478;
    6639            1 :                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1478;
    6640            1 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1478;
    6641            1 :                                   {
    6642            1 :                                     tree res_op0;
    6643            1 :                                     res_op0 =  tem;
    6644            1 :                                     tree res_op1;
    6645            1 :                                     res_op1 = captures[2];
    6646            1 :                                     tree _r;
    6647            1 :                                     _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
    6648            1 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1017, __FILE__, __LINE__, true);
    6649              :                                     return _r;
    6650              :                                   }
    6651     67961593 : next_after_fail1478:;
    6652              :                                 }
    6653              :                           }
    6654              :                         }
    6655              :                     }
    6656              :                     break;
    6657              :                   }
    6658              :                 default:;
    6659              :                 }
    6660              :               break;
    6661              :             }
    6662              :           default:;
    6663              :           }
    6664              :         break;
    6665              :       }
    6666     67961593 :     default:;
    6667              :     }
    6668     67961593 : {
    6669     67961593 :   tree _p0_pops[1];
    6670     67961593 :   if (tree_nop_convert (_p0, _p0_pops))
    6671              :     {
    6672     23403336 :       tree _q20 = _p0_pops[0];
    6673     23403336 :       switch (TREE_CODE (_q20))
    6674              :         {
    6675            4 :         case BIT_IOR_EXPR:
    6676            4 :           {
    6677            4 :             tree _q30 = TREE_OPERAND (_q20, 0);
    6678            4 :             tree _q31 = TREE_OPERAND (_q20, 1);
    6679            4 :             switch (TREE_CODE (_q30))
    6680              :               {
    6681            4 :               case NEGATE_EXPR:
    6682            4 :                 {
    6683            4 :                   tree _q40 = TREE_OPERAND (_q30, 0);
    6684            4 :                   switch (TREE_CODE (_q40))
    6685              :                     {
    6686            0 :                     CASE_CONVERT:
    6687            0 :                       {
    6688            0 :                         tree _q50 = TREE_OPERAND (_q40, 0);
    6689            0 :                         switch (TREE_CODE (_q50))
    6690              :                           {
    6691            0 :                           case LT_EXPR:
    6692            0 :                             {
    6693            0 :                               tree _q60 = TREE_OPERAND (_q50, 0);
    6694            0 :                               tree _q61 = TREE_OPERAND (_q50, 1);
    6695            0 :                               if (integer_zerop (_q61))
    6696              :                                 {
    6697            0 :                                   if (integer_onep (_q31))
    6698              :                                     {
    6699            0 :                                       {
    6700            0 :                                         tree _p1_pops[1];
    6701            0 :                                         if (tree_nop_convert (_p1, _p1_pops))
    6702              :                                           {
    6703            0 :                                             tree _q100 = _p1_pops[0];
    6704            0 :                                             if ((_q100 == _q60 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q60, 0) && types_match (_q100, _q60)))
    6705              :                                               {
    6706            0 :                                                 {
    6707            0 :                                                   tree captures[1] ATTRIBUTE_UNUSED = { _q60 };
    6708            0 :                                                   tree res = generic_simplify_200 (loc, type, _p0, _p1, captures);
    6709            0 :                                                   if (res) return res;
    6710              :                                                 }
    6711              :                                               }
    6712              :                                           }
    6713              :                                       }
    6714            0 :                                       if ((_p1 == _q60 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q60, 0) && types_match (_p1, _q60)))
    6715              :                                         {
    6716            0 :                                           {
    6717            0 :                                             tree captures[1] ATTRIBUTE_UNUSED = { _q60 };
    6718            0 :                                             tree res = generic_simplify_200 (loc, type, _p0, _p1, captures);
    6719            0 :                                             if (res) return res;
    6720              :                                           }
    6721              :                                         }
    6722              :                                     }
    6723              :                                 }
    6724              :                               break;
    6725              :                             }
    6726              :                           default:;
    6727              :                           }
    6728              :                         break;
    6729              :                       }
    6730            4 :                     case LT_EXPR:
    6731            4 :                       {
    6732            4 :                         tree _q50 = TREE_OPERAND (_q40, 0);
    6733            4 :                         tree _q51 = TREE_OPERAND (_q40, 1);
    6734            4 :                         if (integer_zerop (_q51))
    6735              :                           {
    6736            4 :                             if (integer_onep (_q31))
    6737              :                               {
    6738            4 :                                 {
    6739            4 :                                   tree _p1_pops[1];
    6740            4 :                                   if (tree_nop_convert (_p1, _p1_pops))
    6741              :                                     {
    6742            4 :                                       tree _q90 = _p1_pops[0];
    6743            4 :                                       if ((_q90 == _q50 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q50, 0) && types_match (_q90, _q50)))
    6744              :                                         {
    6745            4 :                                           {
    6746            4 :                                             tree captures[1] ATTRIBUTE_UNUSED = { _q50 };
    6747            4 :                                             tree res = generic_simplify_200 (loc, type, _p0, _p1, captures);
    6748            4 :                                             if (res) return res;
    6749              :                                           }
    6750              :                                         }
    6751              :                                     }
    6752              :                                 }
    6753            0 :                                 if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50)))
    6754              :                                   {
    6755            0 :                                     {
    6756            0 :                                       tree captures[1] ATTRIBUTE_UNUSED = { _q50 };
    6757            0 :                                       tree res = generic_simplify_200 (loc, type, _p0, _p1, captures);
    6758            0 :                                       if (res) return res;
    6759              :                                     }
    6760              :                                   }
    6761              :                               }
    6762              :                           }
    6763              :                         break;
    6764              :                       }
    6765              :                     default:;
    6766              :                     }
    6767              :                   break;
    6768              :                 }
    6769            0 :               default:;
    6770              :               }
    6771            0 :           {
    6772            0 :             tree _q30_pops[1];
    6773            0 :             if (tree_nop_convert (_q30, _q30_pops))
    6774              :               {
    6775            0 :                 tree _q40 = _q30_pops[0];
    6776            0 :                 switch (TREE_CODE (_q40))
    6777              :                   {
    6778            0 :                   case NEGATE_EXPR:
    6779            0 :                     {
    6780            0 :                       tree _q50 = TREE_OPERAND (_q40, 0);
    6781            0 :                       switch (TREE_CODE (_q50))
    6782              :                         {
    6783            0 :                         CASE_CONVERT:
    6784            0 :                           {
    6785            0 :                             tree _q60 = TREE_OPERAND (_q50, 0);
    6786            0 :                             switch (TREE_CODE (_q60))
    6787              :                               {
    6788            0 :                               case LT_EXPR:
    6789            0 :                                 {
    6790            0 :                                   tree _q70 = TREE_OPERAND (_q60, 0);
    6791            0 :                                   tree _q71 = TREE_OPERAND (_q60, 1);
    6792            0 :                                   if (integer_zerop (_q71))
    6793              :                                     {
    6794            0 :                                       if (integer_onep (_q31))
    6795              :                                         {
    6796            0 :                                           {
    6797            0 :                                             tree _p1_pops[1];
    6798            0 :                                             if (tree_nop_convert (_p1, _p1_pops))
    6799              :                                               {
    6800            0 :                                                 tree _q110 = _p1_pops[0];
    6801            0 :                                                 if ((_q110 == _q70 && ! TREE_SIDE_EFFECTS (_q110)) || (operand_equal_p (_q110, _q70, 0) && types_match (_q110, _q70)))
    6802              :                                                   {
    6803            0 :                                                     {
    6804            0 :                                                       tree captures[1] ATTRIBUTE_UNUSED = { _q70 };
    6805            0 :                                                       tree res = generic_simplify_200 (loc, type, _p0, _p1, captures);
    6806            0 :                                                       if (res) return res;
    6807              :                                                     }
    6808              :                                                   }
    6809              :                                               }
    6810              :                                           }
    6811            0 :                                           if ((_p1 == _q70 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q70, 0) && types_match (_p1, _q70)))
    6812              :                                             {
    6813            0 :                                               {
    6814            0 :                                                 tree captures[1] ATTRIBUTE_UNUSED = { _q70 };
    6815            0 :                                                 tree res = generic_simplify_200 (loc, type, _p0, _p1, captures);
    6816            0 :                                                 if (res) return res;
    6817              :                                               }
    6818              :                                             }
    6819              :                                         }
    6820              :                                     }
    6821              :                                   break;
    6822              :                                 }
    6823              :                               default:;
    6824              :                               }
    6825              :                             break;
    6826              :                           }
    6827            0 :                         case LT_EXPR:
    6828            0 :                           {
    6829            0 :                             tree _q60 = TREE_OPERAND (_q50, 0);
    6830            0 :                             tree _q61 = TREE_OPERAND (_q50, 1);
    6831            0 :                             if (integer_zerop (_q61))
    6832              :                               {
    6833            0 :                                 if (integer_onep (_q31))
    6834              :                                   {
    6835            0 :                                     {
    6836            0 :                                       tree _p1_pops[1];
    6837            0 :                                       if (tree_nop_convert (_p1, _p1_pops))
    6838              :                                         {
    6839            0 :                                           tree _q100 = _p1_pops[0];
    6840            0 :                                           if ((_q100 == _q60 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q60, 0) && types_match (_q100, _q60)))
    6841              :                                             {
    6842            0 :                                               {
    6843            0 :                                                 tree captures[1] ATTRIBUTE_UNUSED = { _q60 };
    6844            0 :                                                 tree res = generic_simplify_200 (loc, type, _p0, _p1, captures);
    6845            0 :                                                 if (res) return res;
    6846              :                                               }
    6847              :                                             }
    6848              :                                         }
    6849              :                                     }
    6850            0 :                                     if ((_p1 == _q60 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q60, 0) && types_match (_p1, _q60)))
    6851              :                                       {
    6852            0 :                                         {
    6853            0 :                                           tree captures[1] ATTRIBUTE_UNUSED = { _q60 };
    6854            0 :                                           tree res = generic_simplify_200 (loc, type, _p0, _p1, captures);
    6855            0 :                                           if (res) return res;
    6856              :                                         }
    6857              :                                       }
    6858              :                                   }
    6859              :                               }
    6860              :                             break;
    6861              :                           }
    6862              :                         default:;
    6863              :                         }
    6864              :                       break;
    6865              :                     }
    6866              :                   default:;
    6867              :                   }
    6868              :               }
    6869              :           }
    6870            0 :             break;
    6871              :           }
    6872     23403332 :         default:;
    6873              :         }
    6874     23403332 :       switch (TREE_CODE (_p1))
    6875              :         {
    6876            0 :         case BIT_IOR_EXPR:
    6877            0 :           {
    6878            0 :             tree _q40 = TREE_OPERAND (_p1, 0);
    6879            0 :             tree _q41 = TREE_OPERAND (_p1, 1);
    6880            0 :             switch (TREE_CODE (_q40))
    6881              :               {
    6882            0 :               case NEGATE_EXPR:
    6883            0 :                 {
    6884            0 :                   tree _q50 = TREE_OPERAND (_q40, 0);
    6885            0 :                   switch (TREE_CODE (_q50))
    6886              :                     {
    6887            0 :                     CASE_CONVERT:
    6888            0 :                       {
    6889            0 :                         tree _q60 = TREE_OPERAND (_q50, 0);
    6890            0 :                         switch (TREE_CODE (_q60))
    6891              :                           {
    6892            0 :                           case LT_EXPR:
    6893            0 :                             {
    6894            0 :                               tree _q70 = TREE_OPERAND (_q60, 0);
    6895            0 :                               tree _q71 = TREE_OPERAND (_q60, 1);
    6896            0 :                               if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
    6897              :                                 {
    6898            0 :                                   if (integer_zerop (_q71))
    6899              :                                     {
    6900            0 :                                       if (integer_onep (_q41))
    6901              :                                         {
    6902            0 :                                           {
    6903            0 :                                             tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    6904            0 :                                             tree res = generic_simplify_201 (loc, type, _p0, _p1, captures);
    6905            0 :                                             if (res) return res;
    6906              :                                           }
    6907              :                                         }
    6908              :                                     }
    6909              :                                 }
    6910              :                               break;
    6911              :                             }
    6912              :                           default:;
    6913              :                           }
    6914              :                         break;
    6915              :                       }
    6916            0 :                     case LT_EXPR:
    6917            0 :                       {
    6918            0 :                         tree _q60 = TREE_OPERAND (_q50, 0);
    6919            0 :                         tree _q61 = TREE_OPERAND (_q50, 1);
    6920            0 :                         if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    6921              :                           {
    6922            0 :                             if (integer_zerop (_q61))
    6923              :                               {
    6924            0 :                                 if (integer_onep (_q41))
    6925              :                                   {
    6926            0 :                                     {
    6927            0 :                                       tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    6928            0 :                                       tree res = generic_simplify_201 (loc, type, _p0, _p1, captures);
    6929            0 :                                       if (res) return res;
    6930              :                                     }
    6931              :                                   }
    6932              :                               }
    6933              :                           }
    6934              :                         break;
    6935              :                       }
    6936              :                     default:;
    6937              :                     }
    6938              :                   break;
    6939              :                 }
    6940            0 :               default:;
    6941              :               }
    6942            0 :           {
    6943            0 :             tree _q40_pops[1];
    6944            0 :             if (tree_nop_convert (_q40, _q40_pops))
    6945              :               {
    6946            0 :                 tree _q50 = _q40_pops[0];
    6947            0 :                 switch (TREE_CODE (_q50))
    6948              :                   {
    6949            0 :                   case NEGATE_EXPR:
    6950            0 :                     {
    6951            0 :                       tree _q60 = TREE_OPERAND (_q50, 0);
    6952            0 :                       switch (TREE_CODE (_q60))
    6953              :                         {
    6954            0 :                         CASE_CONVERT:
    6955            0 :                           {
    6956            0 :                             tree _q70 = TREE_OPERAND (_q60, 0);
    6957            0 :                             switch (TREE_CODE (_q70))
    6958              :                               {
    6959            0 :                               case LT_EXPR:
    6960            0 :                                 {
    6961            0 :                                   tree _q80 = TREE_OPERAND (_q70, 0);
    6962            0 :                                   tree _q81 = TREE_OPERAND (_q70, 1);
    6963            0 :                                   if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
    6964              :                                     {
    6965            0 :                                       if (integer_zerop (_q81))
    6966              :                                         {
    6967            0 :                                           if (integer_onep (_q41))
    6968              :                                             {
    6969            0 :                                               {
    6970            0 :                                                 tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    6971            0 :                                                 tree res = generic_simplify_201 (loc, type, _p0, _p1, captures);
    6972            0 :                                                 if (res) return res;
    6973              :                                               }
    6974              :                                             }
    6975              :                                         }
    6976              :                                     }
    6977              :                                   break;
    6978              :                                 }
    6979              :                               default:;
    6980              :                               }
    6981              :                             break;
    6982              :                           }
    6983            0 :                         case LT_EXPR:
    6984            0 :                           {
    6985            0 :                             tree _q70 = TREE_OPERAND (_q60, 0);
    6986            0 :                             tree _q71 = TREE_OPERAND (_q60, 1);
    6987            0 :                             if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
    6988              :                               {
    6989            0 :                                 if (integer_zerop (_q71))
    6990              :                                   {
    6991            0 :                                     if (integer_onep (_q41))
    6992              :                                       {
    6993            0 :                                         {
    6994            0 :                                           tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    6995            0 :                                           tree res = generic_simplify_201 (loc, type, _p0, _p1, captures);
    6996            0 :                                           if (res) return res;
    6997              :                                         }
    6998              :                                       }
    6999              :                                   }
    7000              :                               }
    7001              :                             break;
    7002              :                           }
    7003              :                         default:;
    7004              :                         }
    7005              :                       break;
    7006              :                     }
    7007              :                   default:;
    7008              :                   }
    7009              :               }
    7010              :           }
    7011            0 :             break;
    7012              :           }
    7013     23403332 :         default:;
    7014              :         }
    7015     23403332 :     {
    7016     23403332 :       tree _p1_pops[1];
    7017     23403332 :       if (tree_nop_convert (_p1, _p1_pops))
    7018              :         {
    7019      2514572 :           tree _q40 = _p1_pops[0];
    7020      2514572 :           switch (TREE_CODE (_q40))
    7021              :             {
    7022            0 :             case BIT_IOR_EXPR:
    7023            0 :               {
    7024            0 :                 tree _q50 = TREE_OPERAND (_q40, 0);
    7025            0 :                 tree _q51 = TREE_OPERAND (_q40, 1);
    7026            0 :                 switch (TREE_CODE (_q50))
    7027              :                   {
    7028            0 :                   case NEGATE_EXPR:
    7029            0 :                     {
    7030            0 :                       tree _q60 = TREE_OPERAND (_q50, 0);
    7031            0 :                       switch (TREE_CODE (_q60))
    7032              :                         {
    7033            0 :                         CASE_CONVERT:
    7034            0 :                           {
    7035            0 :                             tree _q70 = TREE_OPERAND (_q60, 0);
    7036            0 :                             switch (TREE_CODE (_q70))
    7037              :                               {
    7038            0 :                               case LT_EXPR:
    7039            0 :                                 {
    7040            0 :                                   tree _q80 = TREE_OPERAND (_q70, 0);
    7041            0 :                                   tree _q81 = TREE_OPERAND (_q70, 1);
    7042            0 :                                   if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
    7043              :                                     {
    7044            0 :                                       if (integer_zerop (_q81))
    7045              :                                         {
    7046            0 :                                           if (integer_onep (_q51))
    7047              :                                             {
    7048            0 :                                               {
    7049            0 :                                                 tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    7050            0 :                                                 tree res = generic_simplify_201 (loc, type, _p0, _p1, captures);
    7051            0 :                                                 if (res) return res;
    7052              :                                               }
    7053              :                                             }
    7054              :                                         }
    7055              :                                     }
    7056              :                                   break;
    7057              :                                 }
    7058              :                               default:;
    7059              :                               }
    7060              :                             break;
    7061              :                           }
    7062            0 :                         case LT_EXPR:
    7063            0 :                           {
    7064            0 :                             tree _q70 = TREE_OPERAND (_q60, 0);
    7065            0 :                             tree _q71 = TREE_OPERAND (_q60, 1);
    7066            0 :                             if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
    7067              :                               {
    7068            0 :                                 if (integer_zerop (_q71))
    7069              :                                   {
    7070            0 :                                     if (integer_onep (_q51))
    7071              :                                       {
    7072            0 :                                         {
    7073            0 :                                           tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    7074            0 :                                           tree res = generic_simplify_201 (loc, type, _p0, _p1, captures);
    7075            0 :                                           if (res) return res;
    7076              :                                         }
    7077              :                                       }
    7078              :                                   }
    7079              :                               }
    7080              :                             break;
    7081              :                           }
    7082              :                         default:;
    7083              :                         }
    7084              :                       break;
    7085              :                     }
    7086            0 :                   default:;
    7087              :                   }
    7088            0 :               {
    7089            0 :                 tree _q50_pops[1];
    7090            0 :                 if (tree_nop_convert (_q50, _q50_pops))
    7091              :                   {
    7092            0 :                     tree _q60 = _q50_pops[0];
    7093            0 :                     switch (TREE_CODE (_q60))
    7094              :                       {
    7095            0 :                       case NEGATE_EXPR:
    7096            0 :                         {
    7097            0 :                           tree _q70 = TREE_OPERAND (_q60, 0);
    7098            0 :                           switch (TREE_CODE (_q70))
    7099              :                             {
    7100            0 :                             CASE_CONVERT:
    7101            0 :                               {
    7102            0 :                                 tree _q80 = TREE_OPERAND (_q70, 0);
    7103            0 :                                 switch (TREE_CODE (_q80))
    7104              :                                   {
    7105            0 :                                   case LT_EXPR:
    7106            0 :                                     {
    7107            0 :                                       tree _q90 = TREE_OPERAND (_q80, 0);
    7108            0 :                                       tree _q91 = TREE_OPERAND (_q80, 1);
    7109            0 :                                       if ((_q90 == _q20 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q20, 0) && types_match (_q90, _q20)))
    7110              :                                         {
    7111            0 :                                           if (integer_zerop (_q91))
    7112              :                                             {
    7113            0 :                                               if (integer_onep (_q51))
    7114              :                                                 {
    7115            0 :                                                   {
    7116            0 :                                                     tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    7117            0 :                                                     tree res = generic_simplify_201 (loc, type, _p0, _p1, captures);
    7118            0 :                                                     if (res) return res;
    7119              :                                                   }
    7120              :                                                 }
    7121              :                                             }
    7122              :                                         }
    7123              :                                       break;
    7124              :                                     }
    7125              :                                   default:;
    7126              :                                   }
    7127              :                                 break;
    7128              :                               }
    7129            0 :                             case LT_EXPR:
    7130            0 :                               {
    7131            0 :                                 tree _q80 = TREE_OPERAND (_q70, 0);
    7132            0 :                                 tree _q81 = TREE_OPERAND (_q70, 1);
    7133            0 :                                 if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
    7134              :                                   {
    7135            0 :                                     if (integer_zerop (_q81))
    7136              :                                       {
    7137            0 :                                         if (integer_onep (_q51))
    7138              :                                           {
    7139            0 :                                             {
    7140            0 :                                               tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    7141            0 :                                               tree res = generic_simplify_201 (loc, type, _p0, _p1, captures);
    7142            0 :                                               if (res) return res;
    7143              :                                             }
    7144              :                                           }
    7145              :                                       }
    7146              :                                   }
    7147              :                                 break;
    7148              :                               }
    7149              :                             default:;
    7150              :                             }
    7151              :                           break;
    7152              :                         }
    7153              :                       default:;
    7154              :                       }
    7155              :                   }
    7156              :               }
    7157            0 :                 break;
    7158              :               }
    7159              :             default:;
    7160              :             }
    7161              :         }
    7162              :     }
    7163              :     }
    7164              : }
    7165     67961589 :   {
    7166     67961589 :     tree _p1_pops[1];
    7167     67961589 :     if (tree_nop_convert (_p1, _p1_pops))
    7168              :       {
    7169      7329483 :         tree _q30 = _p1_pops[0];
    7170      7329483 :         switch (TREE_CODE (_q30))
    7171              :           {
    7172            0 :           case BIT_IOR_EXPR:
    7173            0 :             {
    7174            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    7175            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    7176            0 :               switch (TREE_CODE (_q40))
    7177              :                 {
    7178            0 :                 case NEGATE_EXPR:
    7179            0 :                   {
    7180            0 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    7181            0 :                     switch (TREE_CODE (_q50))
    7182              :                       {
    7183            0 :                       CASE_CONVERT:
    7184            0 :                         {
    7185            0 :                           tree _q60 = TREE_OPERAND (_q50, 0);
    7186            0 :                           switch (TREE_CODE (_q60))
    7187              :                             {
    7188            0 :                             case LT_EXPR:
    7189            0 :                               {
    7190            0 :                                 tree _q70 = TREE_OPERAND (_q60, 0);
    7191            0 :                                 tree _q71 = TREE_OPERAND (_q60, 1);
    7192            0 :                                 if ((_q70 == _p0 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p0, 0) && types_match (_q70, _p0)))
    7193              :                                   {
    7194            0 :                                     if (integer_zerop (_q71))
    7195              :                                       {
    7196            0 :                                         if (integer_onep (_q41))
    7197              :                                           {
    7198            0 :                                             {
    7199            0 :                                               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    7200            0 :                                               tree res = generic_simplify_201 (loc, type, _p0, _p1, captures);
    7201            0 :                                               if (res) return res;
    7202              :                                             }
    7203              :                                           }
    7204              :                                       }
    7205              :                                   }
    7206              :                                 break;
    7207              :                               }
    7208              :                             default:;
    7209              :                             }
    7210              :                           break;
    7211              :                         }
    7212              :                       default:;
    7213              :                       }
    7214              :                     break;
    7215              :                   }
    7216            0 :                 default:;
    7217              :                 }
    7218            0 :             {
    7219            0 :               tree _q40_pops[1];
    7220            0 :               if (tree_nop_convert (_q40, _q40_pops))
    7221              :                 {
    7222            0 :                   tree _q50 = _q40_pops[0];
    7223            0 :                   switch (TREE_CODE (_q50))
    7224              :                     {
    7225            0 :                     case NEGATE_EXPR:
    7226            0 :                       {
    7227            0 :                         tree _q60 = TREE_OPERAND (_q50, 0);
    7228            0 :                         switch (TREE_CODE (_q60))
    7229              :                           {
    7230            0 :                           CASE_CONVERT:
    7231            0 :                             {
    7232            0 :                               tree _q70 = TREE_OPERAND (_q60, 0);
    7233            0 :                               switch (TREE_CODE (_q70))
    7234              :                                 {
    7235            0 :                                 case LT_EXPR:
    7236            0 :                                   {
    7237            0 :                                     tree _q80 = TREE_OPERAND (_q70, 0);
    7238            0 :                                     tree _q81 = TREE_OPERAND (_q70, 1);
    7239            0 :                                     if ((_q80 == _p0 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _p0, 0) && types_match (_q80, _p0)))
    7240              :                                       {
    7241            0 :                                         if (integer_zerop (_q81))
    7242              :                                           {
    7243            0 :                                             if (integer_onep (_q41))
    7244              :                                               {
    7245            0 :                                                 {
    7246            0 :                                                   tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    7247            0 :                                                   tree res = generic_simplify_201 (loc, type, _p0, _p1, captures);
    7248            0 :                                                   if (res) return res;
    7249              :                                                 }
    7250              :                                               }
    7251              :                                           }
    7252              :                                       }
    7253              :                                     break;
    7254              :                                   }
    7255              :                                 default:;
    7256              :                                 }
    7257              :                               break;
    7258              :                             }
    7259              :                           default:;
    7260              :                           }
    7261              :                         break;
    7262              :                       }
    7263              :                     default:;
    7264              :                     }
    7265              :                 }
    7266              :             }
    7267            0 :               break;
    7268              :             }
    7269              :           default:;
    7270              :           }
    7271              :       }
    7272              :   }
    7273     67961589 :   switch (TREE_CODE (_p0))
    7274              :     {
    7275          299 :     case BIT_IOR_EXPR:
    7276          299 :       {
    7277          299 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7278          299 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7279          299 :         switch (TREE_CODE (_q20))
    7280              :           {
    7281            1 :           case NEGATE_EXPR:
    7282            1 :             {
    7283            1 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7284            1 :               switch (TREE_CODE (_q30))
    7285              :                 {
    7286            0 :                 CASE_CONVERT:
    7287            0 :                   {
    7288            0 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    7289            0 :                     switch (TREE_CODE (_q40))
    7290              :                       {
    7291            0 :                       case LT_EXPR:
    7292            0 :                         {
    7293            0 :                           tree _q50 = TREE_OPERAND (_q40, 0);
    7294            0 :                           tree _q51 = TREE_OPERAND (_q40, 1);
    7295            0 :                           if (integer_zerop (_q51))
    7296              :                             {
    7297            0 :                               if (integer_onep (_q21))
    7298              :                                 {
    7299            0 :                                   {
    7300            0 :                                     tree _p1_pops[1];
    7301            0 :                                     if (tree_nop_convert (_p1, _p1_pops))
    7302              :                                       {
    7303            0 :                                         tree _q90 = _p1_pops[0];
    7304            0 :                                         if ((_q90 == _q50 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q50, 0) && types_match (_q90, _q50)))
    7305              :                                           {
    7306            0 :                                             {
    7307            0 :                                               tree captures[1] ATTRIBUTE_UNUSED = { _q50 };
    7308            0 :                                               tree res = generic_simplify_200 (loc, type, _p0, _p1, captures);
    7309            0 :                                               if (res) return res;
    7310              :                                             }
    7311              :                                           }
    7312              :                                       }
    7313              :                                   }
    7314            0 :                                   if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50)))
    7315              :                                     {
    7316            0 :                                       {
    7317            0 :                                         tree captures[1] ATTRIBUTE_UNUSED = { _q50 };
    7318            0 :                                         tree res = generic_simplify_200 (loc, type, _p0, _p1, captures);
    7319            0 :                                         if (res) return res;
    7320              :                                       }
    7321              :                                     }
    7322              :                                 }
    7323              :                             }
    7324              :                           break;
    7325              :                         }
    7326              :                       default:;
    7327              :                       }
    7328              :                     break;
    7329              :                   }
    7330            1 :                 case LT_EXPR:
    7331            1 :                   {
    7332            1 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    7333            1 :                     tree _q41 = TREE_OPERAND (_q30, 1);
    7334            1 :                     if (integer_zerop (_q41))
    7335              :                       {
    7336            1 :                         if (integer_onep (_q21))
    7337              :                           {
    7338            1 :                             {
    7339            1 :                               tree _p1_pops[1];
    7340            1 :                               if (tree_nop_convert (_p1, _p1_pops))
    7341              :                                 {
    7342            0 :                                   tree _q80 = _p1_pops[0];
    7343            0 :                                   if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
    7344              :                                     {
    7345            0 :                                       {
    7346            0 :                                         tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
    7347            0 :                                         tree res = generic_simplify_200 (loc, type, _p0, _p1, captures);
    7348            0 :                                         if (res) return res;
    7349              :                                       }
    7350              :                                     }
    7351              :                                 }
    7352              :                             }
    7353            1 :                             if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    7354              :                               {
    7355            1 :                                 {
    7356            1 :                                   tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
    7357            1 :                                   tree res = generic_simplify_200 (loc, type, _p0, _p1, captures);
    7358            1 :                                   if (res) return res;
    7359              :                                 }
    7360              :                               }
    7361              :                           }
    7362              :                       }
    7363              :                     break;
    7364              :                   }
    7365              :                 default:;
    7366              :                 }
    7367              :               break;
    7368              :             }
    7369          298 :           default:;
    7370              :           }
    7371          298 :       {
    7372          298 :         tree _q20_pops[1];
    7373          298 :         if (tree_nop_convert (_q20, _q20_pops))
    7374              :           {
    7375            1 :             tree _q30 = _q20_pops[0];
    7376            1 :             switch (TREE_CODE (_q30))
    7377              :               {
    7378            1 :               case NEGATE_EXPR:
    7379            1 :                 {
    7380            1 :                   tree _q40 = TREE_OPERAND (_q30, 0);
    7381            1 :                   switch (TREE_CODE (_q40))
    7382              :                     {
    7383            0 :                     CASE_CONVERT:
    7384            0 :                       {
    7385            0 :                         tree _q50 = TREE_OPERAND (_q40, 0);
    7386            0 :                         switch (TREE_CODE (_q50))
    7387              :                           {
    7388            0 :                           case LT_EXPR:
    7389            0 :                             {
    7390            0 :                               tree _q60 = TREE_OPERAND (_q50, 0);
    7391            0 :                               tree _q61 = TREE_OPERAND (_q50, 1);
    7392            0 :                               if (integer_zerop (_q61))
    7393              :                                 {
    7394            0 :                                   if (integer_onep (_q21))
    7395              :                                     {
    7396            0 :                                       {
    7397            0 :                                         tree _p1_pops[1];
    7398            0 :                                         if (tree_nop_convert (_p1, _p1_pops))
    7399              :                                           {
    7400            0 :                                             tree _q100 = _p1_pops[0];
    7401            0 :                                             if ((_q100 == _q60 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q60, 0) && types_match (_q100, _q60)))
    7402              :                                               {
    7403            0 :                                                 {
    7404            0 :                                                   tree captures[1] ATTRIBUTE_UNUSED = { _q60 };
    7405            0 :                                                   tree res = generic_simplify_200 (loc, type, _p0, _p1, captures);
    7406            0 :                                                   if (res) return res;
    7407              :                                                 }
    7408              :                                               }
    7409              :                                           }
    7410              :                                       }
    7411            0 :                                       if ((_p1 == _q60 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q60, 0) && types_match (_p1, _q60)))
    7412              :                                         {
    7413            0 :                                           {
    7414            0 :                                             tree captures[1] ATTRIBUTE_UNUSED = { _q60 };
    7415            0 :                                             tree res = generic_simplify_200 (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            1 :                     case LT_EXPR:
    7428            1 :                       {
    7429            1 :                         tree _q50 = TREE_OPERAND (_q40, 0);
    7430            1 :                         tree _q51 = TREE_OPERAND (_q40, 1);
    7431            1 :                         if (integer_zerop (_q51))
    7432              :                           {
    7433            1 :                             if (integer_onep (_q21))
    7434              :                               {
    7435            1 :                                 {
    7436            1 :                                   tree _p1_pops[1];
    7437            1 :                                   if (tree_nop_convert (_p1, _p1_pops))
    7438              :                                     {
    7439            1 :                                       tree _q90 = _p1_pops[0];
    7440            1 :                                       if ((_q90 == _q50 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q50, 0) && types_match (_q90, _q50)))
    7441              :                                         {
    7442            1 :                                           {
    7443            1 :                                             tree captures[1] ATTRIBUTE_UNUSED = { _q50 };
    7444            1 :                                             tree res = generic_simplify_200 (loc, type, _p0, _p1, captures);
    7445            1 :                                             if (res) return res;
    7446              :                                           }
    7447              :                                         }
    7448              :                                     }
    7449              :                                 }
    7450            0 :                                 if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50)))
    7451              :                                   {
    7452            0 :                                     {
    7453            0 :                                       tree captures[1] ATTRIBUTE_UNUSED = { _q50 };
    7454            0 :                                       tree res = generic_simplify_200 (loc, type, _p0, _p1, captures);
    7455            0 :                                       if (res) return res;
    7456              :                                     }
    7457              :                                   }
    7458              :                               }
    7459              :                           }
    7460              :                         break;
    7461              :                       }
    7462              :                     default:;
    7463              :                     }
    7464              :                   break;
    7465              :                 }
    7466              :               default:;
    7467              :               }
    7468              :           }
    7469              :       }
    7470          297 :         break;
    7471              :       }
    7472     67961587 :     default:;
    7473              :     }
    7474     67961587 :   switch (TREE_CODE (_p1))
    7475              :     {
    7476            1 :     case BIT_IOR_EXPR:
    7477            1 :       {
    7478            1 :         tree _q30 = TREE_OPERAND (_p1, 0);
    7479            1 :         tree _q31 = TREE_OPERAND (_p1, 1);
    7480            1 :         switch (TREE_CODE (_q30))
    7481              :           {
    7482            0 :           case NEGATE_EXPR:
    7483            0 :             {
    7484            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    7485            0 :               switch (TREE_CODE (_q40))
    7486              :                 {
    7487            0 :                 CASE_CONVERT:
    7488            0 :                   {
    7489            0 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    7490            0 :                     switch (TREE_CODE (_q50))
    7491              :                       {
    7492            0 :                       case LT_EXPR:
    7493            0 :                         {
    7494            0 :                           tree _q60 = TREE_OPERAND (_q50, 0);
    7495            0 :                           tree _q61 = TREE_OPERAND (_q50, 1);
    7496            0 :                           if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
    7497              :                             {
    7498            0 :                               if (integer_zerop (_q61))
    7499              :                                 {
    7500            0 :                                   if (integer_onep (_q31))
    7501              :                                     {
    7502            0 :                                       {
    7503            0 :                                         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    7504            0 :                                         tree res = generic_simplify_201 (loc, type, _p0, _p1, captures);
    7505            0 :                                         if (res) return res;
    7506              :                                       }
    7507              :                                     }
    7508              :                                 }
    7509              :                             }
    7510              :                           break;
    7511              :                         }
    7512              :                       default:;
    7513              :                       }
    7514              :                     break;
    7515              :                   }
    7516            0 :                 case LT_EXPR:
    7517            0 :                   {
    7518            0 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    7519            0 :                     tree _q51 = TREE_OPERAND (_q40, 1);
    7520            0 :                     if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    7521              :                       {
    7522            0 :                         if (integer_zerop (_q51))
    7523              :                           {
    7524            0 :                             if (integer_onep (_q31))
    7525              :                               {
    7526            0 :                                 {
    7527            0 :                                   tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    7528            0 :                                   tree res = generic_simplify_201 (loc, type, _p0, _p1, captures);
    7529            0 :                                   if (res) return res;
    7530              :                                 }
    7531              :                               }
    7532              :                           }
    7533              :                       }
    7534              :                     break;
    7535              :                   }
    7536              :                 default:;
    7537              :                 }
    7538              :               break;
    7539              :             }
    7540            1 :           default:;
    7541              :           }
    7542            1 :       {
    7543            1 :         tree _q30_pops[1];
    7544            1 :         if (tree_nop_convert (_q30, _q30_pops))
    7545              :           {
    7546            0 :             tree _q40 = _q30_pops[0];
    7547            0 :             switch (TREE_CODE (_q40))
    7548              :               {
    7549            0 :               case NEGATE_EXPR:
    7550            0 :                 {
    7551            0 :                   tree _q50 = TREE_OPERAND (_q40, 0);
    7552            0 :                   switch (TREE_CODE (_q50))
    7553              :                     {
    7554            0 :                     CASE_CONVERT:
    7555            0 :                       {
    7556            0 :                         tree _q60 = TREE_OPERAND (_q50, 0);
    7557            0 :                         switch (TREE_CODE (_q60))
    7558              :                           {
    7559            0 :                           case LT_EXPR:
    7560            0 :                             {
    7561            0 :                               tree _q70 = TREE_OPERAND (_q60, 0);
    7562            0 :                               tree _q71 = TREE_OPERAND (_q60, 1);
    7563            0 :                               if ((_q70 == _p0 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p0, 0) && types_match (_q70, _p0)))
    7564              :                                 {
    7565            0 :                                   if (integer_zerop (_q71))
    7566              :                                     {
    7567            0 :                                       if (integer_onep (_q31))
    7568              :                                         {
    7569            0 :                                           {
    7570            0 :                                             tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    7571            0 :                                             tree res = generic_simplify_201 (loc, type, _p0, _p1, captures);
    7572            0 :                                             if (res) return res;
    7573              :                                           }
    7574              :                                         }
    7575              :                                     }
    7576              :                                 }
    7577              :                               break;
    7578              :                             }
    7579              :                           default:;
    7580              :                           }
    7581              :                         break;
    7582              :                       }
    7583            0 :                     case LT_EXPR:
    7584            0 :                       {
    7585            0 :                         tree _q60 = TREE_OPERAND (_q50, 0);
    7586            0 :                         tree _q61 = TREE_OPERAND (_q50, 1);
    7587            0 :                         if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
    7588              :                           {
    7589            0 :                             if (integer_zerop (_q61))
    7590              :                               {
    7591            0 :                                 if (integer_onep (_q31))
    7592              :                                   {
    7593            0 :                                     {
    7594            0 :                                       tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    7595            0 :                                       tree res = generic_simplify_201 (loc, type, _p0, _p1, captures);
    7596            0 :                                       if (res) return res;
    7597              :                                     }
    7598              :                                   }
    7599              :                               }
    7600              :                           }
    7601              :                         break;
    7602              :                       }
    7603              :                     default:;
    7604              :                     }
    7605              :                   break;
    7606              :                 }
    7607              :               default:;
    7608              :               }
    7609              :           }
    7610              :       }
    7611            1 :         break;
    7612              :       }
    7613     67961587 :     default:;
    7614              :     }
    7615     67961587 : {
    7616     67961587 :   tree _p1_pops[1];
    7617     67961587 :   if (tree_nop_convert (_p1, _p1_pops))
    7618              :     {
    7619      7329482 :       tree _q30 = _p1_pops[0];
    7620      7329482 :       switch (TREE_CODE (_q30))
    7621              :         {
    7622            0 :         case BIT_IOR_EXPR:
    7623            0 :           {
    7624            0 :             tree _q40 = TREE_OPERAND (_q30, 0);
    7625            0 :             tree _q41 = TREE_OPERAND (_q30, 1);
    7626            0 :             switch (TREE_CODE (_q40))
    7627              :               {
    7628            0 :               case NEGATE_EXPR:
    7629            0 :                 {
    7630            0 :                   tree _q50 = TREE_OPERAND (_q40, 0);
    7631            0 :                   switch (TREE_CODE (_q50))
    7632              :                     {
    7633            0 :                     case LT_EXPR:
    7634            0 :                       {
    7635            0 :                         tree _q60 = TREE_OPERAND (_q50, 0);
    7636            0 :                         tree _q61 = TREE_OPERAND (_q50, 1);
    7637            0 :                         if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
    7638              :                           {
    7639            0 :                             if (integer_zerop (_q61))
    7640              :                               {
    7641            0 :                                 if (integer_onep (_q41))
    7642              :                                   {
    7643            0 :                                     {
    7644            0 :                                       tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    7645            0 :                                       tree res = generic_simplify_201 (loc, type, _p0, _p1, captures);
    7646            0 :                                       if (res) return res;
    7647              :                                     }
    7648              :                                   }
    7649              :                               }
    7650              :                           }
    7651              :                         break;
    7652              :                       }
    7653              :                     default:;
    7654              :                     }
    7655              :                   break;
    7656              :                 }
    7657            0 :               default:;
    7658              :               }
    7659            0 :           {
    7660            0 :             tree _q40_pops[1];
    7661            0 :             if (tree_nop_convert (_q40, _q40_pops))
    7662              :               {
    7663            0 :                 tree _q50 = _q40_pops[0];
    7664            0 :                 switch (TREE_CODE (_q50))
    7665              :                   {
    7666            0 :                   case NEGATE_EXPR:
    7667            0 :                     {
    7668            0 :                       tree _q60 = TREE_OPERAND (_q50, 0);
    7669            0 :                       switch (TREE_CODE (_q60))
    7670              :                         {
    7671            0 :                         case LT_EXPR:
    7672            0 :                           {
    7673            0 :                             tree _q70 = TREE_OPERAND (_q60, 0);
    7674            0 :                             tree _q71 = TREE_OPERAND (_q60, 1);
    7675            0 :                             if ((_q70 == _p0 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p0, 0) && types_match (_q70, _p0)))
    7676              :                               {
    7677            0 :                                 if (integer_zerop (_q71))
    7678              :                                   {
    7679            0 :                                     if (integer_onep (_q41))
    7680              :                                       {
    7681            0 :                                         {
    7682            0 :                                           tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    7683            0 :                                           tree res = generic_simplify_201 (loc, type, _p0, _p1, captures);
    7684            0 :                                           if (res) return res;
    7685              :                                         }
    7686              :                                       }
    7687              :                                   }
    7688              :                               }
    7689              :                             break;
    7690              :                           }
    7691              :                         default:;
    7692              :                         }
    7693              :                       break;
    7694              :                     }
    7695              :                   default:;
    7696              :                   }
    7697              :               }
    7698              :           }
    7699            0 :             break;
    7700              :           }
    7701              :         default:;
    7702              :         }
    7703              :     }
    7704              : }
    7705     67961587 :   switch (TREE_CODE (_p0))
    7706              :     {
    7707     32235673 :     CASE_CONVERT:
    7708     32235673 :       {
    7709     32235673 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7710     32235673 :         switch (TREE_CODE (_q20))
    7711              :           {
    7712         3949 :           case NEGATE_EXPR:
    7713         3949 :             {
    7714         3949 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7715         3949 :               switch (TREE_CODE (_p1))
    7716              :                 {
    7717          153 :                 CASE_CONVERT:
    7718          153 :                   {
    7719          153 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    7720          153 :                     if (tree_negate_expr_p (_q50))
    7721              :                       {
    7722            0 :                         {
    7723            0 :                           tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q50 };
    7724            0 :                           tree res = generic_simplify_202 (loc, type, _p0, _p1, captures);
    7725            0 :                           if (res) return res;
    7726              :                         }
    7727              :                       }
    7728              :                     break;
    7729              :                   }
    7730         3949 :                 default:;
    7731              :                 }
    7732         3949 :             if (tree_negate_expr_p (_p1))
    7733              :               {
    7734         3518 :                 {
    7735         3518 :                   tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p1 };
    7736         3518 :                   tree res = generic_simplify_202 (loc, type, _p0, _p1, captures);
    7737         3518 :                   if (res) return res;
    7738              :                 }
    7739              :               }
    7740              :               break;
    7741              :             }
    7742            4 :           case LT_EXPR:
    7743            4 :             {
    7744            4 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7745            4 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7746            4 :               {
    7747            4 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1 };
    7748            4 :                 tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, LT_EXPR);
    7749            4 :                 if (res) return res;
    7750              :               }
    7751            4 :               break;
    7752              :             }
    7753            6 :           case LE_EXPR:
    7754            6 :             {
    7755            6 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7756            6 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7757            6 :               {
    7758            6 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1 };
    7759            6 :                 tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, LE_EXPR);
    7760            6 :                 if (res) return res;
    7761              :               }
    7762            6 :               break;
    7763              :             }
    7764            1 :           case EQ_EXPR:
    7765            1 :             {
    7766            1 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7767            1 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7768            1 :               {
    7769            1 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1 };
    7770            1 :                 tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, EQ_EXPR);
    7771            1 :                 if (res) return res;
    7772              :               }
    7773            1 :               break;
    7774              :             }
    7775         1157 :           case NE_EXPR:
    7776         1157 :             {
    7777         1157 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7778         1157 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7779         1157 :               {
    7780         1157 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1 };
    7781         1157 :                 tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, NE_EXPR);
    7782         1157 :                 if (res) return res;
    7783              :               }
    7784         1157 :               break;
    7785              :             }
    7786           19 :           case GE_EXPR:
    7787           19 :             {
    7788           19 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7789           19 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7790           19 :               {
    7791           19 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1 };
    7792           19 :                 tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, GE_EXPR);
    7793           19 :                 if (res) return res;
    7794              :               }
    7795           19 :               break;
    7796              :             }
    7797           19 :           case GT_EXPR:
    7798           19 :             {
    7799           19 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7800           19 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7801           19 :               {
    7802           19 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1 };
    7803           19 :                 tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, GT_EXPR);
    7804           19 :                 if (res) return res;
    7805              :               }
    7806           19 :               break;
    7807              :             }
    7808            0 :           case UNORDERED_EXPR:
    7809            0 :             {
    7810            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7811            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7812            0 :               {
    7813            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1 };
    7814            0 :                 tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, UNORDERED_EXPR);
    7815            0 :                 if (res) return res;
    7816              :               }
    7817            0 :               break;
    7818              :             }
    7819            0 :           case ORDERED_EXPR:
    7820            0 :             {
    7821            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7822            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7823            0 :               {
    7824            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1 };
    7825            0 :                 tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, ORDERED_EXPR);
    7826            0 :                 if (res) return res;
    7827              :               }
    7828            0 :               break;
    7829              :             }
    7830            0 :           case UNLT_EXPR:
    7831            0 :             {
    7832            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7833            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7834            0 :               {
    7835            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1 };
    7836            0 :                 tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, UNLT_EXPR);
    7837            0 :                 if (res) return res;
    7838              :               }
    7839            0 :               break;
    7840              :             }
    7841            0 :           case UNLE_EXPR:
    7842            0 :             {
    7843            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7844            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7845            0 :               {
    7846            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1 };
    7847            0 :                 tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, UNLE_EXPR);
    7848            0 :                 if (res) return res;
    7849              :               }
    7850            0 :               break;
    7851              :             }
    7852            0 :           case UNGT_EXPR:
    7853            0 :             {
    7854            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7855            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7856            0 :               {
    7857            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1 };
    7858            0 :                 tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, UNGT_EXPR);
    7859            0 :                 if (res) return res;
    7860              :               }
    7861            0 :               break;
    7862              :             }
    7863            0 :           case UNGE_EXPR:
    7864            0 :             {
    7865            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7866            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7867            0 :               {
    7868            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1 };
    7869            0 :                 tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, UNGE_EXPR);
    7870            0 :                 if (res) return res;
    7871              :               }
    7872            0 :               break;
    7873              :             }
    7874            0 :           case UNEQ_EXPR:
    7875            0 :             {
    7876            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7877            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7878            0 :               {
    7879            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1 };
    7880            0 :                 tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, UNEQ_EXPR);
    7881            0 :                 if (res) return res;
    7882              :               }
    7883            0 :               break;
    7884              :             }
    7885            0 :           case LTGT_EXPR:
    7886            0 :             {
    7887            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7888            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7889            0 :               {
    7890            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1 };
    7891            0 :                 tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, LTGT_EXPR);
    7892            0 :                 if (res) return res;
    7893              :               }
    7894            0 :               break;
    7895              :             }
    7896     32234904 :           default:;
    7897              :           }
    7898     32234904 :       if (tree_negate_expr_p (_q20))
    7899              :         {
    7900        20140 :           switch (TREE_CODE (_p1))
    7901              :             {
    7902         2136 :             CASE_CONVERT:
    7903         2136 :               {
    7904         2136 :                 tree _q40 = TREE_OPERAND (_p1, 0);
    7905         2136 :                 switch (TREE_CODE (_q40))
    7906              :                   {
    7907            0 :                   case NEGATE_EXPR:
    7908            0 :                     {
    7909            0 :                       tree _q50 = TREE_OPERAND (_q40, 0);
    7910            0 :                       {
    7911            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q20 };
    7912            0 :                         tree res = generic_simplify_202 (loc, type, _p0, _p1, captures);
    7913            0 :                         if (res) return res;
    7914              :                       }
    7915            0 :                       break;
    7916              :                     }
    7917              :                   default:;
    7918              :                   }
    7919              :                 break;
    7920              :               }
    7921            6 :             case NEGATE_EXPR:
    7922            6 :               {
    7923            6 :                 tree _q40 = TREE_OPERAND (_p1, 0);
    7924            6 :                 {
    7925            6 :                   tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
    7926            6 :                   tree res = generic_simplify_202 (loc, type, _p0, _p1, captures);
    7927            6 :                   if (res) return res;
    7928              :                 }
    7929            0 :                 break;
    7930              :               }
    7931              :             default:;
    7932              :             }
    7933              :         }
    7934              :         break;
    7935              :       }
    7936       439279 :     case NEGATE_EXPR:
    7937       439279 :       {
    7938       439279 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7939       439279 :         switch (TREE_CODE (_p1))
    7940              :           {
    7941       158114 :           CASE_CONVERT:
    7942       158114 :             {
    7943       158114 :               tree _q40 = TREE_OPERAND (_p1, 0);
    7944       158114 :               if (tree_negate_expr_p (_q40))
    7945              :                 {
    7946            0 :                   {
    7947            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    7948            0 :                     tree res = generic_simplify_202 (loc, type, _p0, _p1, captures);
    7949            0 :                     if (res) return res;
    7950              :                   }
    7951              :                 }
    7952              :               break;
    7953              :             }
    7954       439279 :           default:;
    7955              :           }
    7956       439279 :       if (tree_negate_expr_p (_p1))
    7957              :         {
    7958        27867 :           {
    7959        27867 :             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    7960        27867 :             tree res = generic_simplify_202 (loc, type, _p0, _p1, captures);
    7961        27867 :             if (res) return res;
    7962              :           }
    7963              :         }
    7964       411412 :         if (tree_zero_one_valued_p (_q20))
    7965              :           {
    7966          529 :             if (tree_zero_one_valued_p (_p1))
    7967              :               {
    7968          521 :                 {
    7969          521 :                   tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    7970          521 :                   tree res = generic_simplify_204 (loc, type, _p0, _p1, captures);
    7971          521 :                   if (res) return res;
    7972              :                 }
    7973              :               }
    7974              :           }
    7975              :         break;
    7976              :       }
    7977     67932424 :     default:;
    7978              :     }
    7979     67932424 : if (tree_negate_expr_p (_p0))
    7980              :   {
    7981       681904 :     switch (TREE_CODE (_p1))
    7982              :       {
    7983       163298 :       CASE_CONVERT:
    7984       163298 :         {
    7985       163298 :           tree _q30 = TREE_OPERAND (_p1, 0);
    7986       163298 :           switch (TREE_CODE (_q30))
    7987              :             {
    7988            0 :             case NEGATE_EXPR:
    7989            0 :               {
    7990            0 :                 tree _q40 = TREE_OPERAND (_q30, 0);
    7991            0 :                 {
    7992            0 :                   tree captures[2] ATTRIBUTE_UNUSED = { _q40, _p0 };
    7993            0 :                   tree res = generic_simplify_202 (loc, type, _p0, _p1, captures);
    7994            0 :                   if (res) return res;
    7995              :                 }
    7996            0 :                 break;
    7997              :               }
    7998              :             default:;
    7999              :             }
    8000              :           break;
    8001              :         }
    8002           12 :       case NEGATE_EXPR:
    8003           12 :         {
    8004           12 :           tree _q30 = TREE_OPERAND (_p1, 0);
    8005           12 :           {
    8006           12 :             tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
    8007           12 :             tree res = generic_simplify_202 (loc, type, _p0, _p1, captures);
    8008           12 :             if (res) return res;
    8009              :           }
    8010            0 :           break;
    8011              :         }
    8012              :       default:;
    8013              :       }
    8014              :   }
    8015     67932412 : if (tree_zero_one_valued_p (_p0))
    8016              :   {
    8017       188694 :     switch (TREE_CODE (_p1))
    8018              :       {
    8019           24 :       case NEGATE_EXPR:
    8020           24 :         {
    8021           24 :           tree _q30 = TREE_OPERAND (_p1, 0);
    8022           24 :           if (tree_zero_one_valued_p (_q30))
    8023              :             {
    8024           24 :               {
    8025           24 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
    8026           24 :                 tree res = generic_simplify_204 (loc, type, _p0, _p1, captures);
    8027           24 :                 if (res) return res;
    8028              :               }
    8029              :             }
    8030              :           break;
    8031              :         }
    8032       188670 :       default:;
    8033              :       }
    8034       188670 :   if (tree_zero_one_valued_p (_p1))
    8035              :     {
    8036        13122 :       {
    8037        13122 :         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    8038        13122 :         if (INTEGRAL_TYPE_P (type)
    8039              : )
    8040              :           {
    8041        13122 :             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1479;
    8042        13122 :             {
    8043        13122 :               tree res_op0;
    8044        13122 :               res_op0 = captures[0];
    8045        13122 :               tree res_op1;
    8046        13122 :               res_op1 = captures[1];
    8047        13122 :               tree _r;
    8048        13122 :               _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    8049        13122 :               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1018, __FILE__, __LINE__, true);
    8050              :               return _r;
    8051              :             }
    8052            0 : next_after_fail1479:;
    8053              :           }
    8054              :       }
    8055              :     }
    8056              :   }
    8057     67919266 :   switch (TREE_CODE (_p1))
    8058              :     {
    8059      7413530 :     CASE_CONVERT:
    8060      7413530 :       {
    8061      7413530 :         tree _q30 = TREE_OPERAND (_p1, 0);
    8062      7413530 :         switch (TREE_CODE (_q30))
    8063              :           {
    8064            0 :           case LT_EXPR:
    8065            0 :             {
    8066            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    8067            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    8068            0 :               {
    8069            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p0 };
    8070            0 :                 tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, LT_EXPR);
    8071            0 :                 if (res) return res;
    8072              :               }
    8073            0 :               break;
    8074              :             }
    8075            0 :           case LE_EXPR:
    8076            0 :             {
    8077            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    8078            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    8079            0 :               {
    8080            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p0 };
    8081            0 :                 tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, LE_EXPR);
    8082            0 :                 if (res) return res;
    8083              :               }
    8084            0 :               break;
    8085              :             }
    8086            0 :           case EQ_EXPR:
    8087            0 :             {
    8088            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    8089            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    8090            0 :               {
    8091            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p0 };
    8092            0 :                 tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, EQ_EXPR);
    8093            0 :                 if (res) return res;
    8094              :               }
    8095            0 :               break;
    8096              :             }
    8097            0 :           case NE_EXPR:
    8098            0 :             {
    8099            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    8100            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    8101            0 :               {
    8102            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p0 };
    8103            0 :                 tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, NE_EXPR);
    8104            0 :                 if (res) return res;
    8105              :               }
    8106            0 :               break;
    8107              :             }
    8108            0 :           case GE_EXPR:
    8109            0 :             {
    8110            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    8111            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    8112            0 :               {
    8113            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p0 };
    8114            0 :                 tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, GE_EXPR);
    8115            0 :                 if (res) return res;
    8116              :               }
    8117            0 :               break;
    8118              :             }
    8119            0 :           case GT_EXPR:
    8120            0 :             {
    8121            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    8122            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    8123            0 :               {
    8124            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p0 };
    8125            0 :                 tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, GT_EXPR);
    8126            0 :                 if (res) return res;
    8127              :               }
    8128            0 :               break;
    8129              :             }
    8130            0 :           case UNORDERED_EXPR:
    8131            0 :             {
    8132            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    8133            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    8134            0 :               {
    8135            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p0 };
    8136            0 :                 tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, UNORDERED_EXPR);
    8137            0 :                 if (res) return res;
    8138              :               }
    8139            0 :               break;
    8140              :             }
    8141            0 :           case ORDERED_EXPR:
    8142            0 :             {
    8143            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    8144            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    8145            0 :               {
    8146            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p0 };
    8147            0 :                 tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, ORDERED_EXPR);
    8148            0 :                 if (res) return res;
    8149              :               }
    8150            0 :               break;
    8151              :             }
    8152            0 :           case UNLT_EXPR:
    8153            0 :             {
    8154            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    8155            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    8156            0 :               {
    8157            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p0 };
    8158            0 :                 tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, UNLT_EXPR);
    8159            0 :                 if (res) return res;
    8160              :               }
    8161            0 :               break;
    8162              :             }
    8163            0 :           case UNLE_EXPR:
    8164            0 :             {
    8165            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    8166            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    8167            0 :               {
    8168            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p0 };
    8169            0 :                 tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, UNLE_EXPR);
    8170            0 :                 if (res) return res;
    8171              :               }
    8172            0 :               break;
    8173              :             }
    8174            0 :           case UNGT_EXPR:
    8175            0 :             {
    8176            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    8177            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    8178            0 :               {
    8179            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p0 };
    8180            0 :                 tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, UNGT_EXPR);
    8181            0 :                 if (res) return res;
    8182              :               }
    8183            0 :               break;
    8184              :             }
    8185            0 :           case UNGE_EXPR:
    8186            0 :             {
    8187            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    8188            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    8189            0 :               {
    8190            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p0 };
    8191            0 :                 tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, UNGE_EXPR);
    8192            0 :                 if (res) return res;
    8193              :               }
    8194            0 :               break;
    8195              :             }
    8196            0 :           case UNEQ_EXPR:
    8197            0 :             {
    8198            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    8199            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    8200            0 :               {
    8201            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p0 };
    8202            0 :                 tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, UNEQ_EXPR);
    8203            0 :                 if (res) return res;
    8204              :               }
    8205            0 :               break;
    8206              :             }
    8207            0 :           case LTGT_EXPR:
    8208            0 :             {
    8209            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    8210            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    8211            0 :               {
    8212            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p0 };
    8213            0 :                 tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, LTGT_EXPR);
    8214            0 :                 if (res) return res;
    8215              :               }
    8216            0 :               break;
    8217              :             }
    8218              :           default:;
    8219              :           }
    8220              :         break;
    8221              :       }
    8222     67919266 :     default:;
    8223              :     }
    8224     67919266 :   switch (TREE_CODE (_p0))
    8225              :     {
    8226            3 :     case MIN_EXPR:
    8227            3 :       {
    8228            3 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8229            3 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8230            3 :         switch (TREE_CODE (_p1))
    8231              :           {
    8232            0 :           case MAX_EXPR:
    8233            0 :             {
    8234            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    8235            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    8236            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    8237              :                 {
    8238            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    8239              :                     {
    8240            0 :                       {
    8241            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    8242            0 :                         if (!HONOR_NANS (captures[0])
    8243              : )
    8244              :                           {
    8245            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1480;
    8246            0 :                             {
    8247            0 :                               tree res_op0;
    8248            0 :                               res_op0 = captures[0];
    8249            0 :                               tree res_op1;
    8250            0 :                               res_op1 = captures[1];
    8251            0 :                               tree _r;
    8252            0 :                               _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    8253            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 937, __FILE__, __LINE__, true);
    8254              :                               return _r;
    8255              :                             }
    8256            0 : next_after_fail1480:;
    8257              :                           }
    8258              :                       }
    8259              :                     }
    8260              :                 }
    8261            0 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    8262              :                 {
    8263            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    8264              :                     {
    8265            0 :                       {
    8266            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    8267            0 :                         if (!HONOR_NANS (captures[0])
    8268              : )
    8269              :                           {
    8270            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1481;
    8271            0 :                             {
    8272            0 :                               tree res_op0;
    8273            0 :                               res_op0 = captures[0];
    8274            0 :                               tree res_op1;
    8275            0 :                               res_op1 = captures[1];
    8276            0 :                               tree _r;
    8277            0 :                               _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    8278            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 937, __FILE__, __LINE__, true);
    8279              :                               return _r;
    8280              :                             }
    8281            0 : next_after_fail1481:;
    8282              :                           }
    8283              :                       }
    8284              :                     }
    8285              :                 }
    8286              :               break;
    8287              :             }
    8288              :           default:;
    8289              :           }
    8290              :         break;
    8291              :       }
    8292          146 :     case MAX_EXPR:
    8293          146 :       {
    8294          146 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8295          146 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8296          146 :         switch (TREE_CODE (_p1))
    8297              :           {
    8298            0 :           case MIN_EXPR:
    8299            0 :             {
    8300            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    8301            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    8302            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    8303              :                 {
    8304            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    8305              :                     {
    8306            0 :                       {
    8307            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    8308            0 :                         if (!HONOR_NANS (captures[0])
    8309              : )
    8310              :                           {
    8311            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1482;
    8312            0 :                             {
    8313            0 :                               tree res_op0;
    8314            0 :                               res_op0 = captures[0];
    8315            0 :                               tree res_op1;
    8316            0 :                               res_op1 = captures[1];
    8317            0 :                               tree _r;
    8318            0 :                               _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    8319            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 937, __FILE__, __LINE__, true);
    8320              :                               return _r;
    8321              :                             }
    8322            0 : next_after_fail1482:;
    8323              :                           }
    8324              :                       }
    8325              :                     }
    8326              :                 }
    8327            0 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    8328              :                 {
    8329            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    8330              :                     {
    8331            0 :                       {
    8332            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    8333            0 :                         if (!HONOR_NANS (captures[0])
    8334              : )
    8335              :                           {
    8336            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1483;
    8337            0 :                             {
    8338            0 :                               tree res_op0;
    8339            0 :                               res_op0 = captures[0];
    8340            0 :                               tree res_op1;
    8341            0 :                               res_op1 = captures[1];
    8342            0 :                               tree _r;
    8343            0 :                               _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    8344            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 937, __FILE__, __LINE__, true);
    8345              :                               return _r;
    8346              :                             }
    8347            0 : next_after_fail1483:;
    8348              :                           }
    8349              :                       }
    8350              :                     }
    8351              :                 }
    8352              :               break;
    8353              :             }
    8354              :           default:;
    8355              :           }
    8356              :         break;
    8357              :       }
    8358     32221787 :     CASE_CONVERT:
    8359     32221787 :       {
    8360     32221787 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8361     32221787 :         switch (TREE_CODE (_q20))
    8362              :           {
    8363           82 :           case BIT_AND_EXPR:
    8364           82 :             {
    8365           82 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8366           82 :               tree _q31 = TREE_OPERAND (_q20, 1);
    8367           82 :               switch (TREE_CODE (_q30))
    8368              :                 {
    8369            0 :                 CASE_CONVERT:
    8370            0 :                   {
    8371            0 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    8372            0 :                     switch (TREE_CODE (_q40))
    8373              :                       {
    8374            0 :                       case RSHIFT_EXPR:
    8375            0 :                         {
    8376            0 :                           tree _q50 = TREE_OPERAND (_q40, 0);
    8377            0 :                           tree _q51 = TREE_OPERAND (_q40, 1);
    8378            0 :                           switch (TREE_CODE (_q51))
    8379              :                             {
    8380            0 :                             case INTEGER_CST:
    8381            0 :                               {
    8382            0 :                                 switch (TREE_CODE (_q31))
    8383              :                                   {
    8384            0 :                                   case INTEGER_CST:
    8385            0 :                                     {
    8386            0 :                                       switch (TREE_CODE (_p1))
    8387              :                                         {
    8388            0 :                                         case INTEGER_CST:
    8389            0 :                                           {
    8390            0 :                                             {
    8391            0 :                                               tree captures[4] ATTRIBUTE_UNUSED = { _q50, _q51, _q31, _p1 };
    8392            0 :                                               tree res = generic_simplify_206 (loc, type, _p0, _p1, captures);
    8393            0 :                                               if (res) return res;
    8394              :                                             }
    8395            0 :                                             break;
    8396              :                                           }
    8397              :                                         default:;
    8398              :                                         }
    8399              :                                       break;
    8400              :                                     }
    8401              :                                   default:;
    8402              :                                   }
    8403              :                                 break;
    8404              :                               }
    8405              :                             default:;
    8406              :                             }
    8407              :                           break;
    8408              :                         }
    8409              :                       default:;
    8410              :                       }
    8411              :                     break;
    8412              :                   }
    8413              :                 default:;
    8414              :                 }
    8415              :               break;
    8416              :             }
    8417        31751 :           case EXACT_DIV_EXPR:
    8418        31751 :             {
    8419        31751 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8420        31751 :               tree _q31 = TREE_OPERAND (_q20, 1);
    8421        31751 :               switch (TREE_CODE (_p1))
    8422              :                 {
    8423            0 :                 CASE_CONVERT:
    8424            0 :                   {
    8425            0 :                     tree _q60 = TREE_OPERAND (_p1, 0);
    8426            0 :                     if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q31, 0))
    8427              :                       {
    8428            0 :                         {
    8429            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q31 };
    8430            0 :                           tree res = generic_simplify_207 (loc, type, _p0, _p1, captures);
    8431            0 :                           if (res) return res;
    8432              :                         }
    8433              :                       }
    8434              :                     break;
    8435              :                   }
    8436        31751 :                 default:;
    8437              :                 }
    8438        31751 :               if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q31, 0))
    8439              :                 {
    8440        21511 :                   {
    8441        21511 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q31 };
    8442        21511 :                     tree res = generic_simplify_207 (loc, type, _p0, _p1, captures);
    8443        21511 :                     if (res) return res;
    8444              :                   }
    8445              :                 }
    8446        10240 :               switch (TREE_CODE (_q31))
    8447              :                 {
    8448        10240 :                 case INTEGER_CST:
    8449        10240 :                   {
    8450        10240 :                     if (poly_int_tree_p (_p1))
    8451              :                       {
    8452        10240 :                         {
    8453        10240 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
    8454        10240 :                           tree res = generic_simplify_208 (loc, type, _p0, _p1, captures);
    8455        10240 :                           if (res) return res;
    8456              :                         }
    8457              :                       }
    8458              :                     break;
    8459              :                   }
    8460              :                 default:;
    8461              :                 }
    8462              :               break;
    8463              :             }
    8464      1385088 :           case PLUS_EXPR:
    8465      1385088 :             {
    8466      1385088 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8467      1385088 :               tree _q31 = TREE_OPERAND (_q20, 1);
    8468      1385088 :               switch (TREE_CODE (_q30))
    8469              :                 {
    8470       174377 :                 CASE_CONVERT:
    8471       174377 :                   {
    8472       174377 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    8473       174377 :                     switch (TREE_CODE (_q40))
    8474              :                       {
    8475            0 :                       case EXACT_DIV_EXPR:
    8476            0 :                         {
    8477            0 :                           tree _q50 = TREE_OPERAND (_q40, 0);
    8478            0 :                           tree _q51 = TREE_OPERAND (_q40, 1);
    8479            0 :                           switch (TREE_CODE (_q51))
    8480              :                             {
    8481            0 :                             case INTEGER_CST:
    8482            0 :                               {
    8483            0 :                                 if (poly_int_tree_p (_q31))
    8484              :                                   {
    8485            0 :                                     if (poly_int_tree_p (_p1))
    8486              :                                       {
    8487            0 :                                         {
    8488            0 :                                           tree captures[4] ATTRIBUTE_UNUSED = { _q50, _q51, _q31, _p1 };
    8489            0 :                                           tree res = generic_simplify_209 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    8490            0 :                                           if (res) return res;
    8491              :                                         }
    8492              :                                       }
    8493              :                                   }
    8494              :                                 break;
    8495              :                               }
    8496              :                             default:;
    8497              :                             }
    8498              :                           break;
    8499              :                         }
    8500              :                       default:;
    8501              :                       }
    8502              :                     break;
    8503              :                   }
    8504          112 :                 case EXACT_DIV_EXPR:
    8505          112 :                   {
    8506          112 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    8507          112 :                     tree _q41 = TREE_OPERAND (_q30, 1);
    8508          112 :                     switch (TREE_CODE (_q41))
    8509              :                       {
    8510          112 :                       case INTEGER_CST:
    8511          112 :                         {
    8512          112 :                           if (poly_int_tree_p (_q31))
    8513              :                             {
    8514          112 :                               if (poly_int_tree_p (_p1))
    8515              :                                 {
    8516          112 :                                   {
    8517          112 :                                     tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q41, _q31, _p1 };
    8518          112 :                                     tree res = generic_simplify_209 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    8519          112 :                                     if (res) return res;
    8520              :                                   }
    8521              :                                 }
    8522              :                             }
    8523              :                           break;
    8524              :                         }
    8525              :                       default:;
    8526              :                       }
    8527              :                     break;
    8528              :                   }
    8529              :                 default:;
    8530              :                 }
    8531              :               break;
    8532              :             }
    8533        98918 :           case MINUS_EXPR:
    8534        98918 :             {
    8535        98918 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8536        98918 :               tree _q31 = TREE_OPERAND (_q20, 1);
    8537        98918 :               switch (TREE_CODE (_q30))
    8538              :                 {
    8539        21110 :                 CASE_CONVERT:
    8540        21110 :                   {
    8541        21110 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    8542        21110 :                     switch (TREE_CODE (_q40))
    8543              :                       {
    8544            0 :                       case EXACT_DIV_EXPR:
    8545            0 :                         {
    8546            0 :                           tree _q50 = TREE_OPERAND (_q40, 0);
    8547            0 :                           tree _q51 = TREE_OPERAND (_q40, 1);
    8548            0 :                           switch (TREE_CODE (_q51))
    8549              :                             {
    8550            0 :                             case INTEGER_CST:
    8551            0 :                               {
    8552            0 :                                 if (poly_int_tree_p (_q31))
    8553              :                                   {
    8554            0 :                                     if (poly_int_tree_p (_p1))
    8555              :                                       {
    8556            0 :                                         {
    8557            0 :                                           tree captures[4] ATTRIBUTE_UNUSED = { _q50, _q51, _q31, _p1 };
    8558            0 :                                           tree res = generic_simplify_209 (loc, type, _p0, _p1, captures, MINUS_EXPR);
    8559            0 :                                           if (res) return res;
    8560              :                                         }
    8561              :                                       }
    8562              :                                   }
    8563              :                                 break;
    8564              :                               }
    8565              :                             default:;
    8566              :                             }
    8567              :                           break;
    8568              :                         }
    8569              :                       default:;
    8570              :                       }
    8571              :                     break;
    8572              :                   }
    8573            0 :                 case EXACT_DIV_EXPR:
    8574            0 :                   {
    8575            0 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    8576            0 :                     tree _q41 = TREE_OPERAND (_q30, 1);
    8577            0 :                     switch (TREE_CODE (_q41))
    8578              :                       {
    8579            0 :                       case INTEGER_CST:
    8580            0 :                         {
    8581            0 :                           if (poly_int_tree_p (_q31))
    8582              :                             {
    8583            0 :                               if (poly_int_tree_p (_p1))
    8584              :                                 {
    8585            0 :                                   {
    8586            0 :                                     tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q41, _q31, _p1 };
    8587            0 :                                     tree res = generic_simplify_209 (loc, type, _p0, _p1, captures, MINUS_EXPR);
    8588            0 :                                     if (res) return res;
    8589              :                                   }
    8590              :                                 }
    8591              :                             }
    8592              :                           break;
    8593              :                         }
    8594              :                       default:;
    8595              :                       }
    8596              :                     break;
    8597              :                   }
    8598              :                 default:;
    8599              :                 }
    8600              :               break;
    8601              :             }
    8602              :           default:;
    8603              :           }
    8604              :         break;
    8605              :       }
    8606        59536 :     case BIT_AND_EXPR:
    8607        59536 :       {
    8608        59536 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8609        59536 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8610        59536 :         switch (TREE_CODE (_q20))
    8611              :           {
    8612          277 :           case RSHIFT_EXPR:
    8613          277 :             {
    8614          277 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8615          277 :               tree _q31 = TREE_OPERAND (_q20, 1);
    8616          277 :               switch (TREE_CODE (_q31))
    8617              :                 {
    8618           14 :                 case INTEGER_CST:
    8619           14 :                   {
    8620           14 :                     switch (TREE_CODE (_q21))
    8621              :                       {
    8622           14 :                       case INTEGER_CST:
    8623           14 :                         {
    8624           14 :                           switch (TREE_CODE (_p1))
    8625              :                             {
    8626           14 :                             case INTEGER_CST:
    8627           14 :                               {
    8628           14 :                                 {
    8629           14 :                                   tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q21, _p1 };
    8630           14 :                                   tree res = generic_simplify_206 (loc, type, _p0, _p1, captures);
    8631           14 :                                   if (res) return res;
    8632              :                                 }
    8633            8 :                                 break;
    8634              :                               }
    8635              :                             default:;
    8636              :                             }
    8637              :                           break;
    8638              :                         }
    8639              :                       default:;
    8640              :                       }
    8641              :                     break;
    8642              :                   }
    8643              :                 default:;
    8644              :                 }
    8645              :               break;
    8646              :             }
    8647              :           default:;
    8648              :           }
    8649              :         break;
    8650              :       }
    8651       189947 :     case EXACT_DIV_EXPR:
    8652       189947 :       {
    8653       189947 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8654       189947 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8655       189947 :         switch (TREE_CODE (_p1))
    8656              :           {
    8657          114 :           CASE_CONVERT:
    8658          114 :             {
    8659          114 :               tree _q50 = TREE_OPERAND (_p1, 0);
    8660          114 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q21, 0))
    8661              :                 {
    8662            0 :                   {
    8663            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q21 };
    8664            0 :                     tree res = generic_simplify_207 (loc, type, _p0, _p1, captures);
    8665            0 :                     if (res) return res;
    8666              :                   }
    8667              :                 }
    8668              :               break;
    8669              :             }
    8670       189947 :           default:;
    8671              :           }
    8672       189947 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q21, 0))
    8673              :           {
    8674        20781 :             {
    8675        20781 :               tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q21 };
    8676        20781 :               tree res = generic_simplify_207 (loc, type, _p0, _p1, captures);
    8677        20781 :               if (res) return res;
    8678              :             }
    8679              :           }
    8680       169166 :         switch (TREE_CODE (_q21))
    8681              :           {
    8682       169166 :           case INTEGER_CST:
    8683       169166 :             {
    8684       169166 :               if (poly_int_tree_p (_p1))
    8685              :                 {
    8686       169052 :                   {
    8687       169052 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    8688       169052 :                     tree res = generic_simplify_208 (loc, type, _p0, _p1, captures);
    8689       169052 :                     if (res) return res;
    8690              :                   }
    8691              :                 }
    8692              :               break;
    8693              :             }
    8694              :           default:;
    8695              :           }
    8696              :         break;
    8697              :       }
    8698      7661530 :     case PLUS_EXPR:
    8699      7661530 :       {
    8700      7661530 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8701      7661530 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8702      7661530 :         switch (TREE_CODE (_q20))
    8703              :           {
    8704      3745694 :           CASE_CONVERT:
    8705      3745694 :             {
    8706      3745694 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8707      3745694 :               switch (TREE_CODE (_q30))
    8708              :                 {
    8709         5494 :                 case EXACT_DIV_EXPR:
    8710         5494 :                   {
    8711         5494 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    8712         5494 :                     tree _q41 = TREE_OPERAND (_q30, 1);
    8713         5494 :                     switch (TREE_CODE (_q41))
    8714              :                       {
    8715         5494 :                       case INTEGER_CST:
    8716         5494 :                         {
    8717         5494 :                           if (poly_int_tree_p (_q21))
    8718              :                             {
    8719         5494 :                               if (poly_int_tree_p (_p1))
    8720              :                                 {
    8721         5494 :                                   {
    8722         5494 :                                     tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q41, _q21, _p1 };
    8723         5494 :                                     tree res = generic_simplify_209 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    8724         5494 :                                     if (res) return res;
    8725              :                                   }
    8726              :                                 }
    8727              :                             }
    8728              :                           break;
    8729              :                         }
    8730              :                       default:;
    8731              :                       }
    8732              :                     break;
    8733              :                   }
    8734              :                 default:;
    8735              :                 }
    8736              :               break;
    8737              :             }
    8738            0 :           case EXACT_DIV_EXPR:
    8739            0 :             {
    8740            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8741            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    8742            0 :               switch (TREE_CODE (_q31))
    8743              :                 {
    8744            0 :                 case INTEGER_CST:
    8745            0 :                   {
    8746            0 :                     if (poly_int_tree_p (_q21))
    8747              :                       {
    8748            0 :                         if (poly_int_tree_p (_p1))
    8749              :                           {
    8750            0 :                             {
    8751            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q21, _p1 };
    8752            0 :                               tree res = generic_simplify_209 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    8753            0 :                               if (res) return res;
    8754              :                             }
    8755              :                           }
    8756              :                       }
    8757              :                     break;
    8758              :                   }
    8759              :                 default:;
    8760              :                 }
    8761              :               break;
    8762              :             }
    8763              :           default:;
    8764              :           }
    8765              :         break;
    8766              :       }
    8767      1150884 :     case MINUS_EXPR:
    8768      1150884 :       {
    8769      1150884 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8770      1150884 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8771      1150884 :         switch (TREE_CODE (_q20))
    8772              :           {
    8773       265063 :           CASE_CONVERT:
    8774       265063 :             {
    8775       265063 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8776       265063 :               switch (TREE_CODE (_q30))
    8777              :                 {
    8778            0 :                 case EXACT_DIV_EXPR:
    8779            0 :                   {
    8780            0 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    8781            0 :                     tree _q41 = TREE_OPERAND (_q30, 1);
    8782            0 :                     switch (TREE_CODE (_q41))
    8783              :                       {
    8784            0 :                       case INTEGER_CST:
    8785            0 :                         {
    8786            0 :                           if (poly_int_tree_p (_q21))
    8787              :                             {
    8788            0 :                               if (poly_int_tree_p (_p1))
    8789              :                                 {
    8790            0 :                                   {
    8791            0 :                                     tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q41, _q21, _p1 };
    8792            0 :                                     tree res = generic_simplify_209 (loc, type, _p0, _p1, captures, MINUS_EXPR);
    8793            0 :                                     if (res) return res;
    8794              :                                   }
    8795              :                                 }
    8796              :                             }
    8797              :                           break;
    8798              :                         }
    8799              :                       default:;
    8800              :                       }
    8801              :                     break;
    8802              :                   }
    8803              :                 default:;
    8804              :                 }
    8805              :               break;
    8806              :             }
    8807          264 :           case EXACT_DIV_EXPR:
    8808          264 :             {
    8809          264 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8810          264 :               tree _q31 = TREE_OPERAND (_q20, 1);
    8811          264 :               switch (TREE_CODE (_q31))
    8812              :                 {
    8813          264 :                 case INTEGER_CST:
    8814          264 :                   {
    8815          264 :                     if (poly_int_tree_p (_q21))
    8816              :                       {
    8817            0 :                         if (poly_int_tree_p (_p1))
    8818              :                           {
    8819            0 :                             {
    8820            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q21, _p1 };
    8821            0 :                               tree res = generic_simplify_209 (loc, type, _p0, _p1, captures, MINUS_EXPR);
    8822            0 :                               if (res) return res;
    8823              :                             }
    8824              :                           }
    8825              :                       }
    8826              :                     break;
    8827              :                   }
    8828              :                 default:;
    8829              :                 }
    8830              :               break;
    8831              :             }
    8832              :           default:;
    8833              :           }
    8834              :         break;
    8835              :       }
    8836     67815738 :     default:;
    8837              :     }
    8838     67815738 :   if (integer_minus_onep (_p1))
    8839              :     {
    8840       407710 :       {
    8841       407710 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    8842       407710 :         if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1484;
    8843       407710 :         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1484;
    8844       407710 :         {
    8845       407710 :           tree res_op0;
    8846       407710 :           res_op0 = captures[0];
    8847       407710 :           tree _r;
    8848       407710 :           _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    8849       407710 :           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1019, __FILE__, __LINE__, true);
    8850     72733665 :           return _r;
    8851              :         }
    8852     67408028 : next_after_fail1484:;
    8853              :       }
    8854              :     }
    8855     67408028 :   switch (TREE_CODE (_p0))
    8856              :     {
    8857      4890519 :     case MULT_EXPR:
    8858      4890519 :       {
    8859      4890519 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8860      4890519 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8861      4890519 :         switch (TREE_CODE (_q21))
    8862              :           {
    8863       170145 :           case INTEGER_CST:
    8864       170145 :             {
    8865       170145 :               {
    8866       170145 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    8867       170145 :                 tree res = generic_simplify_210 (loc, type, _p0, _p1, captures);
    8868       170145 :                 if (res) return res;
    8869              :               }
    8870           30 :               break;
    8871              :             }
    8872              :           default:;
    8873              :           }
    8874              :         break;
    8875              :       }
    8876     67237913 :     default:;
    8877              :     }
    8878     67237913 :   switch (TREE_CODE (_p1))
    8879              :     {
    8880        23584 :     case MULT_EXPR:
    8881        23584 :       {
    8882        23584 :         tree _q30 = TREE_OPERAND (_p1, 0);
    8883        23584 :         tree _q31 = TREE_OPERAND (_p1, 1);
    8884        23584 :         switch (TREE_CODE (_q31))
    8885              :           {
    8886        17158 :           case INTEGER_CST:
    8887        17158 :             {
    8888        17158 :               {
    8889        17158 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q31, _p0 };
    8890        17158 :                 tree res = generic_simplify_210 (loc, type, _p0, _p1, captures);
    8891        17158 :                 if (res) return res;
    8892              :               }
    8893            0 :               break;
    8894              :             }
    8895              :           default:;
    8896              :           }
    8897              :         break;
    8898              :       }
    8899     67220755 :     default:;
    8900              :     }
    8901     67220755 :   switch (TREE_CODE (_p0))
    8902              :     {
    8903           36 :     case VEC_COND_EXPR:
    8904           36 :       {
    8905           36 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8906           36 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8907           36 :         tree _q22 = TREE_OPERAND (_p0, 2);
    8908           36 :         switch (TREE_CODE (_p1))
    8909              :           {
    8910            0 :           case VEC_COND_EXPR:
    8911            0 :             {
    8912            0 :               tree _q60 = TREE_OPERAND (_p1, 0);
    8913            0 :               tree _q61 = TREE_OPERAND (_p1, 1);
    8914            0 :               tree _q62 = TREE_OPERAND (_p1, 2);
    8915            0 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    8916              :                 {
    8917            0 :                   {
    8918            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
    8919            0 :                     if (VECTOR_TYPE_P (type)
    8920              :  && (TREE_CODE_CLASS (MULT_EXPR) != tcc_comparison
    8921              :  || types_match (type, TREE_TYPE (captures[2]))
    8922              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    8923              :  || (optimize_vectors_before_lowering_p ()
    8924              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    8925              : )
    8926              :                       {
    8927            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1485;
    8928            0 :                         {
    8929            0 :                           tree res_op0;
    8930            0 :                           res_op0 = captures[1];
    8931            0 :                           tree res_op1;
    8932            0 :                           {
    8933            0 :                             tree _o1[2], _r1;
    8934            0 :                             _o1[0] = captures[2];
    8935            0 :                             _o1[1] = captures[5];
    8936            0 :                             _r1 = fold_build2_loc (loc, MULT_EXPR, type, _o1[0], _o1[1]);
    8937            0 :                             if (EXPR_P (_r1))
    8938            0 :                               goto next_after_fail1485;
    8939            0 :                             res_op1 = _r1;
    8940              :                           }
    8941            0 :                           tree res_op2;
    8942            0 :                           {
    8943            0 :                             tree _o1[2], _r1;
    8944            0 :                             _o1[0] = captures[3];
    8945            0 :                             _o1[1] = captures[6];
    8946            0 :                             _r1 = fold_build2_loc (loc, MULT_EXPR, type, _o1[0], _o1[1]);
    8947            0 :                             if (EXPR_P (_r1))
    8948            0 :                               goto next_after_fail1485;
    8949            0 :                             res_op2 = _r1;
    8950              :                           }
    8951            0 :                           tree _r;
    8952            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    8953            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 938, __FILE__, __LINE__, true);
    8954              :                           return _r;
    8955              :                         }
    8956           36 : next_after_fail1485:;
    8957              :                       }
    8958              :                   }
    8959              :                 }
    8960              :               break;
    8961              :             }
    8962           36 :           default:;
    8963              :           }
    8964           36 :         {
    8965           36 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
    8966           36 :           if (VECTOR_TYPE_P (type)
    8967              :  && (TREE_CODE_CLASS (MULT_EXPR) != tcc_comparison
    8968              :  || types_match (type, TREE_TYPE (captures[2]))
    8969              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    8970              :  || (optimize_vectors_before_lowering_p ()
    8971              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    8972              : )
    8973              :             {
    8974           36 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1486;
    8975           36 :               {
    8976           36 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1486;
    8977            0 :                 tree res_op0;
    8978            0 :                 res_op0 = captures[1];
    8979            0 :                 tree res_op1;
    8980            0 :                 {
    8981            0 :                   tree _o1[2], _r1;
    8982            0 :                   _o1[0] = captures[2];
    8983            0 :                   _o1[1] = unshare_expr (captures[4]);
    8984            0 :                   _r1 = fold_build2_loc (loc, MULT_EXPR, type, _o1[0], _o1[1]);
    8985            0 :                   if (EXPR_P (_r1))
    8986            0 :                     goto next_after_fail1486;
    8987            0 :                   res_op1 = _r1;
    8988              :                 }
    8989            0 :                 tree res_op2;
    8990            0 :                 {
    8991            0 :                   tree _o1[2], _r1;
    8992            0 :                   _o1[0] = captures[3];
    8993            0 :                   _o1[1] = captures[4];
    8994            0 :                   _r1 = fold_build2_loc (loc, MULT_EXPR, type, _o1[0], _o1[1]);
    8995            0 :                   if (EXPR_P (_r1))
    8996            0 :                     goto next_after_fail1486;
    8997            0 :                   res_op2 = _r1;
    8998              :                 }
    8999            0 :                 tree _r;
    9000            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    9001            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 940, __FILE__, __LINE__, true);
    9002              :                 return _r;
    9003              :               }
    9004     67220755 : next_after_fail1486:;
    9005              :             }
    9006              :         }
    9007              :         break;
    9008              :       }
    9009     67220755 :     default:;
    9010              :     }
    9011     67220755 :   switch (TREE_CODE (_p1))
    9012              :     {
    9013            0 :     case VEC_COND_EXPR:
    9014            0 :       {
    9015            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    9016            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
    9017            0 :         tree _q32 = TREE_OPERAND (_p1, 2);
    9018            0 :         {
    9019            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
    9020            0 :           if (VECTOR_TYPE_P (type)
    9021              :  && (TREE_CODE_CLASS (MULT_EXPR) != tcc_comparison
    9022              :  || types_match (type, TREE_TYPE (captures[3]))
    9023              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
    9024              :  || (optimize_vectors_before_lowering_p ()
    9025              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
    9026              : )
    9027              :             {
    9028            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1487;
    9029            0 :               {
    9030            0 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1487;
    9031            0 :                 tree res_op0;
    9032            0 :                 res_op0 = captures[2];
    9033            0 :                 tree res_op1;
    9034            0 :                 {
    9035            0 :                   tree _o1[2], _r1;
    9036            0 :                   _o1[0] = unshare_expr (captures[0]);
    9037            0 :                   _o1[1] = captures[3];
    9038            0 :                   _r1 = fold_build2_loc (loc, MULT_EXPR, type, _o1[0], _o1[1]);
    9039            0 :                   if (EXPR_P (_r1))
    9040            0 :                     goto next_after_fail1487;
    9041            0 :                   res_op1 = _r1;
    9042              :                 }
    9043            0 :                 tree res_op2;
    9044            0 :                 {
    9045            0 :                   tree _o1[2], _r1;
    9046            0 :                   _o1[0] = captures[0];
    9047            0 :                   _o1[1] = captures[4];
    9048            0 :                   _r1 = fold_build2_loc (loc, MULT_EXPR, type, _o1[0], _o1[1]);
    9049            0 :                   if (EXPR_P (_r1))
    9050            0 :                     goto next_after_fail1487;
    9051            0 :                   res_op2 = _r1;
    9052              :                 }
    9053            0 :                 tree _r;
    9054            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    9055            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 941, __FILE__, __LINE__, true);
    9056              :                 return _r;
    9057              :               }
    9058     67220755 : next_after_fail1487:;
    9059              :             }
    9060              :         }
    9061              :         break;
    9062              :       }
    9063     67220755 :     default:;
    9064              :     }
    9065     67220755 :   switch (TREE_CODE (_p0))
    9066              :     {
    9067         2576 :     case REAL_CST:
    9068         2576 :       {
    9069         2576 :         switch (TREE_CODE (_p1))
    9070              :           {
    9071            0 :           case CALL_EXPR:
    9072            0 :             switch (get_call_combined_fn (_p1))
    9073              :               {
    9074            0 :               case CFN_BUILT_IN_LDEXPF:
    9075            0 :                 if (call_expr_nargs (_p1) == 2)
    9076              :     {
    9077            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    9078            0 :                     tree _q31 = CALL_EXPR_ARG (_p1, 1);
    9079            0 :                     {
    9080            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
    9081            0 :                       tree res = generic_simplify_213 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LDEXPF);
    9082            0 :                       if (res) return res;
    9083              :                     }
    9084              :                   }
    9085              :                 break;
    9086            0 :               case CFN_BUILT_IN_LDEXPL:
    9087            0 :                 if (call_expr_nargs (_p1) == 2)
    9088              :     {
    9089            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    9090            0 :                     tree _q31 = CALL_EXPR_ARG (_p1, 1);
    9091            0 :                     {
    9092            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
    9093            0 :                       tree res = generic_simplify_213 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LDEXPL);
    9094            0 :                       if (res) return res;
    9095              :                     }
    9096              :                   }
    9097              :                 break;
    9098            0 :               case CFN_LDEXP:
    9099            0 :                 if (call_expr_nargs (_p1) == 2)
    9100              :     {
    9101            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    9102            0 :                     tree _q31 = CALL_EXPR_ARG (_p1, 1);
    9103            0 :                     {
    9104            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
    9105            0 :                       tree res = generic_simplify_213 (loc, type, _p0, _p1, captures, CFN_LDEXP);
    9106            0 :                       if (res) return res;
    9107              :                     }
    9108              :                   }
    9109              :                 break;
    9110            0 :               case CFN_BUILT_IN_LDEXP:
    9111            0 :                 if (call_expr_nargs (_p1) == 2)
    9112              :     {
    9113            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    9114            0 :                     tree _q31 = CALL_EXPR_ARG (_p1, 1);
    9115            0 :                     {
    9116            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
    9117            0 :                       tree res = generic_simplify_213 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LDEXP);
    9118            0 :                       if (res) return res;
    9119              :                     }
    9120              :                   }
    9121              :                 break;
    9122              :               default:;
    9123              :               }
    9124              :             break;
    9125              :           default:;
    9126              :           }
    9127              :         break;
    9128              :       }
    9129      2531303 :     case CALL_EXPR:
    9130      2531303 :       switch (get_call_combined_fn (_p0))
    9131              :         {
    9132           55 :         case CFN_BUILT_IN_SQRTF:
    9133           55 :           if (call_expr_nargs (_p0) == 1)
    9134              :     {
    9135           55 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9136           55 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    9137              :                 {
    9138            0 :                   {
    9139            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
    9140            0 :                     tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF);
    9141            0 :                     if (res) return res;
    9142              :                   }
    9143              :                 }
    9144           55 :               switch (TREE_CODE (_p1))
    9145              :                 {
    9146           13 :                 case CALL_EXPR:
    9147           13 :                   switch (get_call_combined_fn (_p1))
    9148              :                     {
    9149           13 :                     case CFN_BUILT_IN_SQRTF:
    9150           13 :                       if (call_expr_nargs (_p1) == 1)
    9151              :     {
    9152           13 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9153           13 :                           {
    9154           13 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    9155           13 :                             if (flag_unsafe_math_optimizations
    9156              : )
    9157              :                               {
    9158           13 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1488;
    9159           13 :                                 {
    9160           13 :                                   tree res_op0;
    9161           13 :                                   {
    9162           13 :                                     tree _o1[2], _r1;
    9163           13 :                                     _o1[0] = captures[1];
    9164           13 :                                     _o1[1] = captures[3];
    9165           13 :                                     _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9166           13 :                                     res_op0 = _r1;
    9167              :                                   }
    9168           13 :                                   tree _r;
    9169           13 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SQRTF, type, 1, res_op0);
    9170           13 :                                   if (!_r)
    9171            0 :                                     goto next_after_fail1488;
    9172           13 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1020, __FILE__, __LINE__, true);
    9173              :                                   return _r;
    9174              :                                 }
    9175     67220435 : next_after_fail1488:;
    9176              :                               }
    9177              :                           }
    9178              :                         }
    9179              :                       break;
    9180              :                     default:;
    9181              :                     }
    9182              :                   break;
    9183              :                 default:;
    9184              :                 }
    9185              :             }
    9186              :           break;
    9187           48 :         case CFN_BUILT_IN_SQRTL:
    9188           48 :           if (call_expr_nargs (_p0) == 1)
    9189              :     {
    9190           48 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9191           48 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    9192              :                 {
    9193            0 :                   {
    9194            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
    9195            0 :                     tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL);
    9196            0 :                     if (res) return res;
    9197              :                   }
    9198              :                 }
    9199           48 :               switch (TREE_CODE (_p1))
    9200              :                 {
    9201           13 :                 case CALL_EXPR:
    9202           13 :                   switch (get_call_combined_fn (_p1))
    9203              :                     {
    9204           13 :                     case CFN_BUILT_IN_SQRTL:
    9205           13 :                       if (call_expr_nargs (_p1) == 1)
    9206              :     {
    9207           13 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9208           13 :                           {
    9209           13 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    9210           13 :                             if (flag_unsafe_math_optimizations
    9211              : )
    9212              :                               {
    9213           13 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1489;
    9214           13 :                                 {
    9215           13 :                                   tree res_op0;
    9216           13 :                                   {
    9217           13 :                                     tree _o1[2], _r1;
    9218           13 :                                     _o1[0] = captures[1];
    9219           13 :                                     _o1[1] = captures[3];
    9220           13 :                                     _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9221           13 :                                     res_op0 = _r1;
    9222              :                                   }
    9223           13 :                                   tree _r;
    9224           13 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SQRTL, type, 1, res_op0);
    9225           13 :                                   if (!_r)
    9226            0 :                                     goto next_after_fail1489;
    9227           13 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1020, __FILE__, __LINE__, true);
    9228              :                                   return _r;
    9229              :                                 }
    9230     67220435 : next_after_fail1489:;
    9231              :                               }
    9232              :                           }
    9233              :                         }
    9234              :                       break;
    9235              :                     default:;
    9236              :                     }
    9237              :                   break;
    9238              :                 default:;
    9239              :                 }
    9240              :             }
    9241              :           break;
    9242          287 :         case CFN_BUILT_IN_EXP:
    9243          287 :           if (call_expr_nargs (_p0) == 1)
    9244              :     {
    9245          287 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9246          287 :               switch (TREE_CODE (_p1))
    9247              :                 {
    9248           81 :                 case CALL_EXPR:
    9249           81 :                   switch (get_call_combined_fn (_p1))
    9250              :                     {
    9251           31 :                     case CFN_BUILT_IN_EXP:
    9252           31 :                       if (call_expr_nargs (_p1) == 1)
    9253              :     {
    9254           31 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9255           31 :                           {
    9256           31 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    9257           31 :                             if (flag_unsafe_math_optimizations
    9258              : )
    9259              :                               {
    9260           27 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1490;
    9261           27 :                                 {
    9262           27 :                                   tree res_op0;
    9263           27 :                                   {
    9264           27 :                                     tree _o1[2], _r1;
    9265           27 :                                     _o1[0] = captures[1];
    9266           27 :                                     _o1[1] = captures[3];
    9267           27 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9268           27 :                                     res_op0 = _r1;
    9269              :                                   }
    9270           27 :                                   tree _r;
    9271           27 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP, type, 1, res_op0);
    9272           27 :                                   if (!_r)
    9273            0 :                                     goto next_after_fail1490;
    9274           27 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1021, __FILE__, __LINE__, true);
    9275              :                                   return _r;
    9276              :                                 }
    9277     67220435 : next_after_fail1490:;
    9278              :                               }
    9279              :                           }
    9280              :                         }
    9281              :                       break;
    9282            0 :                     case CFN_BUILT_IN_POW:
    9283            0 :                       if (call_expr_nargs (_p1) == 2)
    9284              :     {
    9285            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9286            0 :                           tree _q41 = CALL_EXPR_ARG (_p1, 1);
    9287            0 :                           switch (TREE_CODE (_q40))
    9288              :                             {
    9289            0 :                             case REAL_CST:
    9290            0 :                               {
    9291            0 :                                 {
    9292            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
    9293            0 :                                   if (flag_unsafe_math_optimizations
    9294              : )
    9295              :                                     {
    9296            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
    9297            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
    9298              : )
    9299              :                                         {
    9300            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1491;
    9301            0 :                                           {
    9302            0 :                                             tree res_op0;
    9303            0 :                                             {
    9304            0 :                                               tree _o1[2], _r1;
    9305            0 :                                               {
    9306            0 :                                                 tree _o2[2], _r2;
    9307            0 :                                                 {
    9308            0 :                                                   tree _o3[1], _r3;
    9309            0 :                                                   _o3[0] = captures[1];
    9310            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG, TREE_TYPE (_o3[0]), 1, _o3[0]);
    9311            0 :                                                   if (!_r3)
    9312            0 :                                                     goto next_after_fail1491;
    9313            0 :                                                   _o2[0] = _r3;
    9314              :                                                 }
    9315            0 :                                                 _o2[1] = captures[2];
    9316            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    9317            0 :                                                 _o1[0] = _r2;
    9318              :                                               }
    9319            0 :                                               _o1[1] = captures[4];
    9320            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9321            0 :                                               res_op0 = _r1;
    9322              :                                             }
    9323            0 :                                             tree _r;
    9324            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP, type, 1, res_op0);
    9325            0 :                                             if (!_r)
    9326            0 :                                               goto next_after_fail1491;
    9327            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1022, __FILE__, __LINE__, true);
    9328              :                                             return _r;
    9329              :                                           }
    9330     67220435 : next_after_fail1491:;
    9331              :                                         }
    9332              :                                     }
    9333              :                                 }
    9334              :                                 break;
    9335              :                               }
    9336              :                             default:;
    9337              :                             }
    9338              :                         }
    9339              :                       break;
    9340              :                     default:;
    9341              :                     }
    9342              :                   break;
    9343              :                 default:;
    9344              :                 }
    9345              :             }
    9346              :           break;
    9347          123 :         case CFN_BUILT_IN_POW:
    9348          123 :           if (call_expr_nargs (_p0) == 2)
    9349              :     {
    9350          123 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9351          123 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    9352          123 :               switch (TREE_CODE (_q20))
    9353              :                 {
    9354            1 :                 case REAL_CST:
    9355            1 :                   {
    9356            1 :                     switch (TREE_CODE (_p1))
    9357              :                       {
    9358            1 :                       case CALL_EXPR:
    9359            1 :                         switch (get_call_combined_fn (_p1))
    9360              :                           {
    9361            0 :                           case CFN_BUILT_IN_EXP:
    9362            0 :                             if (call_expr_nargs (_p1) == 1)
    9363              :     {
    9364            0 :                                 tree _q50 = CALL_EXPR_ARG (_p1, 0);
    9365            0 :                                 {
    9366            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
    9367            0 :                                   if (flag_unsafe_math_optimizations
    9368              : )
    9369              :                                     {
    9370            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
    9371            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
    9372              : )
    9373              :                                         {
    9374            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1492;
    9375            0 :                                           {
    9376            0 :                                             tree res_op0;
    9377            0 :                                             {
    9378            0 :                                               tree _o1[2], _r1;
    9379            0 :                                               {
    9380            0 :                                                 tree _o2[2], _r2;
    9381            0 :                                                 {
    9382            0 :                                                   tree _o3[1], _r3;
    9383            0 :                                                   _o3[0] = captures[1];
    9384            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG, TREE_TYPE (_o3[0]), 1, _o3[0]);
    9385            0 :                                                   if (!_r3)
    9386            0 :                                                     goto next_after_fail1492;
    9387            0 :                                                   _o2[0] = _r3;
    9388              :                                                 }
    9389            0 :                                                 _o2[1] = captures[2];
    9390            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    9391            0 :                                                 _o1[0] = _r2;
    9392              :                                               }
    9393            0 :                                               _o1[1] = captures[4];
    9394            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9395            0 :                                               res_op0 = _r1;
    9396              :                                             }
    9397            0 :                                             tree _r;
    9398            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP, type, 1, res_op0);
    9399            0 :                                             if (!_r)
    9400            0 :                                               goto next_after_fail1492;
    9401            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1022, __FILE__, __LINE__, true);
    9402              :                                             return _r;
    9403              :                                           }
    9404          123 : next_after_fail1492:;
    9405              :                                         }
    9406              :                                     }
    9407              :                                 }
    9408              :                               }
    9409              :                             break;
    9410            0 :                           case CFN_BUILT_IN_EXP2:
    9411            0 :                             if (call_expr_nargs (_p1) == 1)
    9412              :     {
    9413            0 :                                 tree _q50 = CALL_EXPR_ARG (_p1, 0);
    9414            0 :                                 {
    9415            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
    9416            0 :                                   if (flag_unsafe_math_optimizations
    9417              : )
    9418              :                                     {
    9419            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
    9420            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
    9421              : )
    9422              :                                         {
    9423            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1493;
    9424            0 :                                           {
    9425            0 :                                             tree res_op0;
    9426            0 :                                             {
    9427            0 :                                               tree _o1[2], _r1;
    9428            0 :                                               {
    9429            0 :                                                 tree _o2[2], _r2;
    9430            0 :                                                 {
    9431            0 :                                                   tree _o3[1], _r3;
    9432            0 :                                                   _o3[0] = captures[1];
    9433            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG2, TREE_TYPE (_o3[0]), 1, _o3[0]);
    9434            0 :                                                   if (!_r3)
    9435            0 :                                                     goto next_after_fail1493;
    9436            0 :                                                   _o2[0] = _r3;
    9437              :                                                 }
    9438            0 :                                                 _o2[1] = captures[2];
    9439            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    9440            0 :                                                 _o1[0] = _r2;
    9441              :                                               }
    9442            0 :                                               _o1[1] = captures[4];
    9443            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9444            0 :                                               res_op0 = _r1;
    9445              :                                             }
    9446            0 :                                             tree _r;
    9447            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2, type, 1, res_op0);
    9448            0 :                                             if (!_r)
    9449            0 :                                               goto next_after_fail1493;
    9450            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1022, __FILE__, __LINE__, true);
    9451              :                                             return _r;
    9452              :                                           }
    9453          123 : next_after_fail1493:;
    9454              :                                         }
    9455              :                                     }
    9456              :                                 }
    9457              :                               }
    9458              :                             break;
    9459            0 :                           case CFN_BUILT_IN_EXP10:
    9460            0 :                             if (call_expr_nargs (_p1) == 1)
    9461              :     {
    9462            0 :                                 tree _q50 = CALL_EXPR_ARG (_p1, 0);
    9463            0 :                                 {
    9464            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
    9465            0 :                                   if (flag_unsafe_math_optimizations
    9466              : )
    9467              :                                     {
    9468            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
    9469            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
    9470              : )
    9471              :                                         {
    9472            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1494;
    9473            0 :                                           {
    9474            0 :                                             tree res_op0;
    9475            0 :                                             {
    9476            0 :                                               tree _o1[2], _r1;
    9477            0 :                                               {
    9478            0 :                                                 tree _o2[2], _r2;
    9479            0 :                                                 {
    9480            0 :                                                   tree _o3[1], _r3;
    9481            0 :                                                   _o3[0] = captures[1];
    9482            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10, TREE_TYPE (_o3[0]), 1, _o3[0]);
    9483            0 :                                                   if (!_r3)
    9484            0 :                                                     goto next_after_fail1494;
    9485            0 :                                                   _o2[0] = _r3;
    9486              :                                                 }
    9487            0 :                                                 _o2[1] = captures[2];
    9488            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    9489            0 :                                                 _o1[0] = _r2;
    9490              :                                               }
    9491            0 :                                               _o1[1] = captures[4];
    9492            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9493            0 :                                               res_op0 = _r1;
    9494              :                                             }
    9495            0 :                                             tree _r;
    9496            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10, type, 1, res_op0);
    9497            0 :                                             if (!_r)
    9498            0 :                                               goto next_after_fail1494;
    9499            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1022, __FILE__, __LINE__, true);
    9500              :                                             return _r;
    9501              :                                           }
    9502          123 : next_after_fail1494:;
    9503              :                                         }
    9504              :                                     }
    9505              :                                 }
    9506              :                               }
    9507              :                             break;
    9508            0 :                           case CFN_BUILT_IN_POW10:
    9509            0 :                             if (call_expr_nargs (_p1) == 1)
    9510              :     {
    9511            0 :                                 tree _q50 = CALL_EXPR_ARG (_p1, 0);
    9512            0 :                                 {
    9513            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
    9514            0 :                                   if (flag_unsafe_math_optimizations
    9515              : )
    9516              :                                     {
    9517            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
    9518            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
    9519              : )
    9520              :                                         {
    9521            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1495;
    9522            0 :                                           {
    9523            0 :                                             tree res_op0;
    9524            0 :                                             {
    9525            0 :                                               tree _o1[2], _r1;
    9526            0 :                                               {
    9527            0 :                                                 tree _o2[2], _r2;
    9528            0 :                                                 {
    9529            0 :                                                   tree _o3[1], _r3;
    9530            0 :                                                   _o3[0] = captures[1];
    9531            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10, TREE_TYPE (_o3[0]), 1, _o3[0]);
    9532            0 :                                                   if (!_r3)
    9533            0 :                                                     goto next_after_fail1495;
    9534            0 :                                                   _o2[0] = _r3;
    9535              :                                                 }
    9536            0 :                                                 _o2[1] = captures[2];
    9537            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    9538            0 :                                                 _o1[0] = _r2;
    9539              :                                               }
    9540            0 :                                               _o1[1] = captures[4];
    9541            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9542            0 :                                               res_op0 = _r1;
    9543              :                                             }
    9544            0 :                                             tree _r;
    9545            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10, type, 1, res_op0);
    9546            0 :                                             if (!_r)
    9547            0 :                                               goto next_after_fail1495;
    9548            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1022, __FILE__, __LINE__, true);
    9549              :                                             return _r;
    9550              :                                           }
    9551          123 : next_after_fail1495:;
    9552              :                                         }
    9553              :                                     }
    9554              :                                 }
    9555              :                               }
    9556              :                             break;
    9557              :                           default:;
    9558              :                           }
    9559              :                         break;
    9560              :                       default:;
    9561              :                       }
    9562              :                     break;
    9563              :                   }
    9564          123 :                 default:;
    9565              :                 }
    9566          123 :               switch (TREE_CODE (_q21))
    9567              :                 {
    9568           12 :                 case REAL_CST:
    9569           12 :                   {
    9570           12 :                     if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    9571              :                       {
    9572            8 :                         {
    9573            8 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
    9574            8 :                           tree res = generic_simplify_212 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POW);
    9575            8 :                           if (res) return res;
    9576              :                         }
    9577              :                       }
    9578              :                     break;
    9579              :                   }
    9580              :                 default:;
    9581              :                 }
    9582              :             }
    9583              :           break;
    9584           48 :         case CFN_BUILT_IN_EXP10F:
    9585           48 :           if (call_expr_nargs (_p0) == 1)
    9586              :     {
    9587           48 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9588           48 :               switch (TREE_CODE (_p1))
    9589              :                 {
    9590           24 :                 case CALL_EXPR:
    9591           24 :                   switch (get_call_combined_fn (_p1))
    9592              :                     {
    9593           24 :                     case CFN_BUILT_IN_EXP10F:
    9594           24 :                       if (call_expr_nargs (_p1) == 1)
    9595              :     {
    9596           24 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9597           24 :                           {
    9598           24 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    9599           24 :                             if (flag_unsafe_math_optimizations
    9600              : )
    9601              :                               {
    9602           24 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1496;
    9603           24 :                                 {
    9604           24 :                                   tree res_op0;
    9605           24 :                                   {
    9606           24 :                                     tree _o1[2], _r1;
    9607           24 :                                     _o1[0] = captures[1];
    9608           24 :                                     _o1[1] = captures[3];
    9609           24 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9610           24 :                                     res_op0 = _r1;
    9611              :                                   }
    9612           24 :                                   tree _r;
    9613           24 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10F, type, 1, res_op0);
    9614           24 :                                   if (!_r)
    9615            0 :                                     goto next_after_fail1496;
    9616           24 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1021, __FILE__, __LINE__, true);
    9617              :                                   return _r;
    9618              :                                 }
    9619     67220435 : next_after_fail1496:;
    9620              :                               }
    9621              :                           }
    9622              :                         }
    9623              :                       break;
    9624            0 :                     case CFN_BUILT_IN_POWF:
    9625            0 :                       if (call_expr_nargs (_p1) == 2)
    9626              :     {
    9627            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9628            0 :                           tree _q41 = CALL_EXPR_ARG (_p1, 1);
    9629            0 :                           switch (TREE_CODE (_q40))
    9630              :                             {
    9631            0 :                             case REAL_CST:
    9632            0 :                               {
    9633            0 :                                 {
    9634            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
    9635            0 :                                   if (flag_unsafe_math_optimizations
    9636              : )
    9637              :                                     {
    9638            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
    9639            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
    9640              : )
    9641              :                                         {
    9642            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1497;
    9643            0 :                                           {
    9644            0 :                                             tree res_op0;
    9645            0 :                                             {
    9646            0 :                                               tree _o1[2], _r1;
    9647            0 :                                               {
    9648            0 :                                                 tree _o2[2], _r2;
    9649            0 :                                                 {
    9650            0 :                                                   tree _o3[1], _r3;
    9651            0 :                                                   _o3[0] = captures[1];
    9652            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10F, TREE_TYPE (_o3[0]), 1, _o3[0]);
    9653            0 :                                                   if (!_r3)
    9654            0 :                                                     goto next_after_fail1497;
    9655            0 :                                                   _o2[0] = _r3;
    9656              :                                                 }
    9657            0 :                                                 _o2[1] = captures[2];
    9658            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    9659            0 :                                                 _o1[0] = _r2;
    9660              :                                               }
    9661            0 :                                               _o1[1] = captures[4];
    9662            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9663            0 :                                               res_op0 = _r1;
    9664              :                                             }
    9665            0 :                                             tree _r;
    9666            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10F, type, 1, res_op0);
    9667            0 :                                             if (!_r)
    9668            0 :                                               goto next_after_fail1497;
    9669            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1022, __FILE__, __LINE__, true);
    9670              :                                             return _r;
    9671              :                                           }
    9672     67220435 : next_after_fail1497:;
    9673              :                                         }
    9674              :                                     }
    9675              :                                 }
    9676              :                                 break;
    9677              :                               }
    9678              :                             default:;
    9679              :                             }
    9680              :                         }
    9681              :                       break;
    9682              :                     default:;
    9683              :                     }
    9684              :                   break;
    9685              :                 default:;
    9686              :                 }
    9687              :             }
    9688              :           break;
    9689           48 :         case CFN_BUILT_IN_EXP10L:
    9690           48 :           if (call_expr_nargs (_p0) == 1)
    9691              :     {
    9692           48 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9693           48 :               switch (TREE_CODE (_p1))
    9694              :                 {
    9695           24 :                 case CALL_EXPR:
    9696           24 :                   switch (get_call_combined_fn (_p1))
    9697              :                     {
    9698           24 :                     case CFN_BUILT_IN_EXP10L:
    9699           24 :                       if (call_expr_nargs (_p1) == 1)
    9700              :     {
    9701           24 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9702           24 :                           {
    9703           24 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    9704           24 :                             if (flag_unsafe_math_optimizations
    9705              : )
    9706              :                               {
    9707           24 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1498;
    9708           24 :                                 {
    9709           24 :                                   tree res_op0;
    9710           24 :                                   {
    9711           24 :                                     tree _o1[2], _r1;
    9712           24 :                                     _o1[0] = captures[1];
    9713           24 :                                     _o1[1] = captures[3];
    9714           24 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9715           24 :                                     res_op0 = _r1;
    9716              :                                   }
    9717           24 :                                   tree _r;
    9718           24 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10L, type, 1, res_op0);
    9719           24 :                                   if (!_r)
    9720            0 :                                     goto next_after_fail1498;
    9721           24 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1021, __FILE__, __LINE__, true);
    9722              :                                   return _r;
    9723              :                                 }
    9724     67220435 : next_after_fail1498:;
    9725              :                               }
    9726              :                           }
    9727              :                         }
    9728              :                       break;
    9729            0 :                     case CFN_BUILT_IN_POWL:
    9730            0 :                       if (call_expr_nargs (_p1) == 2)
    9731              :     {
    9732            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9733            0 :                           tree _q41 = CALL_EXPR_ARG (_p1, 1);
    9734            0 :                           switch (TREE_CODE (_q40))
    9735              :                             {
    9736            0 :                             case REAL_CST:
    9737            0 :                               {
    9738            0 :                                 {
    9739            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
    9740            0 :                                   if (flag_unsafe_math_optimizations
    9741              : )
    9742              :                                     {
    9743            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
    9744            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
    9745              : )
    9746              :                                         {
    9747            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1499;
    9748            0 :                                           {
    9749            0 :                                             tree res_op0;
    9750            0 :                                             {
    9751            0 :                                               tree _o1[2], _r1;
    9752            0 :                                               {
    9753            0 :                                                 tree _o2[2], _r2;
    9754            0 :                                                 {
    9755            0 :                                                   tree _o3[1], _r3;
    9756            0 :                                                   _o3[0] = captures[1];
    9757            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10L, TREE_TYPE (_o3[0]), 1, _o3[0]);
    9758            0 :                                                   if (!_r3)
    9759            0 :                                                     goto next_after_fail1499;
    9760            0 :                                                   _o2[0] = _r3;
    9761              :                                                 }
    9762            0 :                                                 _o2[1] = captures[2];
    9763            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    9764            0 :                                                 _o1[0] = _r2;
    9765              :                                               }
    9766            0 :                                               _o1[1] = captures[4];
    9767            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9768            0 :                                               res_op0 = _r1;
    9769              :                                             }
    9770            0 :                                             tree _r;
    9771            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10L, type, 1, res_op0);
    9772            0 :                                             if (!_r)
    9773            0 :                                               goto next_after_fail1499;
    9774            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1022, __FILE__, __LINE__, true);
    9775              :                                             return _r;
    9776              :                                           }
    9777     67220435 : next_after_fail1499:;
    9778              :                                         }
    9779              :                                     }
    9780              :                                 }
    9781              :                                 break;
    9782              :                               }
    9783              :                             default:;
    9784              :                             }
    9785              :                         }
    9786              :                       break;
    9787              :                     default:;
    9788              :                     }
    9789              :                   break;
    9790              :                 default:;
    9791              :                 }
    9792              :             }
    9793              :           break;
    9794           18 :         case CFN_BUILT_IN_CBRT:
    9795           18 :           if (call_expr_nargs (_p0) == 1)
    9796              :     {
    9797           18 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9798           18 :               switch (TREE_CODE (_p1))
    9799              :                 {
    9800           14 :                 case CALL_EXPR:
    9801           14 :                   switch (get_call_combined_fn (_p1))
    9802              :                     {
    9803           14 :                     case CFN_BUILT_IN_CBRT:
    9804           14 :                       if (call_expr_nargs (_p1) == 1)
    9805              :     {
    9806           14 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9807           14 :                           {
    9808           14 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    9809           14 :                             if (flag_unsafe_math_optimizations
    9810              : )
    9811              :                               {
    9812           12 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1500;
    9813           12 :                                 {
    9814           12 :                                   tree res_op0;
    9815           12 :                                   {
    9816           12 :                                     tree _o1[2], _r1;
    9817           12 :                                     _o1[0] = captures[1];
    9818           12 :                                     _o1[1] = captures[3];
    9819           12 :                                     _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9820           12 :                                     res_op0 = _r1;
    9821              :                                   }
    9822           12 :                                   tree _r;
    9823           12 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_CBRT, type, 1, res_op0);
    9824           12 :                                   if (!_r)
    9825            0 :                                     goto next_after_fail1500;
    9826           12 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1020, __FILE__, __LINE__, true);
    9827              :                                   return _r;
    9828              :                                 }
    9829     67220435 : next_after_fail1500:;
    9830              :                               }
    9831              :                           }
    9832              :                         }
    9833              :                       break;
    9834              :                     default:;
    9835              :                     }
    9836              :                   break;
    9837              :                 default:;
    9838              :                 }
    9839              :             }
    9840              :           break;
    9841           48 :         case CFN_BUILT_IN_EXP2:
    9842           48 :           if (call_expr_nargs (_p0) == 1)
    9843              :     {
    9844           48 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9845           48 :               switch (TREE_CODE (_p1))
    9846              :                 {
    9847           24 :                 case CALL_EXPR:
    9848           24 :                   switch (get_call_combined_fn (_p1))
    9849              :                     {
    9850            0 :                     case CFN_BUILT_IN_POW:
    9851            0 :                       if (call_expr_nargs (_p1) == 2)
    9852              :     {
    9853            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9854            0 :                           tree _q41 = CALL_EXPR_ARG (_p1, 1);
    9855            0 :                           switch (TREE_CODE (_q40))
    9856              :                             {
    9857            0 :                             case REAL_CST:
    9858            0 :                               {
    9859            0 :                                 {
    9860            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
    9861            0 :                                   if (flag_unsafe_math_optimizations
    9862              : )
    9863              :                                     {
    9864            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
    9865            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
    9866              : )
    9867              :                                         {
    9868            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1501;
    9869            0 :                                           {
    9870            0 :                                             tree res_op0;
    9871            0 :                                             {
    9872            0 :                                               tree _o1[2], _r1;
    9873            0 :                                               {
    9874            0 :                                                 tree _o2[2], _r2;
    9875            0 :                                                 {
    9876            0 :                                                   tree _o3[1], _r3;
    9877            0 :                                                   _o3[0] = captures[1];
    9878            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG2, TREE_TYPE (_o3[0]), 1, _o3[0]);
    9879            0 :                                                   if (!_r3)
    9880            0 :                                                     goto next_after_fail1501;
    9881            0 :                                                   _o2[0] = _r3;
    9882              :                                                 }
    9883            0 :                                                 _o2[1] = captures[2];
    9884            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    9885            0 :                                                 _o1[0] = _r2;
    9886              :                                               }
    9887            0 :                                               _o1[1] = captures[4];
    9888            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9889            0 :                                               res_op0 = _r1;
    9890              :                                             }
    9891            0 :                                             tree _r;
    9892            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2, type, 1, res_op0);
    9893            0 :                                             if (!_r)
    9894            0 :                                               goto next_after_fail1501;
    9895            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1022, __FILE__, __LINE__, true);
    9896              :                                             return _r;
    9897              :                                           }
    9898     67220435 : next_after_fail1501:;
    9899              :                                         }
    9900              :                                     }
    9901              :                                 }
    9902              :                                 break;
    9903              :                               }
    9904              :                             default:;
    9905              :                             }
    9906              :                         }
    9907              :                       break;
    9908           24 :                     case CFN_BUILT_IN_EXP2:
    9909           24 :                       if (call_expr_nargs (_p1) == 1)
    9910              :     {
    9911           24 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9912           24 :                           {
    9913           24 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    9914           24 :                             if (flag_unsafe_math_optimizations
    9915              : )
    9916              :                               {
    9917           24 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1502;
    9918           24 :                                 {
    9919           24 :                                   tree res_op0;
    9920           24 :                                   {
    9921           24 :                                     tree _o1[2], _r1;
    9922           24 :                                     _o1[0] = captures[1];
    9923           24 :                                     _o1[1] = captures[3];
    9924           24 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9925           24 :                                     res_op0 = _r1;
    9926              :                                   }
    9927           24 :                                   tree _r;
    9928           24 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2, type, 1, res_op0);
    9929           24 :                                   if (!_r)
    9930            0 :                                     goto next_after_fail1502;
    9931           24 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1021, __FILE__, __LINE__, true);
    9932              :                                   return _r;
    9933              :                                 }
    9934     67220435 : next_after_fail1502:;
    9935              :                               }
    9936              :                           }
    9937              :                         }
    9938              :                       break;
    9939              :                     default:;
    9940              :                     }
    9941              :                   break;
    9942              :                 default:;
    9943              :                 }
    9944              :             }
    9945              :           break;
    9946           66 :         case CFN_BUILT_IN_EXPF:
    9947           66 :           if (call_expr_nargs (_p0) == 1)
    9948              :     {
    9949           66 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9950           66 :               switch (TREE_CODE (_p1))
    9951              :                 {
    9952           36 :                 case CALL_EXPR:
    9953           36 :                   switch (get_call_combined_fn (_p1))
    9954              :                     {
    9955           29 :                     case CFN_BUILT_IN_EXPF:
    9956           29 :                       if (call_expr_nargs (_p1) == 1)
    9957              :     {
    9958           29 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9959           29 :                           {
    9960           29 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    9961           29 :                             if (flag_unsafe_math_optimizations
    9962              : )
    9963              :                               {
    9964           25 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1503;
    9965           25 :                                 {
    9966           25 :                                   tree res_op0;
    9967           25 :                                   {
    9968           25 :                                     tree _o1[2], _r1;
    9969           25 :                                     _o1[0] = captures[1];
    9970           25 :                                     _o1[1] = captures[3];
    9971           25 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9972           25 :                                     res_op0 = _r1;
    9973              :                                   }
    9974           25 :                                   tree _r;
    9975           25 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXPF, type, 1, res_op0);
    9976           25 :                                   if (!_r)
    9977            0 :                                     goto next_after_fail1503;
    9978           25 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1021, __FILE__, __LINE__, true);
    9979              :                                   return _r;
    9980              :                                 }
    9981     67220435 : next_after_fail1503:;
    9982              :                               }
    9983              :                           }
    9984              :                         }
    9985              :                       break;
    9986            0 :                     case CFN_BUILT_IN_POWF:
    9987            0 :                       if (call_expr_nargs (_p1) == 2)
    9988              :     {
    9989            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9990            0 :                           tree _q41 = CALL_EXPR_ARG (_p1, 1);
    9991            0 :                           switch (TREE_CODE (_q40))
    9992              :                             {
    9993            0 :                             case REAL_CST:
    9994            0 :                               {
    9995            0 :                                 {
    9996            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
    9997            0 :                                   if (flag_unsafe_math_optimizations
    9998              : )
    9999              :                                     {
   10000            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   10001            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   10002              : )
   10003              :                                         {
   10004            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1504;
   10005            0 :                                           {
   10006            0 :                                             tree res_op0;
   10007            0 :                                             {
   10008            0 :                                               tree _o1[2], _r1;
   10009            0 :                                               {
   10010            0 :                                                 tree _o2[2], _r2;
   10011            0 :                                                 {
   10012            0 :                                                   tree _o3[1], _r3;
   10013            0 :                                                   _o3[0] = captures[1];
   10014            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOGF, TREE_TYPE (_o3[0]), 1, _o3[0]);
   10015            0 :                                                   if (!_r3)
   10016            0 :                                                     goto next_after_fail1504;
   10017            0 :                                                   _o2[0] = _r3;
   10018              :                                                 }
   10019            0 :                                                 _o2[1] = captures[2];
   10020            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   10021            0 :                                                 _o1[0] = _r2;
   10022              :                                               }
   10023            0 :                                               _o1[1] = captures[4];
   10024            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10025            0 :                                               res_op0 = _r1;
   10026              :                                             }
   10027            0 :                                             tree _r;
   10028            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXPF, type, 1, res_op0);
   10029            0 :                                             if (!_r)
   10030            0 :                                               goto next_after_fail1504;
   10031            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1022, __FILE__, __LINE__, true);
   10032              :                                             return _r;
   10033              :                                           }
   10034     67220435 : next_after_fail1504:;
   10035              :                                         }
   10036              :                                     }
   10037              :                                 }
   10038              :                                 break;
   10039              :                               }
   10040              :                             default:;
   10041              :                             }
   10042              :                         }
   10043              :                       break;
   10044              :                     default:;
   10045              :                     }
   10046              :                   break;
   10047              :                 default:;
   10048              :                 }
   10049              :             }
   10050              :           break;
   10051           59 :         case CFN_BUILT_IN_EXPL:
   10052           59 :           if (call_expr_nargs (_p0) == 1)
   10053              :     {
   10054           59 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10055           59 :               switch (TREE_CODE (_p1))
   10056              :                 {
   10057           29 :                 case CALL_EXPR:
   10058           29 :                   switch (get_call_combined_fn (_p1))
   10059              :                     {
   10060           29 :                     case CFN_BUILT_IN_EXPL:
   10061           29 :                       if (call_expr_nargs (_p1) == 1)
   10062              :     {
   10063           29 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   10064           29 :                           {
   10065           29 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   10066           29 :                             if (flag_unsafe_math_optimizations
   10067              : )
   10068              :                               {
   10069           25 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1505;
   10070           25 :                                 {
   10071           25 :                                   tree res_op0;
   10072           25 :                                   {
   10073           25 :                                     tree _o1[2], _r1;
   10074           25 :                                     _o1[0] = captures[1];
   10075           25 :                                     _o1[1] = captures[3];
   10076           25 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10077           25 :                                     res_op0 = _r1;
   10078              :                                   }
   10079           25 :                                   tree _r;
   10080           25 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXPL, type, 1, res_op0);
   10081           25 :                                   if (!_r)
   10082            0 :                                     goto next_after_fail1505;
   10083           25 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1021, __FILE__, __LINE__, true);
   10084              :                                   return _r;
   10085              :                                 }
   10086     67220435 : next_after_fail1505:;
   10087              :                               }
   10088              :                           }
   10089              :                         }
   10090              :                       break;
   10091            0 :                     case CFN_BUILT_IN_POWL:
   10092            0 :                       if (call_expr_nargs (_p1) == 2)
   10093              :     {
   10094            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   10095            0 :                           tree _q41 = CALL_EXPR_ARG (_p1, 1);
   10096            0 :                           switch (TREE_CODE (_q40))
   10097              :                             {
   10098            0 :                             case REAL_CST:
   10099            0 :                               {
   10100            0 :                                 {
   10101            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
   10102            0 :                                   if (flag_unsafe_math_optimizations
   10103              : )
   10104              :                                     {
   10105            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   10106            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   10107              : )
   10108              :                                         {
   10109            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1506;
   10110            0 :                                           {
   10111            0 :                                             tree res_op0;
   10112            0 :                                             {
   10113            0 :                                               tree _o1[2], _r1;
   10114            0 :                                               {
   10115            0 :                                                 tree _o2[2], _r2;
   10116            0 :                                                 {
   10117            0 :                                                   tree _o3[1], _r3;
   10118            0 :                                                   _o3[0] = captures[1];
   10119            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOGL, TREE_TYPE (_o3[0]), 1, _o3[0]);
   10120            0 :                                                   if (!_r3)
   10121            0 :                                                     goto next_after_fail1506;
   10122            0 :                                                   _o2[0] = _r3;
   10123              :                                                 }
   10124            0 :                                                 _o2[1] = captures[2];
   10125            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   10126            0 :                                                 _o1[0] = _r2;
   10127              :                                               }
   10128            0 :                                               _o1[1] = captures[4];
   10129            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10130            0 :                                               res_op0 = _r1;
   10131              :                                             }
   10132            0 :                                             tree _r;
   10133            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXPL, type, 1, res_op0);
   10134            0 :                                             if (!_r)
   10135            0 :                                               goto next_after_fail1506;
   10136            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1022, __FILE__, __LINE__, true);
   10137              :                                             return _r;
   10138              :                                           }
   10139     67220435 : next_after_fail1506:;
   10140              :                                         }
   10141              :                                     }
   10142              :                                 }
   10143              :                                 break;
   10144              :                               }
   10145              :                             default:;
   10146              :                             }
   10147              :                         }
   10148              :                       break;
   10149              :                     default:;
   10150              :                     }
   10151              :                   break;
   10152              :                 default:;
   10153              :                 }
   10154              :             }
   10155              :           break;
   10156           19 :         case CFN_BUILT_IN_POWF:
   10157           19 :           if (call_expr_nargs (_p0) == 2)
   10158              :     {
   10159           19 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10160           19 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   10161           19 :               switch (TREE_CODE (_q20))
   10162              :                 {
   10163            0 :                 case REAL_CST:
   10164            0 :                   {
   10165            0 :                     switch (TREE_CODE (_p1))
   10166              :                       {
   10167            0 :                       case CALL_EXPR:
   10168            0 :                         switch (get_call_combined_fn (_p1))
   10169              :                           {
   10170            0 :                           case CFN_BUILT_IN_EXP10F:
   10171            0 :                             if (call_expr_nargs (_p1) == 1)
   10172              :     {
   10173            0 :                                 tree _q50 = CALL_EXPR_ARG (_p1, 0);
   10174            0 :                                 {
   10175            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   10176            0 :                                   if (flag_unsafe_math_optimizations
   10177              : )
   10178              :                                     {
   10179            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   10180            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   10181              : )
   10182              :                                         {
   10183            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1507;
   10184            0 :                                           {
   10185            0 :                                             tree res_op0;
   10186            0 :                                             {
   10187            0 :                                               tree _o1[2], _r1;
   10188            0 :                                               {
   10189            0 :                                                 tree _o2[2], _r2;
   10190            0 :                                                 {
   10191            0 :                                                   tree _o3[1], _r3;
   10192            0 :                                                   _o3[0] = captures[1];
   10193            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10F, TREE_TYPE (_o3[0]), 1, _o3[0]);
   10194            0 :                                                   if (!_r3)
   10195            0 :                                                     goto next_after_fail1507;
   10196            0 :                                                   _o2[0] = _r3;
   10197              :                                                 }
   10198            0 :                                                 _o2[1] = captures[2];
   10199            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   10200            0 :                                                 _o1[0] = _r2;
   10201              :                                               }
   10202            0 :                                               _o1[1] = captures[4];
   10203            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10204            0 :                                               res_op0 = _r1;
   10205              :                                             }
   10206            0 :                                             tree _r;
   10207            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10F, type, 1, res_op0);
   10208            0 :                                             if (!_r)
   10209            0 :                                               goto next_after_fail1507;
   10210            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1022, __FILE__, __LINE__, true);
   10211              :                                             return _r;
   10212              :                                           }
   10213           19 : next_after_fail1507:;
   10214              :                                         }
   10215              :                                     }
   10216              :                                 }
   10217              :                               }
   10218              :                             break;
   10219            0 :                           case CFN_BUILT_IN_EXPF:
   10220            0 :                             if (call_expr_nargs (_p1) == 1)
   10221              :     {
   10222            0 :                                 tree _q50 = CALL_EXPR_ARG (_p1, 0);
   10223            0 :                                 {
   10224            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   10225            0 :                                   if (flag_unsafe_math_optimizations
   10226              : )
   10227              :                                     {
   10228            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   10229            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   10230              : )
   10231              :                                         {
   10232            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1508;
   10233            0 :                                           {
   10234            0 :                                             tree res_op0;
   10235            0 :                                             {
   10236            0 :                                               tree _o1[2], _r1;
   10237            0 :                                               {
   10238            0 :                                                 tree _o2[2], _r2;
   10239            0 :                                                 {
   10240            0 :                                                   tree _o3[1], _r3;
   10241            0 :                                                   _o3[0] = captures[1];
   10242            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOGF, TREE_TYPE (_o3[0]), 1, _o3[0]);
   10243            0 :                                                   if (!_r3)
   10244            0 :                                                     goto next_after_fail1508;
   10245            0 :                                                   _o2[0] = _r3;
   10246              :                                                 }
   10247            0 :                                                 _o2[1] = captures[2];
   10248            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   10249            0 :                                                 _o1[0] = _r2;
   10250              :                                               }
   10251            0 :                                               _o1[1] = captures[4];
   10252            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10253            0 :                                               res_op0 = _r1;
   10254              :                                             }
   10255            0 :                                             tree _r;
   10256            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXPF, type, 1, res_op0);
   10257            0 :                                             if (!_r)
   10258            0 :                                               goto next_after_fail1508;
   10259            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1022, __FILE__, __LINE__, true);
   10260              :                                             return _r;
   10261              :                                           }
   10262           19 : next_after_fail1508:;
   10263              :                                         }
   10264              :                                     }
   10265              :                                 }
   10266              :                               }
   10267              :                             break;
   10268            0 :                           case CFN_BUILT_IN_POW10F:
   10269            0 :                             if (call_expr_nargs (_p1) == 1)
   10270              :     {
   10271            0 :                                 tree _q50 = CALL_EXPR_ARG (_p1, 0);
   10272            0 :                                 {
   10273            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   10274            0 :                                   if (flag_unsafe_math_optimizations
   10275              : )
   10276              :                                     {
   10277            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   10278            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   10279              : )
   10280              :                                         {
   10281            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1509;
   10282            0 :                                           {
   10283            0 :                                             tree res_op0;
   10284            0 :                                             {
   10285            0 :                                               tree _o1[2], _r1;
   10286            0 :                                               {
   10287            0 :                                                 tree _o2[2], _r2;
   10288            0 :                                                 {
   10289            0 :                                                   tree _o3[1], _r3;
   10290            0 :                                                   _o3[0] = captures[1];
   10291            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10F, TREE_TYPE (_o3[0]), 1, _o3[0]);
   10292            0 :                                                   if (!_r3)
   10293            0 :                                                     goto next_after_fail1509;
   10294            0 :                                                   _o2[0] = _r3;
   10295              :                                                 }
   10296            0 :                                                 _o2[1] = captures[2];
   10297            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   10298            0 :                                                 _o1[0] = _r2;
   10299              :                                               }
   10300            0 :                                               _o1[1] = captures[4];
   10301            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10302            0 :                                               res_op0 = _r1;
   10303              :                                             }
   10304            0 :                                             tree _r;
   10305            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10F, type, 1, res_op0);
   10306            0 :                                             if (!_r)
   10307            0 :                                               goto next_after_fail1509;
   10308            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1022, __FILE__, __LINE__, true);
   10309              :                                             return _r;
   10310              :                                           }
   10311           19 : next_after_fail1509:;
   10312              :                                         }
   10313              :                                     }
   10314              :                                 }
   10315              :                               }
   10316              :                             break;
   10317            0 :                           case CFN_BUILT_IN_EXP2F:
   10318            0 :                             if (call_expr_nargs (_p1) == 1)
   10319              :     {
   10320            0 :                                 tree _q50 = CALL_EXPR_ARG (_p1, 0);
   10321            0 :                                 {
   10322            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   10323            0 :                                   if (flag_unsafe_math_optimizations
   10324              : )
   10325              :                                     {
   10326            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   10327            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   10328              : )
   10329              :                                         {
   10330            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1510;
   10331            0 :                                           {
   10332            0 :                                             tree res_op0;
   10333            0 :                                             {
   10334            0 :                                               tree _o1[2], _r1;
   10335            0 :                                               {
   10336            0 :                                                 tree _o2[2], _r2;
   10337            0 :                                                 {
   10338            0 :                                                   tree _o3[1], _r3;
   10339            0 :                                                   _o3[0] = captures[1];
   10340            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG2F, TREE_TYPE (_o3[0]), 1, _o3[0]);
   10341            0 :                                                   if (!_r3)
   10342            0 :                                                     goto next_after_fail1510;
   10343            0 :                                                   _o2[0] = _r3;
   10344              :                                                 }
   10345            0 :                                                 _o2[1] = captures[2];
   10346            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   10347            0 :                                                 _o1[0] = _r2;
   10348              :                                               }
   10349            0 :                                               _o1[1] = captures[4];
   10350            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10351            0 :                                               res_op0 = _r1;
   10352              :                                             }
   10353            0 :                                             tree _r;
   10354            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2F, type, 1, res_op0);
   10355            0 :                                             if (!_r)
   10356            0 :                                               goto next_after_fail1510;
   10357            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1022, __FILE__, __LINE__, true);
   10358              :                                             return _r;
   10359              :                                           }
   10360           19 : next_after_fail1510:;
   10361              :                                         }
   10362              :                                     }
   10363              :                                 }
   10364              :                               }
   10365              :                             break;
   10366              :                           default:;
   10367              :                           }
   10368              :                         break;
   10369              :                       default:;
   10370              :                       }
   10371              :                     break;
   10372              :                   }
   10373           19 :                 default:;
   10374              :                 }
   10375           19 :               switch (TREE_CODE (_q21))
   10376              :                 {
   10377            5 :                 case REAL_CST:
   10378            5 :                   {
   10379            5 :                     if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
   10380              :                       {
   10381            0 :                         {
   10382            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
   10383            0 :                           tree res = generic_simplify_212 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWF);
   10384            0 :                           if (res) return res;
   10385              :                         }
   10386              :                       }
   10387              :                     break;
   10388              :                   }
   10389              :                 default:;
   10390              :                 }
   10391              :             }
   10392              :           break;
   10393           12 :         case CFN_BUILT_IN_POWL:
   10394           12 :           if (call_expr_nargs (_p0) == 2)
   10395              :     {
   10396           12 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10397           12 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   10398           12 :               switch (TREE_CODE (_q20))
   10399              :                 {
   10400            0 :                 case REAL_CST:
   10401            0 :                   {
   10402            0 :                     switch (TREE_CODE (_p1))
   10403              :                       {
   10404            0 :                       case CALL_EXPR:
   10405            0 :                         switch (get_call_combined_fn (_p1))
   10406              :                           {
   10407            0 :                           case CFN_BUILT_IN_EXP10L:
   10408            0 :                             if (call_expr_nargs (_p1) == 1)
   10409              :     {
   10410            0 :                                 tree _q50 = CALL_EXPR_ARG (_p1, 0);
   10411            0 :                                 {
   10412            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   10413            0 :                                   if (flag_unsafe_math_optimizations
   10414              : )
   10415              :                                     {
   10416            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   10417            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   10418              : )
   10419              :                                         {
   10420            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1511;
   10421            0 :                                           {
   10422            0 :                                             tree res_op0;
   10423            0 :                                             {
   10424            0 :                                               tree _o1[2], _r1;
   10425            0 :                                               {
   10426            0 :                                                 tree _o2[2], _r2;
   10427            0 :                                                 {
   10428            0 :                                                   tree _o3[1], _r3;
   10429            0 :                                                   _o3[0] = captures[1];
   10430            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10L, TREE_TYPE (_o3[0]), 1, _o3[0]);
   10431            0 :                                                   if (!_r3)
   10432            0 :                                                     goto next_after_fail1511;
   10433            0 :                                                   _o2[0] = _r3;
   10434              :                                                 }
   10435            0 :                                                 _o2[1] = captures[2];
   10436            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   10437            0 :                                                 _o1[0] = _r2;
   10438              :                                               }
   10439            0 :                                               _o1[1] = captures[4];
   10440            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10441            0 :                                               res_op0 = _r1;
   10442              :                                             }
   10443            0 :                                             tree _r;
   10444            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10L, type, 1, res_op0);
   10445            0 :                                             if (!_r)
   10446            0 :                                               goto next_after_fail1511;
   10447            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1022, __FILE__, __LINE__, true);
   10448              :                                             return _r;
   10449              :                                           }
   10450           12 : next_after_fail1511:;
   10451              :                                         }
   10452              :                                     }
   10453              :                                 }
   10454              :                               }
   10455              :                             break;
   10456            0 :                           case CFN_BUILT_IN_EXPL:
   10457            0 :                             if (call_expr_nargs (_p1) == 1)
   10458              :     {
   10459            0 :                                 tree _q50 = CALL_EXPR_ARG (_p1, 0);
   10460            0 :                                 {
   10461            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   10462            0 :                                   if (flag_unsafe_math_optimizations
   10463              : )
   10464              :                                     {
   10465            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   10466            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   10467              : )
   10468              :                                         {
   10469            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1512;
   10470            0 :                                           {
   10471            0 :                                             tree res_op0;
   10472            0 :                                             {
   10473            0 :                                               tree _o1[2], _r1;
   10474            0 :                                               {
   10475            0 :                                                 tree _o2[2], _r2;
   10476            0 :                                                 {
   10477            0 :                                                   tree _o3[1], _r3;
   10478            0 :                                                   _o3[0] = captures[1];
   10479            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOGL, TREE_TYPE (_o3[0]), 1, _o3[0]);
   10480            0 :                                                   if (!_r3)
   10481            0 :                                                     goto next_after_fail1512;
   10482            0 :                                                   _o2[0] = _r3;
   10483              :                                                 }
   10484            0 :                                                 _o2[1] = captures[2];
   10485            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   10486            0 :                                                 _o1[0] = _r2;
   10487              :                                               }
   10488            0 :                                               _o1[1] = captures[4];
   10489            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10490            0 :                                               res_op0 = _r1;
   10491              :                                             }
   10492            0 :                                             tree _r;
   10493            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXPL, type, 1, res_op0);
   10494            0 :                                             if (!_r)
   10495            0 :                                               goto next_after_fail1512;
   10496            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1022, __FILE__, __LINE__, true);
   10497              :                                             return _r;
   10498              :                                           }
   10499           12 : next_after_fail1512:;
   10500              :                                         }
   10501              :                                     }
   10502              :                                 }
   10503              :                               }
   10504              :                             break;
   10505            0 :                           case CFN_BUILT_IN_POW10L:
   10506            0 :                             if (call_expr_nargs (_p1) == 1)
   10507              :     {
   10508            0 :                                 tree _q50 = CALL_EXPR_ARG (_p1, 0);
   10509            0 :                                 {
   10510            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   10511            0 :                                   if (flag_unsafe_math_optimizations
   10512              : )
   10513              :                                     {
   10514            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   10515            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   10516              : )
   10517              :                                         {
   10518            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1513;
   10519            0 :                                           {
   10520            0 :                                             tree res_op0;
   10521            0 :                                             {
   10522            0 :                                               tree _o1[2], _r1;
   10523            0 :                                               {
   10524            0 :                                                 tree _o2[2], _r2;
   10525            0 :                                                 {
   10526            0 :                                                   tree _o3[1], _r3;
   10527            0 :                                                   _o3[0] = captures[1];
   10528            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10L, TREE_TYPE (_o3[0]), 1, _o3[0]);
   10529            0 :                                                   if (!_r3)
   10530            0 :                                                     goto next_after_fail1513;
   10531            0 :                                                   _o2[0] = _r3;
   10532              :                                                 }
   10533            0 :                                                 _o2[1] = captures[2];
   10534            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   10535            0 :                                                 _o1[0] = _r2;
   10536              :                                               }
   10537            0 :                                               _o1[1] = captures[4];
   10538            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10539            0 :                                               res_op0 = _r1;
   10540              :                                             }
   10541            0 :                                             tree _r;
   10542            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10L, type, 1, res_op0);
   10543            0 :                                             if (!_r)
   10544            0 :                                               goto next_after_fail1513;
   10545            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1022, __FILE__, __LINE__, true);
   10546              :                                             return _r;
   10547              :                                           }
   10548           12 : next_after_fail1513:;
   10549              :                                         }
   10550              :                                     }
   10551              :                                 }
   10552              :                               }
   10553              :                             break;
   10554            0 :                           case CFN_BUILT_IN_EXP2L:
   10555            0 :                             if (call_expr_nargs (_p1) == 1)
   10556              :     {
   10557            0 :                                 tree _q50 = CALL_EXPR_ARG (_p1, 0);
   10558            0 :                                 {
   10559            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   10560            0 :                                   if (flag_unsafe_math_optimizations
   10561              : )
   10562              :                                     {
   10563            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   10564            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   10565              : )
   10566              :                                         {
   10567            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1514;
   10568            0 :                                           {
   10569            0 :                                             tree res_op0;
   10570            0 :                                             {
   10571            0 :                                               tree _o1[2], _r1;
   10572            0 :                                               {
   10573            0 :                                                 tree _o2[2], _r2;
   10574            0 :                                                 {
   10575            0 :                                                   tree _o3[1], _r3;
   10576            0 :                                                   _o3[0] = captures[1];
   10577            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG2L, TREE_TYPE (_o3[0]), 1, _o3[0]);
   10578            0 :                                                   if (!_r3)
   10579            0 :                                                     goto next_after_fail1514;
   10580            0 :                                                   _o2[0] = _r3;
   10581              :                                                 }
   10582            0 :                                                 _o2[1] = captures[2];
   10583            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   10584            0 :                                                 _o1[0] = _r2;
   10585              :                                               }
   10586            0 :                                               _o1[1] = captures[4];
   10587            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10588            0 :                                               res_op0 = _r1;
   10589              :                                             }
   10590            0 :                                             tree _r;
   10591            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2L, type, 1, res_op0);
   10592            0 :                                             if (!_r)
   10593            0 :                                               goto next_after_fail1514;
   10594            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1022, __FILE__, __LINE__, true);
   10595              :                                             return _r;
   10596              :                                           }
   10597           12 : next_after_fail1514:;
   10598              :                                         }
   10599              :                                     }
   10600              :                                 }
   10601              :                               }
   10602              :                             break;
   10603              :                           default:;
   10604              :                           }
   10605              :                         break;
   10606              :                       default:;
   10607              :                       }
   10608              :                     break;
   10609              :                   }
   10610           12 :                 default:;
   10611              :                 }
   10612           12 :               switch (TREE_CODE (_q21))
   10613              :                 {
   10614            0 :                 case REAL_CST:
   10615            0 :                   {
   10616            0 :                     if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
   10617              :                       {
   10618            0 :                         {
   10619            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
   10620            0 :                           tree res = generic_simplify_212 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWL);
   10621            0 :                           if (res) return res;
   10622              :                         }
   10623              :                       }
   10624              :                     break;
   10625              :                   }
   10626              :                 default:;
   10627              :                 }
   10628              :             }
   10629              :           break;
   10630        19797 :         case CFN_BUILT_IN_SQRT:
   10631        19797 :           if (call_expr_nargs (_p0) == 1)
   10632              :     {
   10633        19797 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10634        19797 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
   10635              :                 {
   10636            2 :                   {
   10637            2 :                     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
   10638            2 :                     tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT);
   10639            2 :                     if (res) return res;
   10640              :                   }
   10641              :                 }
   10642        19795 :               switch (TREE_CODE (_p1))
   10643              :                 {
   10644          100 :                 case CALL_EXPR:
   10645          100 :                   switch (get_call_combined_fn (_p1))
   10646              :                     {
   10647           37 :                     case CFN_BUILT_IN_SQRT:
   10648           37 :                       if (call_expr_nargs (_p1) == 1)
   10649              :     {
   10650           37 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   10651           37 :                           {
   10652           37 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   10653           37 :                             if (flag_unsafe_math_optimizations
   10654              : )
   10655              :                               {
   10656           15 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1515;
   10657           15 :                                 {
   10658           15 :                                   tree res_op0;
   10659           15 :                                   {
   10660           15 :                                     tree _o1[2], _r1;
   10661           15 :                                     _o1[0] = captures[1];
   10662           15 :                                     _o1[1] = captures[3];
   10663           15 :                                     _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10664           15 :                                     res_op0 = _r1;
   10665              :                                   }
   10666           15 :                                   tree _r;
   10667           15 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SQRT, type, 1, res_op0);
   10668           15 :                                   if (!_r)
   10669            0 :                                     goto next_after_fail1515;
   10670           15 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1020, __FILE__, __LINE__, true);
   10671              :                                   return _r;
   10672              :                                 }
   10673     67220435 : next_after_fail1515:;
   10674              :                               }
   10675              :                           }
   10676              :                         }
   10677              :                       break;
   10678              :                     default:;
   10679              :                     }
   10680              :                   break;
   10681              :                 default:;
   10682              :                 }
   10683              :             }
   10684              :           break;
   10685            5 :         case CFN_BUILT_IN_LDEXPF:
   10686            5 :           if (call_expr_nargs (_p0) == 2)
   10687              :     {
   10688            5 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10689            5 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   10690            5 :               switch (TREE_CODE (_p1))
   10691              :                 {
   10692            2 :                 case REAL_CST:
   10693            2 :                   {
   10694            2 :                     {
   10695            2 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q21 };
   10696            2 :                       tree res = generic_simplify_213 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LDEXPF);
   10697            2 :                       if (res) return res;
   10698              :                     }
   10699            1 :                     break;
   10700              :                   }
   10701            4 :                 default:;
   10702              :                 }
   10703            4 :               switch (TREE_CODE (_q20))
   10704              :                 {
   10705            3 :                 case REAL_CST:
   10706            3 :                   {
   10707            3 :                     {
   10708            3 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q21 };
   10709            3 :                       tree res = generic_simplify_214 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LDEXPF);
   10710            3 :                       if (res) return res;
   10711              :                     }
   10712            0 :                     break;
   10713              :                   }
   10714              :                 default:;
   10715              :                 }
   10716              :             }
   10717              :           break;
   10718            5 :         case CFN_BUILT_IN_LDEXPL:
   10719            5 :           if (call_expr_nargs (_p0) == 2)
   10720              :     {
   10721            5 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10722            5 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   10723            5 :               switch (TREE_CODE (_p1))
   10724              :                 {
   10725            2 :                 case REAL_CST:
   10726            2 :                   {
   10727            2 :                     {
   10728            2 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q21 };
   10729            2 :                       tree res = generic_simplify_213 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LDEXPL);
   10730            2 :                       if (res) return res;
   10731              :                     }
   10732            1 :                     break;
   10733              :                   }
   10734            4 :                 default:;
   10735              :                 }
   10736            4 :               switch (TREE_CODE (_q20))
   10737              :                 {
   10738            3 :                 case REAL_CST:
   10739            3 :                   {
   10740            3 :                     {
   10741            3 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q21 };
   10742            3 :                       tree res = generic_simplify_214 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LDEXPL);
   10743            3 :                       if (res) return res;
   10744              :                     }
   10745            0 :                     break;
   10746              :                   }
   10747              :                 default:;
   10748              :                 }
   10749              :             }
   10750              :           break;
   10751            4 :         case CFN_BUILT_IN_SQRTF128:
   10752            4 :           if (call_expr_nargs (_p0) == 1)
   10753              :     {
   10754            4 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10755            4 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
   10756              :                 {
   10757            0 :                   {
   10758            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
   10759            0 :                     tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF128);
   10760            0 :                     if (res) return res;
   10761              :                   }
   10762              :                 }
   10763              :             }
   10764              :           break;
   10765            0 :         case CFN_BUILT_IN_SQRTF32X:
   10766            0 :           if (call_expr_nargs (_p0) == 1)
   10767              :     {
   10768            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10769            0 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
   10770              :                 {
   10771            0 :                   {
   10772            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
   10773            0 :                     tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF32X);
   10774            0 :                     if (res) return res;
   10775              :                   }
   10776              :                 }
   10777              :             }
   10778              :           break;
   10779            0 :         case CFN_BUILT_IN_SQRTF64X:
   10780            0 :           if (call_expr_nargs (_p0) == 1)
   10781              :     {
   10782            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10783            0 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
   10784              :                 {
   10785            0 :                   {
   10786            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
   10787            0 :                     tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF64X);
   10788            0 :                     if (res) return res;
   10789              :                   }
   10790              :                 }
   10791              :             }
   10792              :           break;
   10793            0 :         case CFN_BUILT_IN_SQRTF16:
   10794            0 :           if (call_expr_nargs (_p0) == 1)
   10795              :     {
   10796            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10797            0 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
   10798              :                 {
   10799            0 :                   {
   10800            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
   10801            0 :                     tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF16);
   10802            0 :                     if (res) return res;
   10803              :                   }
   10804              :                 }
   10805              :             }
   10806              :           break;
   10807            0 :         case CFN_BUILT_IN_SQRTF32:
   10808            0 :           if (call_expr_nargs (_p0) == 1)
   10809              :     {
   10810            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10811            0 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
   10812              :                 {
   10813            0 :                   {
   10814            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
   10815            0 :                     tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF32);
   10816            0 :                     if (res) return res;
   10817              :                   }
   10818              :                 }
   10819              :             }
   10820              :           break;
   10821            0 :         case CFN_BUILT_IN_SQRTF64:
   10822            0 :           if (call_expr_nargs (_p0) == 1)
   10823              :     {
   10824            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10825            0 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
   10826              :                 {
   10827            0 :                   {
   10828            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
   10829            0 :                     tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF64);
   10830            0 :                     if (res) return res;
   10831              :                   }
   10832              :                 }
   10833              :             }
   10834              :           break;
   10835            0 :         case CFN_EXP:
   10836            0 :           if (call_expr_nargs (_p0) == 1)
   10837              :     {
   10838            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10839            0 :               switch (TREE_CODE (_p1))
   10840              :                 {
   10841            0 :                 case CALL_EXPR:
   10842            0 :                   switch (get_call_combined_fn (_p1))
   10843              :                     {
   10844            0 :                     case CFN_EXP:
   10845            0 :                       if (call_expr_nargs (_p1) == 1)
   10846              :     {
   10847            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   10848            0 :                           {
   10849            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   10850            0 :                             if (flag_unsafe_math_optimizations
   10851              : )
   10852              :                               {
   10853            0 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1516;
   10854            0 :                                 {
   10855            0 :                                   tree res_op0;
   10856            0 :                                   {
   10857            0 :                                     tree _o1[2], _r1;
   10858            0 :                                     _o1[0] = captures[1];
   10859            0 :                                     _o1[1] = captures[3];
   10860            0 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10861            0 :                                     res_op0 = _r1;
   10862              :                                   }
   10863            0 :                                   tree _r;
   10864            0 :                                   _r = maybe_build_call_expr_loc (loc, CFN_EXP, type, 1, res_op0);
   10865            0 :                                   if (!_r)
   10866            0 :                                     goto next_after_fail1516;
   10867            0 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1021, __FILE__, __LINE__, true);
   10868              :                                   return _r;
   10869              :                                 }
   10870     67220435 : next_after_fail1516:;
   10871              :                               }
   10872              :                           }
   10873              :                         }
   10874              :                       break;
   10875            0 :                     case CFN_POW:
   10876            0 :                       if (call_expr_nargs (_p1) == 2)
   10877              :     {
   10878            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   10879            0 :                           tree _q41 = CALL_EXPR_ARG (_p1, 1);
   10880            0 :                           switch (TREE_CODE (_q40))
   10881              :                             {
   10882            0 :                             case REAL_CST:
   10883            0 :                               {
   10884            0 :                                 {
   10885            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
   10886            0 :                                   if (flag_unsafe_math_optimizations
   10887              : )
   10888              :                                     {
   10889            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   10890            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   10891              : )
   10892              :                                         {
   10893            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1517;
   10894            0 :                                           {
   10895            0 :                                             tree res_op0;
   10896            0 :                                             {
   10897            0 :                                               tree _o1[2], _r1;
   10898            0 :                                               {
   10899            0 :                                                 tree _o2[2], _r2;
   10900            0 :                                                 {
   10901            0 :                                                   tree _o3[1], _r3;
   10902            0 :                                                   _o3[0] = captures[1];
   10903            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_LOG, TREE_TYPE (_o3[0]), 1, _o3[0]);
   10904            0 :                                                   if (!_r3)
   10905            0 :                                                     goto next_after_fail1517;
   10906            0 :                                                   _o2[0] = _r3;
   10907              :                                                 }
   10908            0 :                                                 _o2[1] = captures[2];
   10909            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   10910            0 :                                                 _o1[0] = _r2;
   10911              :                                               }
   10912            0 :                                               _o1[1] = captures[4];
   10913            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10914            0 :                                               res_op0 = _r1;
   10915              :                                             }
   10916            0 :                                             tree _r;
   10917            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_EXP, type, 1, res_op0);
   10918            0 :                                             if (!_r)
   10919            0 :                                               goto next_after_fail1517;
   10920            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1022, __FILE__, __LINE__, true);
   10921              :                                             return _r;
   10922              :                                           }
   10923     67220435 : next_after_fail1517:;
   10924              :                                         }
   10925              :                                     }
   10926              :                                 }
   10927              :                                 break;
   10928              :                               }
   10929              :                             default:;
   10930              :                             }
   10931              :                         }
   10932              :                       break;
   10933              :                     default:;
   10934              :                     }
   10935              :                   break;
   10936              :                 default:;
   10937              :                 }
   10938              :             }
   10939              :           break;
   10940            0 :         case CFN_POW:
   10941            0 :           if (call_expr_nargs (_p0) == 2)
   10942              :     {
   10943            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10944            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   10945            0 :               switch (TREE_CODE (_q20))
   10946              :                 {
   10947            0 :                 case REAL_CST:
   10948            0 :                   {
   10949            0 :                     switch (TREE_CODE (_p1))
   10950              :                       {
   10951            0 :                       case CALL_EXPR:
   10952            0 :                         switch (get_call_combined_fn (_p1))
   10953              :                           {
   10954            0 :                           case CFN_EXP:
   10955            0 :                             if (call_expr_nargs (_p1) == 1)
   10956              :     {
   10957            0 :                                 tree _q50 = CALL_EXPR_ARG (_p1, 0);
   10958            0 :                                 {
   10959            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   10960            0 :                                   if (flag_unsafe_math_optimizations
   10961              : )
   10962              :                                     {
   10963            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   10964            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   10965              : )
   10966              :                                         {
   10967            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1518;
   10968            0 :                                           {
   10969            0 :                                             tree res_op0;
   10970            0 :                                             {
   10971            0 :                                               tree _o1[2], _r1;
   10972            0 :                                               {
   10973            0 :                                                 tree _o2[2], _r2;
   10974            0 :                                                 {
   10975            0 :                                                   tree _o3[1], _r3;
   10976            0 :                                                   _o3[0] = captures[1];
   10977            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_LOG, TREE_TYPE (_o3[0]), 1, _o3[0]);
   10978            0 :                                                   if (!_r3)
   10979            0 :                                                     goto next_after_fail1518;
   10980            0 :                                                   _o2[0] = _r3;
   10981              :                                                 }
   10982            0 :                                                 _o2[1] = captures[2];
   10983            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   10984            0 :                                                 _o1[0] = _r2;
   10985              :                                               }
   10986            0 :                                               _o1[1] = captures[4];
   10987            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10988            0 :                                               res_op0 = _r1;
   10989              :                                             }
   10990            0 :                                             tree _r;
   10991            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_EXP, type, 1, res_op0);
   10992            0 :                                             if (!_r)
   10993            0 :                                               goto next_after_fail1518;
   10994            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1022, __FILE__, __LINE__, true);
   10995              :                                             return _r;
   10996              :                                           }
   10997            0 : next_after_fail1518:;
   10998              :                                         }
   10999              :                                     }
   11000              :                                 }
   11001              :                               }
   11002              :                             break;
   11003            0 :                           case CFN_EXP2:
   11004            0 :                             if (call_expr_nargs (_p1) == 1)
   11005              :     {
   11006            0 :                                 tree _q50 = CALL_EXPR_ARG (_p1, 0);
   11007            0 :                                 {
   11008            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   11009            0 :                                   if (flag_unsafe_math_optimizations
   11010              : )
   11011              :                                     {
   11012            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   11013            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   11014              : )
   11015              :                                         {
   11016            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1519;
   11017            0 :                                           {
   11018            0 :                                             tree res_op0;
   11019            0 :                                             {
   11020            0 :                                               tree _o1[2], _r1;
   11021            0 :                                               {
   11022            0 :                                                 tree _o2[2], _r2;
   11023            0 :                                                 {
   11024            0 :                                                   tree _o3[1], _r3;
   11025            0 :                                                   _o3[0] = captures[1];
   11026            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_LOG2, TREE_TYPE (_o3[0]), 1, _o3[0]);
   11027            0 :                                                   if (!_r3)
   11028            0 :                                                     goto next_after_fail1519;
   11029            0 :                                                   _o2[0] = _r3;
   11030              :                                                 }
   11031            0 :                                                 _o2[1] = captures[2];
   11032            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   11033            0 :                                                 _o1[0] = _r2;
   11034              :                                               }
   11035            0 :                                               _o1[1] = captures[4];
   11036            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11037            0 :                                               res_op0 = _r1;
   11038              :                                             }
   11039            0 :                                             tree _r;
   11040            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_EXP2, type, 1, res_op0);
   11041            0 :                                             if (!_r)
   11042            0 :                                               goto next_after_fail1519;
   11043            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1022, __FILE__, __LINE__, true);
   11044              :                                             return _r;
   11045              :                                           }
   11046            0 : next_after_fail1519:;
   11047              :                                         }
   11048              :                                     }
   11049              :                                 }
   11050              :                               }
   11051              :                             break;
   11052            0 :                           case CFN_EXP10:
   11053            0 :                             if (call_expr_nargs (_p1) == 1)
   11054              :     {
   11055            0 :                                 tree _q50 = CALL_EXPR_ARG (_p1, 0);
   11056            0 :                                 {
   11057            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   11058            0 :                                   if (flag_unsafe_math_optimizations
   11059              : )
   11060              :                                     {
   11061            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   11062            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   11063              : )
   11064              :                                         {
   11065            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1520;
   11066            0 :                                           {
   11067            0 :                                             tree res_op0;
   11068            0 :                                             {
   11069            0 :                                               tree _o1[2], _r1;
   11070            0 :                                               {
   11071            0 :                                                 tree _o2[2], _r2;
   11072            0 :                                                 {
   11073            0 :                                                   tree _o3[1], _r3;
   11074            0 :                                                   _o3[0] = captures[1];
   11075            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_LOG10, TREE_TYPE (_o3[0]), 1, _o3[0]);
   11076            0 :                                                   if (!_r3)
   11077            0 :                                                     goto next_after_fail1520;
   11078            0 :                                                   _o2[0] = _r3;
   11079              :                                                 }
   11080            0 :                                                 _o2[1] = captures[2];
   11081            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   11082            0 :                                                 _o1[0] = _r2;
   11083              :                                               }
   11084            0 :                                               _o1[1] = captures[4];
   11085            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11086            0 :                                               res_op0 = _r1;
   11087              :                                             }
   11088            0 :                                             tree _r;
   11089            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_EXP10, type, 1, res_op0);
   11090            0 :                                             if (!_r)
   11091            0 :                                               goto next_after_fail1520;
   11092            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1022, __FILE__, __LINE__, true);
   11093              :                                             return _r;
   11094              :                                           }
   11095            0 : next_after_fail1520:;
   11096              :                                         }
   11097              :                                     }
   11098              :                                 }
   11099              :                               }
   11100              :                             break;
   11101              :                           default:;
   11102              :                           }
   11103              :                         break;
   11104              :                       default:;
   11105              :                       }
   11106              :                     break;
   11107              :                   }
   11108            0 :                 default:;
   11109              :                 }
   11110            0 :               switch (TREE_CODE (_q21))
   11111              :                 {
   11112            0 :                 case REAL_CST:
   11113            0 :                   {
   11114            0 :                     if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
   11115              :                       {
   11116            0 :                         {
   11117            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
   11118            0 :                           tree res = generic_simplify_212 (loc, type, _p0, _p1, captures, CFN_POW);
   11119            0 :                           if (res) return res;
   11120              :                         }
   11121              :                       }
   11122              :                     break;
   11123              :                   }
   11124              :                 default:;
   11125              :                 }
   11126              :             }
   11127              :           break;
   11128           24 :         case CFN_BUILT_IN_POW10F:
   11129           24 :           if (call_expr_nargs (_p0) == 1)
   11130              :     {
   11131           24 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11132           24 :               switch (TREE_CODE (_p1))
   11133              :                 {
   11134           12 :                 case CALL_EXPR:
   11135           12 :                   switch (get_call_combined_fn (_p1))
   11136              :                     {
   11137            0 :                     case CFN_BUILT_IN_POWF:
   11138            0 :                       if (call_expr_nargs (_p1) == 2)
   11139              :     {
   11140            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11141            0 :                           tree _q41 = CALL_EXPR_ARG (_p1, 1);
   11142            0 :                           switch (TREE_CODE (_q40))
   11143              :                             {
   11144            0 :                             case REAL_CST:
   11145            0 :                               {
   11146            0 :                                 {
   11147            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
   11148            0 :                                   if (flag_unsafe_math_optimizations
   11149              : )
   11150              :                                     {
   11151            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   11152            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   11153              : )
   11154              :                                         {
   11155            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1521;
   11156            0 :                                           {
   11157            0 :                                             tree res_op0;
   11158            0 :                                             {
   11159            0 :                                               tree _o1[2], _r1;
   11160            0 :                                               {
   11161            0 :                                                 tree _o2[2], _r2;
   11162            0 :                                                 {
   11163            0 :                                                   tree _o3[1], _r3;
   11164            0 :                                                   _o3[0] = captures[1];
   11165            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10F, TREE_TYPE (_o3[0]), 1, _o3[0]);
   11166            0 :                                                   if (!_r3)
   11167            0 :                                                     goto next_after_fail1521;
   11168            0 :                                                   _o2[0] = _r3;
   11169              :                                                 }
   11170            0 :                                                 _o2[1] = captures[2];
   11171            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   11172            0 :                                                 _o1[0] = _r2;
   11173              :                                               }
   11174            0 :                                               _o1[1] = captures[4];
   11175            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11176            0 :                                               res_op0 = _r1;
   11177              :                                             }
   11178            0 :                                             tree _r;
   11179            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10F, type, 1, res_op0);
   11180            0 :                                             if (!_r)
   11181            0 :                                               goto next_after_fail1521;
   11182            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1022, __FILE__, __LINE__, true);
   11183              :                                             return _r;
   11184              :                                           }
   11185     67220435 : next_after_fail1521:;
   11186              :                                         }
   11187              :                                     }
   11188              :                                 }
   11189              :                                 break;
   11190              :                               }
   11191              :                             default:;
   11192              :                             }
   11193              :                         }
   11194              :                       break;
   11195           12 :                     case CFN_BUILT_IN_POW10F:
   11196           12 :                       if (call_expr_nargs (_p1) == 1)
   11197              :     {
   11198           12 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11199           12 :                           {
   11200           12 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   11201           12 :                             if (flag_unsafe_math_optimizations
   11202              : )
   11203              :                               {
   11204           12 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1522;
   11205           12 :                                 {
   11206           12 :                                   tree res_op0;
   11207           12 :                                   {
   11208           12 :                                     tree _o1[2], _r1;
   11209           12 :                                     _o1[0] = captures[1];
   11210           12 :                                     _o1[1] = captures[3];
   11211           12 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11212           12 :                                     res_op0 = _r1;
   11213              :                                   }
   11214           12 :                                   tree _r;
   11215           12 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10F, type, 1, res_op0);
   11216           12 :                                   if (!_r)
   11217           12 :                                     goto next_after_fail1522;
   11218            0 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1021, __FILE__, __LINE__, true);
   11219              :                                   return _r;
   11220              :                                 }
   11221     67220435 : next_after_fail1522:;
   11222              :                               }
   11223              :                           }
   11224              :                         }
   11225              :                       break;
   11226              :                     default:;
   11227              :                     }
   11228              :                   break;
   11229              :                 default:;
   11230              :                 }
   11231              :             }
   11232              :           break;
   11233           24 :         case CFN_BUILT_IN_POW10L:
   11234           24 :           if (call_expr_nargs (_p0) == 1)
   11235              :     {
   11236           24 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11237           24 :               switch (TREE_CODE (_p1))
   11238              :                 {
   11239           12 :                 case CALL_EXPR:
   11240           12 :                   switch (get_call_combined_fn (_p1))
   11241              :                     {
   11242            0 :                     case CFN_BUILT_IN_POWL:
   11243            0 :                       if (call_expr_nargs (_p1) == 2)
   11244              :     {
   11245            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11246            0 :                           tree _q41 = CALL_EXPR_ARG (_p1, 1);
   11247            0 :                           switch (TREE_CODE (_q40))
   11248              :                             {
   11249            0 :                             case REAL_CST:
   11250            0 :                               {
   11251            0 :                                 {
   11252            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
   11253            0 :                                   if (flag_unsafe_math_optimizations
   11254              : )
   11255              :                                     {
   11256            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   11257            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   11258              : )
   11259              :                                         {
   11260            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1523;
   11261            0 :                                           {
   11262            0 :                                             tree res_op0;
   11263            0 :                                             {
   11264            0 :                                               tree _o1[2], _r1;
   11265            0 :                                               {
   11266            0 :                                                 tree _o2[2], _r2;
   11267            0 :                                                 {
   11268            0 :                                                   tree _o3[1], _r3;
   11269            0 :                                                   _o3[0] = captures[1];
   11270            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10L, TREE_TYPE (_o3[0]), 1, _o3[0]);
   11271            0 :                                                   if (!_r3)
   11272            0 :                                                     goto next_after_fail1523;
   11273            0 :                                                   _o2[0] = _r3;
   11274              :                                                 }
   11275            0 :                                                 _o2[1] = captures[2];
   11276            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   11277            0 :                                                 _o1[0] = _r2;
   11278              :                                               }
   11279            0 :                                               _o1[1] = captures[4];
   11280            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11281            0 :                                               res_op0 = _r1;
   11282              :                                             }
   11283            0 :                                             tree _r;
   11284            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10L, type, 1, res_op0);
   11285            0 :                                             if (!_r)
   11286            0 :                                               goto next_after_fail1523;
   11287            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1022, __FILE__, __LINE__, true);
   11288              :                                             return _r;
   11289              :                                           }
   11290     67220435 : next_after_fail1523:;
   11291              :                                         }
   11292              :                                     }
   11293              :                                 }
   11294              :                                 break;
   11295              :                               }
   11296              :                             default:;
   11297              :                             }
   11298              :                         }
   11299              :                       break;
   11300           12 :                     case CFN_BUILT_IN_POW10L:
   11301           12 :                       if (call_expr_nargs (_p1) == 1)
   11302              :     {
   11303           12 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11304           12 :                           {
   11305           12 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   11306           12 :                             if (flag_unsafe_math_optimizations
   11307              : )
   11308              :                               {
   11309           12 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1524;
   11310           12 :                                 {
   11311           12 :                                   tree res_op0;
   11312           12 :                                   {
   11313           12 :                                     tree _o1[2], _r1;
   11314           12 :                                     _o1[0] = captures[1];
   11315           12 :                                     _o1[1] = captures[3];
   11316           12 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11317           12 :                                     res_op0 = _r1;
   11318              :                                   }
   11319           12 :                                   tree _r;
   11320           12 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10L, type, 1, res_op0);
   11321           12 :                                   if (!_r)
   11322           12 :                                     goto next_after_fail1524;
   11323            0 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1021, __FILE__, __LINE__, true);
   11324              :                                   return _r;
   11325              :                                 }
   11326     67220435 : next_after_fail1524:;
   11327              :                               }
   11328              :                           }
   11329              :                         }
   11330              :                       break;
   11331              :                     default:;
   11332              :                     }
   11333              :                   break;
   11334              :                 default:;
   11335              :                 }
   11336              :             }
   11337              :           break;
   11338            0 :         case CFN_BUILT_IN_SQRTF128X:
   11339            0 :           if (call_expr_nargs (_p0) == 1)
   11340              :     {
   11341            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11342            0 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
   11343              :                 {
   11344            0 :                   {
   11345            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
   11346            0 :                     tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF128X);
   11347            0 :                     if (res) return res;
   11348              :                   }
   11349              :                 }
   11350              :             }
   11351              :           break;
   11352            0 :         case CFN_EXP2:
   11353            0 :           if (call_expr_nargs (_p0) == 1)
   11354              :     {
   11355            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11356            0 :               switch (TREE_CODE (_p1))
   11357              :                 {
   11358            0 :                 case CALL_EXPR:
   11359            0 :                   switch (get_call_combined_fn (_p1))
   11360              :                     {
   11361            0 :                     case CFN_POW:
   11362            0 :                       if (call_expr_nargs (_p1) == 2)
   11363              :     {
   11364            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11365            0 :                           tree _q41 = CALL_EXPR_ARG (_p1, 1);
   11366            0 :                           switch (TREE_CODE (_q40))
   11367              :                             {
   11368            0 :                             case REAL_CST:
   11369            0 :                               {
   11370            0 :                                 {
   11371            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
   11372            0 :                                   if (flag_unsafe_math_optimizations
   11373              : )
   11374              :                                     {
   11375            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   11376            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   11377              : )
   11378              :                                         {
   11379            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1525;
   11380            0 :                                           {
   11381            0 :                                             tree res_op0;
   11382            0 :                                             {
   11383            0 :                                               tree _o1[2], _r1;
   11384            0 :                                               {
   11385            0 :                                                 tree _o2[2], _r2;
   11386            0 :                                                 {
   11387            0 :                                                   tree _o3[1], _r3;
   11388            0 :                                                   _o3[0] = captures[1];
   11389            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_LOG2, TREE_TYPE (_o3[0]), 1, _o3[0]);
   11390            0 :                                                   if (!_r3)
   11391            0 :                                                     goto next_after_fail1525;
   11392            0 :                                                   _o2[0] = _r3;
   11393              :                                                 }
   11394            0 :                                                 _o2[1] = captures[2];
   11395            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   11396            0 :                                                 _o1[0] = _r2;
   11397              :                                               }
   11398            0 :                                               _o1[1] = captures[4];
   11399            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11400            0 :                                               res_op0 = _r1;
   11401              :                                             }
   11402            0 :                                             tree _r;
   11403            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_EXP2, type, 1, res_op0);
   11404            0 :                                             if (!_r)
   11405            0 :                                               goto next_after_fail1525;
   11406            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1022, __FILE__, __LINE__, true);
   11407              :                                             return _r;
   11408              :                                           }
   11409     67220435 : next_after_fail1525:;
   11410              :                                         }
   11411              :                                     }
   11412              :                                 }
   11413              :                                 break;
   11414              :                               }
   11415              :                             default:;
   11416              :                             }
   11417              :                         }
   11418              :                       break;
   11419            0 :                     case CFN_EXP2:
   11420            0 :                       if (call_expr_nargs (_p1) == 1)
   11421              :     {
   11422            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11423            0 :                           {
   11424            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   11425            0 :                             if (flag_unsafe_math_optimizations
   11426              : )
   11427              :                               {
   11428            0 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1526;
   11429            0 :                                 {
   11430            0 :                                   tree res_op0;
   11431            0 :                                   {
   11432            0 :                                     tree _o1[2], _r1;
   11433            0 :                                     _o1[0] = captures[1];
   11434            0 :                                     _o1[1] = captures[3];
   11435            0 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11436            0 :                                     res_op0 = _r1;
   11437              :                                   }
   11438            0 :                                   tree _r;
   11439            0 :                                   _r = maybe_build_call_expr_loc (loc, CFN_EXP2, type, 1, res_op0);
   11440            0 :                                   if (!_r)
   11441            0 :                                     goto next_after_fail1526;
   11442            0 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1021, __FILE__, __LINE__, true);
   11443              :                                   return _r;
   11444              :                                 }
   11445     67220435 : next_after_fail1526:;
   11446              :                               }
   11447              :                           }
   11448              :                         }
   11449              :                       break;
   11450              :                     default:;
   11451              :                     }
   11452              :                   break;
   11453              :                 default:;
   11454              :                 }
   11455              :             }
   11456              :           break;
   11457            0 :         case CFN_SQRT:
   11458            0 :           if (call_expr_nargs (_p0) == 1)
   11459              :     {
   11460            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11461            0 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
   11462              :                 {
   11463            0 :                   {
   11464            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
   11465            0 :                     tree res = generic_simplify_211 (loc, type, _p0, _p1, captures, CFN_SQRT);
   11466            0 :                     if (res) return res;
   11467              :                   }
   11468              :                 }
   11469            0 :               switch (TREE_CODE (_p1))
   11470              :                 {
   11471            0 :                 case CALL_EXPR:
   11472            0 :                   switch (get_call_combined_fn (_p1))
   11473              :                     {
   11474            0 :                     case CFN_SQRT:
   11475            0 :                       if (call_expr_nargs (_p1) == 1)
   11476              :     {
   11477            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11478            0 :                           {
   11479            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   11480            0 :                             if (flag_unsafe_math_optimizations
   11481              : )
   11482              :                               {
   11483            0 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1527;
   11484            0 :                                 {
   11485            0 :                                   tree res_op0;
   11486            0 :                                   {
   11487            0 :                                     tree _o1[2], _r1;
   11488            0 :                                     _o1[0] = captures[1];
   11489            0 :                                     _o1[1] = captures[3];
   11490            0 :                                     _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11491            0 :                                     res_op0 = _r1;
   11492              :                                   }
   11493            0 :                                   tree _r;
   11494            0 :                                   _r = maybe_build_call_expr_loc (loc, CFN_SQRT, type, 1, res_op0);
   11495            0 :                                   if (!_r)
   11496            0 :                                     goto next_after_fail1527;
   11497            0 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1020, __FILE__, __LINE__, true);
   11498              :                                   return _r;
   11499              :                                 }
   11500     67220435 : next_after_fail1527:;
   11501              :                               }
   11502              :                           }
   11503              :                         }
   11504              :                       break;
   11505              :                     default:;
   11506              :                     }
   11507              :                   break;
   11508              :                 default:;
   11509              :                 }
   11510              :             }
   11511              :           break;
   11512            0 :         case CFN_EXP10:
   11513            0 :           if (call_expr_nargs (_p0) == 1)
   11514              :     {
   11515            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11516            0 :               switch (TREE_CODE (_p1))
   11517              :                 {
   11518            0 :                 case CALL_EXPR:
   11519            0 :                   switch (get_call_combined_fn (_p1))
   11520              :                     {
   11521            0 :                     case CFN_POW:
   11522            0 :                       if (call_expr_nargs (_p1) == 2)
   11523              :     {
   11524            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11525            0 :                           tree _q41 = CALL_EXPR_ARG (_p1, 1);
   11526            0 :                           switch (TREE_CODE (_q40))
   11527              :                             {
   11528            0 :                             case REAL_CST:
   11529            0 :                               {
   11530            0 :                                 {
   11531            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
   11532            0 :                                   if (flag_unsafe_math_optimizations
   11533              : )
   11534              :                                     {
   11535            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   11536            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   11537              : )
   11538              :                                         {
   11539            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1528;
   11540            0 :                                           {
   11541            0 :                                             tree res_op0;
   11542            0 :                                             {
   11543            0 :                                               tree _o1[2], _r1;
   11544            0 :                                               {
   11545            0 :                                                 tree _o2[2], _r2;
   11546            0 :                                                 {
   11547            0 :                                                   tree _o3[1], _r3;
   11548            0 :                                                   _o3[0] = captures[1];
   11549            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_LOG10, TREE_TYPE (_o3[0]), 1, _o3[0]);
   11550            0 :                                                   if (!_r3)
   11551            0 :                                                     goto next_after_fail1528;
   11552            0 :                                                   _o2[0] = _r3;
   11553              :                                                 }
   11554            0 :                                                 _o2[1] = captures[2];
   11555            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   11556            0 :                                                 _o1[0] = _r2;
   11557              :                                               }
   11558            0 :                                               _o1[1] = captures[4];
   11559            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11560            0 :                                               res_op0 = _r1;
   11561              :                                             }
   11562            0 :                                             tree _r;
   11563            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_EXP10, type, 1, res_op0);
   11564            0 :                                             if (!_r)
   11565            0 :                                               goto next_after_fail1528;
   11566            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1022, __FILE__, __LINE__, true);
   11567              :                                             return _r;
   11568              :                                           }
   11569     67220435 : next_after_fail1528:;
   11570              :                                         }
   11571              :                                     }
   11572              :                                 }
   11573              :                                 break;
   11574              :                               }
   11575              :                             default:;
   11576              :                             }
   11577              :                         }
   11578              :                       break;
   11579            0 :                     case CFN_EXP10:
   11580            0 :                       if (call_expr_nargs (_p1) == 1)
   11581              :     {
   11582            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11583            0 :                           {
   11584            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   11585            0 :                             if (flag_unsafe_math_optimizations
   11586              : )
   11587              :                               {
   11588            0 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1529;
   11589            0 :                                 {
   11590            0 :                                   tree res_op0;
   11591            0 :                                   {
   11592            0 :                                     tree _o1[2], _r1;
   11593            0 :                                     _o1[0] = captures[1];
   11594            0 :                                     _o1[1] = captures[3];
   11595            0 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11596            0 :                                     res_op0 = _r1;
   11597              :                                   }
   11598            0 :                                   tree _r;
   11599            0 :                                   _r = maybe_build_call_expr_loc (loc, CFN_EXP10, type, 1, res_op0);
   11600            0 :                                   if (!_r)
   11601            0 :                                     goto next_after_fail1529;
   11602            0 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1021, __FILE__, __LINE__, true);
   11603              :                                   return _r;
   11604              :                                 }
   11605     67220435 : next_after_fail1529:;
   11606              :                               }
   11607              :                           }
   11608              :                         }
   11609              :                       break;
   11610              :                     default:;
   11611              :                     }
   11612              :                   break;
   11613              :                 default:;
   11614              :                 }
   11615              :             }
   11616              :           break;
   11617           12 :         case CFN_BUILT_IN_CBRTF:
   11618           12 :           if (call_expr_nargs (_p0) == 1)
   11619              :     {
   11620           12 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11621           12 :               switch (TREE_CODE (_p1))
   11622              :                 {
   11623           12 :                 case CALL_EXPR:
   11624           12 :                   switch (get_call_combined_fn (_p1))
   11625              :                     {
   11626           12 :                     case CFN_BUILT_IN_CBRTF:
   11627           12 :                       if (call_expr_nargs (_p1) == 1)
   11628              :     {
   11629           12 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11630           12 :                           {
   11631           12 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   11632           12 :                             if (flag_unsafe_math_optimizations
   11633              : )
   11634              :                               {
   11635           12 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1530;
   11636           12 :                                 {
   11637           12 :                                   tree res_op0;
   11638           12 :                                   {
   11639           12 :                                     tree _o1[2], _r1;
   11640           12 :                                     _o1[0] = captures[1];
   11641           12 :                                     _o1[1] = captures[3];
   11642           12 :                                     _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11643           12 :                                     res_op0 = _r1;
   11644              :                                   }
   11645           12 :                                   tree _r;
   11646           12 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_CBRTF, type, 1, res_op0);
   11647           12 :                                   if (!_r)
   11648            0 :                                     goto next_after_fail1530;
   11649           12 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1020, __FILE__, __LINE__, true);
   11650              :                                   return _r;
   11651              :                                 }
   11652     67220435 : next_after_fail1530:;
   11653              :                               }
   11654              :                           }
   11655              :                         }
   11656              :                       break;
   11657              :                     default:;
   11658              :                     }
   11659              :                   break;
   11660              :                 default:;
   11661              :                 }
   11662              :             }
   11663              :           break;
   11664           12 :         case CFN_BUILT_IN_CBRTL:
   11665           12 :           if (call_expr_nargs (_p0) == 1)
   11666              :     {
   11667           12 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11668           12 :               switch (TREE_CODE (_p1))
   11669              :                 {
   11670           12 :                 case CALL_EXPR:
   11671           12 :                   switch (get_call_combined_fn (_p1))
   11672              :                     {
   11673           12 :                     case CFN_BUILT_IN_CBRTL:
   11674           12 :                       if (call_expr_nargs (_p1) == 1)
   11675              :     {
   11676           12 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11677           12 :                           {
   11678           12 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   11679           12 :                             if (flag_unsafe_math_optimizations
   11680              : )
   11681              :                               {
   11682           12 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1531;
   11683           12 :                                 {
   11684           12 :                                   tree res_op0;
   11685           12 :                                   {
   11686           12 :                                     tree _o1[2], _r1;
   11687           12 :                                     _o1[0] = captures[1];
   11688           12 :                                     _o1[1] = captures[3];
   11689           12 :                                     _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11690           12 :                                     res_op0 = _r1;
   11691              :                                   }
   11692           12 :                                   tree _r;
   11693           12 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_CBRTL, type, 1, res_op0);
   11694           12 :                                   if (!_r)
   11695            0 :                                     goto next_after_fail1531;
   11696           12 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1020, __FILE__, __LINE__, true);
   11697              :                                   return _r;
   11698              :                                 }
   11699     67220435 : next_after_fail1531:;
   11700              :                               }
   11701              :                           }
   11702              :                         }
   11703              :                       break;
   11704              :                     default:;
   11705              :                     }
   11706              :                   break;
   11707              :                 default:;
   11708              :                 }
   11709              :             }
   11710              :           break;
   11711            0 :         case CFN_LDEXP:
   11712            0 :           if (call_expr_nargs (_p0) == 2)
   11713              :     {
   11714            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11715            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   11716            0 :               switch (TREE_CODE (_p1))
   11717              :                 {
   11718            0 :                 case REAL_CST:
   11719            0 :                   {
   11720            0 :                     {
   11721            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q21 };
   11722            0 :                       tree res = generic_simplify_213 (loc, type, _p0, _p1, captures, CFN_LDEXP);
   11723            0 :                       if (res) return res;
   11724              :                     }
   11725            0 :                     break;
   11726              :                   }
   11727            0 :                 default:;
   11728              :                 }
   11729            0 :               switch (TREE_CODE (_q20))
   11730              :                 {
   11731            0 :                 case REAL_CST:
   11732            0 :                   {
   11733            0 :                     {
   11734            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q21 };
   11735            0 :                       tree res = generic_simplify_214 (loc, type, _p0, _p1, captures, CFN_LDEXP);
   11736            0 :                       if (res) return res;
   11737              :                     }
   11738            0 :                     break;
   11739              :                   }
   11740              :                 default:;
   11741              :                 }
   11742              :             }
   11743              :           break;
   11744           48 :         case CFN_BUILT_IN_EXP10:
   11745           48 :           if (call_expr_nargs (_p0) == 1)
   11746              :     {
   11747           48 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11748           48 :               switch (TREE_CODE (_p1))
   11749              :                 {
   11750           24 :                 case CALL_EXPR:
   11751           24 :                   switch (get_call_combined_fn (_p1))
   11752              :                     {
   11753            0 :                     case CFN_BUILT_IN_POW:
   11754            0 :                       if (call_expr_nargs (_p1) == 2)
   11755              :     {
   11756            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11757            0 :                           tree _q41 = CALL_EXPR_ARG (_p1, 1);
   11758            0 :                           switch (TREE_CODE (_q40))
   11759              :                             {
   11760            0 :                             case REAL_CST:
   11761            0 :                               {
   11762            0 :                                 {
   11763            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
   11764            0 :                                   if (flag_unsafe_math_optimizations
   11765              : )
   11766              :                                     {
   11767            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   11768            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   11769              : )
   11770              :                                         {
   11771            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1532;
   11772            0 :                                           {
   11773            0 :                                             tree res_op0;
   11774            0 :                                             {
   11775            0 :                                               tree _o1[2], _r1;
   11776            0 :                                               {
   11777            0 :                                                 tree _o2[2], _r2;
   11778            0 :                                                 {
   11779            0 :                                                   tree _o3[1], _r3;
   11780            0 :                                                   _o3[0] = captures[1];
   11781            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10, TREE_TYPE (_o3[0]), 1, _o3[0]);
   11782            0 :                                                   if (!_r3)
   11783            0 :                                                     goto next_after_fail1532;
   11784            0 :                                                   _o2[0] = _r3;
   11785              :                                                 }
   11786            0 :                                                 _o2[1] = captures[2];
   11787            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   11788            0 :                                                 _o1[0] = _r2;
   11789              :                                               }
   11790            0 :                                               _o1[1] = captures[4];
   11791            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11792            0 :                                               res_op0 = _r1;
   11793              :                                             }
   11794            0 :                                             tree _r;
   11795            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10, type, 1, res_op0);
   11796            0 :                                             if (!_r)
   11797            0 :                                               goto next_after_fail1532;
   11798            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1022, __FILE__, __LINE__, true);
   11799              :                                             return _r;
   11800              :                                           }
   11801     67220435 : next_after_fail1532:;
   11802              :                                         }
   11803              :                                     }
   11804              :                                 }
   11805              :                                 break;
   11806              :                               }
   11807              :                             default:;
   11808              :                             }
   11809              :                         }
   11810              :                       break;
   11811           24 :                     case CFN_BUILT_IN_EXP10:
   11812           24 :                       if (call_expr_nargs (_p1) == 1)
   11813              :     {
   11814           24 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11815           24 :                           {
   11816           24 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   11817           24 :                             if (flag_unsafe_math_optimizations
   11818              : )
   11819              :                               {
   11820           24 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1533;
   11821           24 :                                 {
   11822           24 :                                   tree res_op0;
   11823           24 :                                   {
   11824           24 :                                     tree _o1[2], _r1;
   11825           24 :                                     _o1[0] = captures[1];
   11826           24 :                                     _o1[1] = captures[3];
   11827           24 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11828           24 :                                     res_op0 = _r1;
   11829              :                                   }
   11830           24 :                                   tree _r;
   11831           24 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10, type, 1, res_op0);
   11832           24 :                                   if (!_r)
   11833            0 :                                     goto next_after_fail1533;
   11834           24 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1021, __FILE__, __LINE__, true);
   11835              :                                   return _r;
   11836              :                                 }
   11837     67220435 : next_after_fail1533:;
   11838              :                               }
   11839              :                           }
   11840              :                         }
   11841              :                       break;
   11842              :                     default:;
   11843              :                     }
   11844              :                   break;
   11845              :                 default:;
   11846              :                 }
   11847              :             }
   11848              :           break;
   11849           48 :         case CFN_BUILT_IN_EXP2F:
   11850           48 :           if (call_expr_nargs (_p0) == 1)
   11851              :     {
   11852           48 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11853           48 :               switch (TREE_CODE (_p1))
   11854              :                 {
   11855           24 :                 case CALL_EXPR:
   11856           24 :                   switch (get_call_combined_fn (_p1))
   11857              :                     {
   11858            0 :                     case CFN_BUILT_IN_POWF:
   11859            0 :                       if (call_expr_nargs (_p1) == 2)
   11860              :     {
   11861            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11862            0 :                           tree _q41 = CALL_EXPR_ARG (_p1, 1);
   11863            0 :                           switch (TREE_CODE (_q40))
   11864              :                             {
   11865            0 :                             case REAL_CST:
   11866            0 :                               {
   11867            0 :                                 {
   11868            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
   11869            0 :                                   if (flag_unsafe_math_optimizations
   11870              : )
   11871              :                                     {
   11872            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   11873            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   11874              : )
   11875              :                                         {
   11876            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1534;
   11877            0 :                                           {
   11878            0 :                                             tree res_op0;
   11879            0 :                                             {
   11880            0 :                                               tree _o1[2], _r1;
   11881            0 :                                               {
   11882            0 :                                                 tree _o2[2], _r2;
   11883            0 :                                                 {
   11884            0 :                                                   tree _o3[1], _r3;
   11885            0 :                                                   _o3[0] = captures[1];
   11886            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG2F, TREE_TYPE (_o3[0]), 1, _o3[0]);
   11887            0 :                                                   if (!_r3)
   11888            0 :                                                     goto next_after_fail1534;
   11889            0 :                                                   _o2[0] = _r3;
   11890              :                                                 }
   11891            0 :                                                 _o2[1] = captures[2];
   11892            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   11893            0 :                                                 _o1[0] = _r2;
   11894              :                                               }
   11895            0 :                                               _o1[1] = captures[4];
   11896            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11897            0 :                                               res_op0 = _r1;
   11898              :                                             }
   11899            0 :                                             tree _r;
   11900            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2F, type, 1, res_op0);
   11901            0 :                                             if (!_r)
   11902            0 :                                               goto next_after_fail1534;
   11903            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1022, __FILE__, __LINE__, true);
   11904              :                                             return _r;
   11905              :                                           }
   11906     67220435 : next_after_fail1534:;
   11907              :                                         }
   11908              :                                     }
   11909              :                                 }
   11910              :                                 break;
   11911              :                               }
   11912              :                             default:;
   11913              :                             }
   11914              :                         }
   11915              :                       break;
   11916           24 :                     case CFN_BUILT_IN_EXP2F:
   11917           24 :                       if (call_expr_nargs (_p1) == 1)
   11918              :     {
   11919           24 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11920           24 :                           {
   11921           24 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   11922           24 :                             if (flag_unsafe_math_optimizations
   11923              : )
   11924              :                               {
   11925           24 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1535;
   11926           24 :                                 {
   11927           24 :                                   tree res_op0;
   11928           24 :                                   {
   11929           24 :                                     tree _o1[2], _r1;
   11930           24 :                                     _o1[0] = captures[1];
   11931           24 :                                     _o1[1] = captures[3];
   11932           24 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11933           24 :                                     res_op0 = _r1;
   11934              :                                   }
   11935           24 :                                   tree _r;
   11936           24 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2F, type, 1, res_op0);
   11937           24 :                                   if (!_r)
   11938            0 :                                     goto next_after_fail1535;
   11939           24 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1021, __FILE__, __LINE__, true);
   11940              :                                   return _r;
   11941              :                                 }
   11942     67220435 : next_after_fail1535:;
   11943              :                               }
   11944              :                           }
   11945              :                         }
   11946              :                       break;
   11947              :                     default:;
   11948              :                     }
   11949              :                   break;
   11950              :                 default:;
   11951              :                 }
   11952              :             }
   11953              :           break;
   11954           48 :         case CFN_BUILT_IN_EXP2L:
   11955           48 :           if (call_expr_nargs (_p0) == 1)
   11956              :     {
   11957           48 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11958           48 :               switch (TREE_CODE (_p1))
   11959              :                 {
   11960           24 :                 case CALL_EXPR:
   11961           24 :                   switch (get_call_combined_fn (_p1))
   11962              :                     {
   11963            0 :                     case CFN_BUILT_IN_POWL:
   11964            0 :                       if (call_expr_nargs (_p1) == 2)
   11965              :     {
   11966            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11967            0 :                           tree _q41 = CALL_EXPR_ARG (_p1, 1);
   11968            0 :                           switch (TREE_CODE (_q40))
   11969              :                             {
   11970            0 :                             case REAL_CST:
   11971            0 :                               {
   11972            0 :                                 {
   11973            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
   11974            0 :                                   if (flag_unsafe_math_optimizations
   11975              : )
   11976              :                                     {
   11977            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   11978            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   11979              : )
   11980              :                                         {
   11981            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1536;
   11982            0 :                                           {
   11983            0 :                                             tree res_op0;
   11984            0 :                                             {
   11985            0 :                                               tree _o1[2], _r1;
   11986            0 :                                               {
   11987            0 :                                                 tree _o2[2], _r2;
   11988            0 :                                                 {
   11989            0 :                                                   tree _o3[1], _r3;
   11990            0 :                                                   _o3[0] = captures[1];
   11991            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG2L, TREE_TYPE (_o3[0]), 1, _o3[0]);
   11992            0 :                                                   if (!_r3)
   11993            0 :                                                     goto next_after_fail1536;
   11994            0 :                                                   _o2[0] = _r3;
   11995              :                                                 }
   11996            0 :                                                 _o2[1] = captures[2];
   11997            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   11998            0 :                                                 _o1[0] = _r2;
   11999              :                                               }
   12000            0 :                                               _o1[1] = captures[4];
   12001            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   12002            0 :                                               res_op0 = _r1;
   12003              :                                             }
   12004            0 :                                             tree _r;
   12005            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2L, type, 1, res_op0);
   12006            0 :                                             if (!_r)
   12007            0 :                                               goto next_after_fail1536;
   12008            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1022, __FILE__, __LINE__, true);
   12009              :                                             return _r;
   12010              :                                           }
   12011     67220435 : next_after_fail1536:;
   12012              :                                         }
   12013              :                                     }
   12014              :                                 }
   12015              :                                 break;
   12016              :                               }
   12017              :                             default:;
   12018              :                             }
   12019              :                         }
   12020              :                       break;
   12021           24 :                     case CFN_BUILT_IN_EXP2L:
   12022           24 :                       if (call_expr_nargs (_p1) == 1)
   12023              :     {
   12024           24 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   12025           24 :                           {
   12026           24 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   12027           24 :                             if (flag_unsafe_math_optimizations
   12028              : )
   12029              :                               {
   12030           24 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1537;
   12031           24 :                                 {
   12032           24 :                                   tree res_op0;
   12033           24 :                                   {
   12034           24 :                                     tree _o1[2], _r1;
   12035           24 :                                     _o1[0] = captures[1];
   12036           24 :                                     _o1[1] = captures[3];
   12037           24 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   12038           24 :                                     res_op0 = _r1;
   12039              :                                   }
   12040           24 :                                   tree _r;
   12041           24 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2L, type, 1, res_op0);
   12042           24 :                                   if (!_r)
   12043            0 :                                     goto next_after_fail1537;
   12044           24 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1021, __FILE__, __LINE__, true);
   12045              :                                   return _r;
   12046              :                                 }
   12047     67220435 : next_after_fail1537:;
   12048              :                               }
   12049              :                           }
   12050              :                         }
   12051              :                       break;
   12052              :                     default:;
   12053              :                     }
   12054              :                   break;
   12055              :                 default:;
   12056              :                 }
   12057              :             }
   12058              :           break;
   12059            5 :         case CFN_BUILT_IN_LDEXP:
   12060            5 :           if (call_expr_nargs (_p0) == 2)
   12061              :     {
   12062            5 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12063            5 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   12064            5 :               switch (TREE_CODE (_p1))
   12065              :                 {
   12066            2 :                 case REAL_CST:
   12067            2 :                   {
   12068            2 :                     {
   12069            2 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q21 };
   12070            2 :                       tree res = generic_simplify_213 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LDEXP);
   12071            2 :                       if (res) return res;
   12072              :                     }
   12073            1 :                     break;
   12074              :                   }
   12075            4 :                 default:;
   12076              :                 }
   12077            4 :               switch (TREE_CODE (_q20))
   12078              :                 {
   12079            3 :                 case REAL_CST:
   12080            3 :                   {
   12081            3 :                     {
   12082            3 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q21 };
   12083            3 :                       tree res = generic_simplify_214 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LDEXP);
   12084            3 :                       if (res) return res;
   12085              :                     }
   12086            0 :                     break;
   12087              :                   }
   12088              :                 default:;
   12089              :                 }
   12090              :             }
   12091              :           break;
   12092           24 :         case CFN_BUILT_IN_POW10:
   12093           24 :           if (call_expr_nargs (_p0) == 1)
   12094              :     {
   12095           24 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12096           24 :               switch (TREE_CODE (_p1))
   12097              :                 {
   12098           12 :                 case CALL_EXPR:
   12099           12 :                   switch (get_call_combined_fn (_p1))
   12100              :                     {
   12101            0 :                     case CFN_BUILT_IN_POW:
   12102            0 :                       if (call_expr_nargs (_p1) == 2)
   12103              :     {
   12104            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   12105            0 :                           tree _q41 = CALL_EXPR_ARG (_p1, 1);
   12106            0 :                           switch (TREE_CODE (_q40))
   12107              :                             {
   12108            0 :                             case REAL_CST:
   12109            0 :                               {
   12110            0 :                                 {
   12111            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
   12112            0 :                                   if (flag_unsafe_math_optimizations
   12113              : )
   12114              :                                     {
   12115            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   12116            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   12117              : )
   12118              :                                         {
   12119            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1538;
   12120            0 :                                           {
   12121            0 :                                             tree res_op0;
   12122            0 :                                             {
   12123            0 :                                               tree _o1[2], _r1;
   12124            0 :                                               {
   12125            0 :                                                 tree _o2[2], _r2;
   12126            0 :                                                 {
   12127            0 :                                                   tree _o3[1], _r3;
   12128            0 :                                                   _o3[0] = captures[1];
   12129            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10, TREE_TYPE (_o3[0]), 1, _o3[0]);
   12130            0 :                                                   if (!_r3)
   12131            0 :                                                     goto next_after_fail1538;
   12132            0 :                                                   _o2[0] = _r3;
   12133              :                                                 }
   12134            0 :                                                 _o2[1] = captures[2];
   12135            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   12136            0 :                                                 _o1[0] = _r2;
   12137              :                                               }
   12138            0 :                                               _o1[1] = captures[4];
   12139            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   12140            0 :                                               res_op0 = _r1;
   12141              :                                             }
   12142            0 :                                             tree _r;
   12143            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10, type, 1, res_op0);
   12144            0 :                                             if (!_r)
   12145            0 :                                               goto next_after_fail1538;
   12146            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1022, __FILE__, __LINE__, true);
   12147              :                                             return _r;
   12148              :                                           }
   12149     67220435 : next_after_fail1538:;
   12150              :                                         }
   12151              :                                     }
   12152              :                                 }
   12153              :                                 break;
   12154              :                               }
   12155              :                             default:;
   12156              :                             }
   12157              :                         }
   12158              :                       break;
   12159           12 :                     case CFN_BUILT_IN_POW10:
   12160           12 :                       if (call_expr_nargs (_p1) == 1)
   12161              :     {
   12162           12 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   12163           12 :                           {
   12164           12 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   12165           12 :                             if (flag_unsafe_math_optimizations
   12166              : )
   12167              :                               {
   12168           12 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1539;
   12169           12 :                                 {
   12170           12 :                                   tree res_op0;
   12171           12 :                                   {
   12172           12 :                                     tree _o1[2], _r1;
   12173           12 :                                     _o1[0] = captures[1];
   12174           12 :                                     _o1[1] = captures[3];
   12175           12 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   12176           12 :                                     res_op0 = _r1;
   12177              :                                   }
   12178           12 :                                   tree _r;
   12179           12 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10, type, 1, res_op0);
   12180           12 :                                   if (!_r)
   12181           12 :                                     goto next_after_fail1539;
   12182            0 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1021, __FILE__, __LINE__, true);
   12183              :                                   return _r;
   12184              :                                 }
   12185     67220435 : next_after_fail1539:;
   12186              :                               }
   12187              :                           }
   12188              :                         }
   12189              :                       break;
   12190              :                     default:;
   12191              :                     }
   12192              :                   break;
   12193              :                 default:;
   12194              :                 }
   12195              :             }
   12196              :           break;
   12197              :         default:;
   12198              :         }
   12199              :       break;
   12200     67220435 :     default:;
   12201              :     }
   12202     67220435 :   switch (TREE_CODE (_p1))
   12203              :     {
   12204       901243 :     case CALL_EXPR:
   12205       901243 :       switch (get_call_combined_fn (_p1))
   12206              :         {
   12207            0 :         case CFN_BUILT_IN_LDEXPF:
   12208            0 :           if (call_expr_nargs (_p1) == 2)
   12209              :     {
   12210            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
   12211            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
   12212            0 :               switch (TREE_CODE (_q30))
   12213              :                 {
   12214            0 :                 case REAL_CST:
   12215            0 :                   {
   12216            0 :                     {
   12217            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
   12218            0 :                       tree res = generic_simplify_214 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LDEXPF);
   12219            0 :                       if (res) return res;
   12220              :                     }
   12221            0 :                     break;
   12222              :                   }
   12223              :                 default:;
   12224              :                 }
   12225              :             }
   12226              :           break;
   12227            0 :         case CFN_BUILT_IN_LDEXPL:
   12228            0 :           if (call_expr_nargs (_p1) == 2)
   12229              :     {
   12230            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
   12231            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
   12232            0 :               switch (TREE_CODE (_q30))
   12233              :                 {
   12234            0 :                 case REAL_CST:
   12235            0 :                   {
   12236            0 :                     {
   12237            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
   12238            0 :                       tree res = generic_simplify_214 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LDEXPL);
   12239            0 :                       if (res) return res;
   12240              :                     }
   12241            0 :                     break;
   12242              :                   }
   12243              :                 default:;
   12244              :                 }
   12245              :             }
   12246              :           break;
   12247            0 :         case CFN_LDEXP:
   12248            0 :           if (call_expr_nargs (_p1) == 2)
   12249              :     {
   12250            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
   12251            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
   12252            0 :               switch (TREE_CODE (_q30))
   12253              :                 {
   12254            0 :                 case REAL_CST:
   12255            0 :                   {
   12256            0 :                     {
   12257            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
   12258            0 :                       tree res = generic_simplify_214 (loc, type, _p0, _p1, captures, CFN_LDEXP);
   12259            0 :                       if (res) return res;
   12260              :                     }
   12261            0 :                     break;
   12262              :                   }
   12263              :                 default:;
   12264              :                 }
   12265              :             }
   12266              :           break;
   12267            0 :         case CFN_BUILT_IN_LDEXP:
   12268            0 :           if (call_expr_nargs (_p1) == 2)
   12269              :     {
   12270            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
   12271            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
   12272            0 :               switch (TREE_CODE (_q30))
   12273              :                 {
   12274            0 :                 case REAL_CST:
   12275            0 :                   {
   12276            0 :                     {
   12277            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
   12278            0 :                       tree res = generic_simplify_214 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LDEXP);
   12279            0 :                       if (res) return res;
   12280              :                     }
   12281            0 :                     break;
   12282              :                   }
   12283              :                 default:;
   12284              :                 }
   12285              :             }
   12286              :           break;
   12287              :         default:;
   12288              :         }
   12289              :       break;
   12290     67220435 :     default:;
   12291              :     }
   12292     67220435 :   switch (TREE_CODE (_p0))
   12293              :     {
   12294      2530983 :     case CALL_EXPR:
   12295      2530983 :       switch (get_call_combined_fn (_p0))
   12296              :         {
   12297           29 :         case CFN_BUILT_IN_COS:
   12298           29 :           if (call_expr_nargs (_p0) == 1)
   12299              :     {
   12300           29 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12301           29 :               switch (TREE_CODE (_p1))
   12302              :                 {
   12303            4 :                 case CALL_EXPR:
   12304            4 :                   switch (get_call_combined_fn (_p1))
   12305              :                     {
   12306            2 :                     case CFN_BUILT_IN_TAN:
   12307            2 :                       if (call_expr_nargs (_p1) == 1)
   12308              :     {
   12309            2 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   12310            2 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
   12311              :                             {
   12312            2 :                               {
   12313            2 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _p0 };
   12314            2 :                                 tree res = generic_simplify_215 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_TAN, CFN_BUILT_IN_COS, CFN_BUILT_IN_SIN);
   12315            2 :                                 if (res) return res;
   12316              :                               }
   12317              :                             }
   12318              :                         }
   12319              :                       break;
   12320              :                     default:;
   12321              :                     }
   12322              :                   break;
   12323              :                 default:;
   12324              :                 }
   12325              :             }
   12326              :           break;
   12327            2 :         case CFN_BUILT_IN_TAN:
   12328            2 :           if (call_expr_nargs (_p0) == 1)
   12329              :     {
   12330            2 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12331            2 :               switch (TREE_CODE (_p1))
   12332              :                 {
   12333            2 :                 case CALL_EXPR:
   12334            2 :                   switch (get_call_combined_fn (_p1))
   12335              :                     {
   12336            2 :                     case CFN_BUILT_IN_COS:
   12337            2 :                       if (call_expr_nargs (_p1) == 1)
   12338              :     {
   12339            2 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   12340            2 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
   12341              :                             {
   12342            2 :                               {
   12343            2 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   12344            2 :                                 tree res = generic_simplify_215 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_TAN, CFN_BUILT_IN_COS, CFN_BUILT_IN_SIN);
   12345            2 :                                 if (res) return res;
   12346              :                               }
   12347              :                             }
   12348              :                         }
   12349              :                       break;
   12350              :                     default:;
   12351              :                     }
   12352              :                   break;
   12353              :                 default:;
   12354              :                 }
   12355              :             }
   12356              :           break;
   12357           18 :         case CFN_BUILT_IN_COSF:
   12358           18 :           if (call_expr_nargs (_p0) == 1)
   12359              :     {
   12360           18 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12361           18 :               switch (TREE_CODE (_p1))
   12362              :                 {
   12363            9 :                 case CALL_EXPR:
   12364            9 :                   switch (get_call_combined_fn (_p1))
   12365              :                     {
   12366            2 :                     case CFN_BUILT_IN_TANF:
   12367            2 :                       if (call_expr_nargs (_p1) == 1)
   12368              :     {
   12369            2 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   12370            2 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
   12371              :                             {
   12372            2 :                               {
   12373            2 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _p0 };
   12374            2 :                                 tree res = generic_simplify_215 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_TANF, CFN_BUILT_IN_COSF, CFN_BUILT_IN_SINF);
   12375            2 :                                 if (res) return res;
   12376              :                               }
   12377              :                             }
   12378              :                         }
   12379              :                       break;
   12380              :                     default:;
   12381              :                     }
   12382              :                   break;
   12383              :                 default:;
   12384              :                 }
   12385              :             }
   12386              :           break;
   12387            2 :         case CFN_BUILT_IN_COSL:
   12388            2 :           if (call_expr_nargs (_p0) == 1)
   12389              :     {
   12390            2 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12391            2 :               switch (TREE_CODE (_p1))
   12392              :                 {
   12393            2 :                 case CALL_EXPR:
   12394            2 :                   switch (get_call_combined_fn (_p1))
   12395              :                     {
   12396            2 :                     case CFN_BUILT_IN_TANL:
   12397            2 :                       if (call_expr_nargs (_p1) == 1)
   12398              :     {
   12399            2 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   12400            2 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
   12401              :                             {
   12402            2 :                               {
   12403            2 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _p0 };
   12404            2 :                                 tree res = generic_simplify_215 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_TANL, CFN_BUILT_IN_COSL, CFN_BUILT_IN_SINL);
   12405            2 :                                 if (res) return res;
   12406              :                               }
   12407              :                             }
   12408              :                         }
   12409              :                       break;
   12410              :                     default:;
   12411              :                     }
   12412              :                   break;
   12413              :                 default:;
   12414              :                 }
   12415              :             }
   12416              :           break;
   12417            2 :         case CFN_BUILT_IN_TANF:
   12418            2 :           if (call_expr_nargs (_p0) == 1)
   12419              :     {
   12420            2 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12421            2 :               switch (TREE_CODE (_p1))
   12422              :                 {
   12423            2 :                 case CALL_EXPR:
   12424            2 :                   switch (get_call_combined_fn (_p1))
   12425              :                     {
   12426            2 :                     case CFN_BUILT_IN_COSF:
   12427            2 :                       if (call_expr_nargs (_p1) == 1)
   12428              :     {
   12429            2 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   12430            2 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
   12431              :                             {
   12432            2 :                               {
   12433            2 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   12434            2 :                                 tree res = generic_simplify_215 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_TANF, CFN_BUILT_IN_COSF, CFN_BUILT_IN_SINF);
   12435            2 :                                 if (res) return res;
   12436              :                               }
   12437              :                             }
   12438              :                         }
   12439              :                       break;
   12440              :                     default:;
   12441              :                     }
   12442              :                   break;
   12443              :                 default:;
   12444              :                 }
   12445              :             }
   12446              :           break;
   12447            2 :         case CFN_BUILT_IN_TANL:
   12448            2 :           if (call_expr_nargs (_p0) == 1)
   12449              :     {
   12450            2 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12451            2 :               switch (TREE_CODE (_p1))
   12452              :                 {
   12453            2 :                 case CALL_EXPR:
   12454            2 :                   switch (get_call_combined_fn (_p1))
   12455              :                     {
   12456            2 :                     case CFN_BUILT_IN_COSL:
   12457            2 :                       if (call_expr_nargs (_p1) == 1)
   12458              :     {
   12459            2 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   12460            2 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
   12461              :                             {
   12462            2 :                               {
   12463            2 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   12464            2 :                                 tree res = generic_simplify_215 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_TANL, CFN_BUILT_IN_COSL, CFN_BUILT_IN_SINL);
   12465            2 :                                 if (res) return res;
   12466              :                               }
   12467              :                             }
   12468              :                         }
   12469              :                       break;
   12470              :                     default:;
   12471              :                     }
   12472              :                   break;
   12473              :                 default:;
   12474              :                 }
   12475              :             }
   12476              :           break;
   12477            0 :         case CFN_COS:
   12478            0 :           if (call_expr_nargs (_p0) == 1)
   12479              :     {
   12480            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12481            0 :               switch (TREE_CODE (_p1))
   12482              :                 {
   12483            0 :                 case CALL_EXPR:
   12484            0 :                   switch (get_call_combined_fn (_p1))
   12485              :                     {
   12486            0 :                     case CFN_TAN:
   12487            0 :                       if (call_expr_nargs (_p1) == 1)
   12488              :     {
   12489            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   12490            0 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
   12491              :                             {
   12492            0 :                               {
   12493            0 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _p0 };
   12494            0 :                                 tree res = generic_simplify_215 (loc, type, _p0, _p1, captures, CFN_TAN, CFN_COS, CFN_SIN);
   12495            0 :                                 if (res) return res;
   12496              :                               }
   12497              :                             }
   12498              :                         }
   12499              :                       break;
   12500              :                     default:;
   12501              :                     }
   12502              :                   break;
   12503              :                 default:;
   12504              :                 }
   12505              :             }
   12506              :           break;
   12507            0 :         case CFN_TAN:
   12508            0 :           if (call_expr_nargs (_p0) == 1)
   12509              :     {
   12510            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12511            0 :               switch (TREE_CODE (_p1))
   12512              :                 {
   12513            0 :                 case CALL_EXPR:
   12514            0 :                   switch (get_call_combined_fn (_p1))
   12515              :                     {
   12516            0 :                     case CFN_COS:
   12517            0 :                       if (call_expr_nargs (_p1) == 1)
   12518              :     {
   12519            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   12520            0 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
   12521              :                             {
   12522            0 :                               {
   12523            0 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   12524            0 :                                 tree res = generic_simplify_215 (loc, type, _p0, _p1, captures, CFN_TAN, CFN_COS, CFN_SIN);
   12525            0 :                                 if (res) return res;
   12526              :                               }
   12527              :                             }
   12528              :                         }
   12529              :                       break;
   12530              :                     default:;
   12531              :                     }
   12532              :                   break;
   12533              :                 default:;
   12534              :                 }
   12535              :             }
   12536              :           break;
   12537              :         default:;
   12538              :         }
   12539              :       break;
   12540     67220423 :     default:;
   12541              :     }
   12542     67220423 :   switch (TREE_CODE (_p1))
   12543              :     {
   12544       901231 :     case CALL_EXPR:
   12545       901231 :       switch (get_call_combined_fn (_p1))
   12546              :         {
   12547           60 :         case CFN_BUILT_IN_POW:
   12548           60 :           if (call_expr_nargs (_p1) == 2)
   12549              :     {
   12550           60 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
   12551           60 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
   12552           60 :               if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
   12553              :                 {
   12554            0 :                   switch (TREE_CODE (_q31))
   12555              :                     {
   12556            0 :                     case REAL_CST:
   12557            0 :                       {
   12558            0 :                         {
   12559            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
   12560            0 :                           tree res = generic_simplify_212 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POW);
   12561            0 :                           if (res) return res;
   12562              :                         }
   12563            0 :                         break;
   12564              :                       }
   12565              :                     default:;
   12566              :                     }
   12567              :                 }
   12568              :             }
   12569              :           break;
   12570           23 :         case CFN_BUILT_IN_POWF:
   12571           23 :           if (call_expr_nargs (_p1) == 2)
   12572              :     {
   12573           23 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
   12574           23 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
   12575           23 :               if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
   12576              :                 {
   12577            0 :                   switch (TREE_CODE (_q31))
   12578              :                     {
   12579            0 :                     case REAL_CST:
   12580            0 :                       {
   12581            0 :                         {
   12582            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
   12583            0 :                           tree res = generic_simplify_212 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWF);
   12584            0 :                           if (res) return res;
   12585              :                         }
   12586            0 :                         break;
   12587              :                       }
   12588              :                     default:;
   12589              :                     }
   12590              :                 }
   12591              :             }
   12592              :           break;
   12593           12 :         case CFN_BUILT_IN_POWL:
   12594           12 :           if (call_expr_nargs (_p1) == 2)
   12595              :     {
   12596           12 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
   12597           12 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
   12598           12 :               if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
   12599              :                 {
   12600            0 :                   switch (TREE_CODE (_q31))
   12601              :                     {
   12602            0 :                     case REAL_CST:
   12603            0 :                       {
   12604            0 :                         {
   12605            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
   12606            0 :                           tree res = generic_simplify_212 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWL);
   12607            0 :                           if (res) return res;
   12608              :                         }
   12609            0 :                         break;
   12610              :                       }
   12611              :                     default:;
   12612              :                     }
   12613              :                 }
   12614              :             }
   12615              :           break;
   12616            0 :         case CFN_POW:
   12617            0 :           if (call_expr_nargs (_p1) == 2)
   12618              :     {
   12619            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
   12620            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
   12621            0 :               if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
   12622              :                 {
   12623            0 :                   switch (TREE_CODE (_q31))
   12624              :                     {
   12625            0 :                     case REAL_CST:
   12626            0 :                       {
   12627            0 :                         {
   12628            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
   12629            0 :                           tree res = generic_simplify_212 (loc, type, _p0, _p1, captures, CFN_POW);
   12630            0 :                           if (res) return res;
   12631              :                         }
   12632            0 :                         break;
   12633              :                       }
   12634              :                     default:;
   12635              :                     }
   12636              :                 }
   12637              :             }
   12638              :           break;
   12639              :         default:;
   12640              :         }
   12641              :       break;
   12642     67220423 :     default:;
   12643              :     }
   12644     67220423 :   switch (TREE_CODE (_p0))
   12645              :     {
   12646            1 :     case VEC_PERM_EXPR:
   12647            1 :       {
   12648            1 :         tree _q20 = TREE_OPERAND (_p0, 0);
   12649            1 :         tree _q21 = TREE_OPERAND (_p0, 1);
   12650            1 :         tree _q22 = TREE_OPERAND (_p0, 2);
   12651            1 :         if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
   12652              :           {
   12653            1 :             switch (TREE_CODE (_p1))
   12654              :               {
   12655            0 :               case VEC_PERM_EXPR:
   12656            0 :                 {
   12657            0 :                   tree _q60 = TREE_OPERAND (_p1, 0);
   12658            0 :                   tree _q61 = TREE_OPERAND (_p1, 1);
   12659            0 :                   tree _q62 = TREE_OPERAND (_p1, 2);
   12660            0 :                   if ((_q61 == _q60 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q60, 0) && types_match (_q61, _q60)))
   12661              :                     {
   12662            0 :                       if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
   12663              :                         {
   12664            0 :                           {
   12665            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q22, _q60 };
   12666            0 :                             if (VECTOR_INTEGER_TYPE_P (type)
   12667              : )
   12668              :                               {
   12669            0 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1540;
   12670            0 :                                 {
   12671            0 :                                   tree res_op0;
   12672            0 :                                   {
   12673            0 :                                     tree _o1[2], _r1;
   12674            0 :                                     _o1[0] = captures[0];
   12675            0 :                                     _o1[1] = captures[2];
   12676            0 :                                     _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   12677            0 :                                     captures[3] = _r1;
   12678              :                                   }
   12679            0 :                                   res_op0 = unshare_expr (captures[3]);
   12680            0 :                                   tree res_op1;
   12681            0 :                                   res_op1 = captures[3];
   12682            0 :                                   tree res_op2;
   12683            0 :                                   res_op2 = captures[1];
   12684            0 :                                   tree _r;
   12685            0 :                                   _r = fold_build3_loc (loc, VEC_PERM_EXPR, type, res_op0, res_op1, res_op2);
   12686            0 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 942, __FILE__, __LINE__, true);
   12687     72733665 :                                   return _r;
   12688              :                                 }
   12689            0 : next_after_fail1540:;
   12690              :                               }
   12691              :                           }
   12692              :                         }
   12693              :                     }
   12694              :                   break;
   12695              :                 }
   12696            1 :               default:;
   12697              :               }
   12698            1 :             switch (TREE_CODE (_q22))
   12699              :               {
   12700            0 :               case VECTOR_CST:
   12701            0 :                 {
   12702            0 :                   switch (TREE_CODE (_p1))
   12703              :                     {
   12704            0 :                     case VEC_PERM_EXPR:
   12705            0 :                       {
   12706            0 :                         tree _q60 = TREE_OPERAND (_p1, 0);
   12707            0 :                         tree _q61 = TREE_OPERAND (_p1, 1);
   12708            0 :                         tree _q62 = TREE_OPERAND (_p1, 2);
   12709            0 :                         if ((_q61 == _q60 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q60, 0) && types_match (_q61, _q60)))
   12710              :                           {
   12711            0 :                             if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
   12712              :                               {
   12713            0 :                                 switch (TREE_CODE (_q62))
   12714              :                                   {
   12715            0 :                                   case VECTOR_CST:
   12716            0 :                                     {
   12717            0 :                                       {
   12718            0 :                                         tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q22, _q60 };
   12719            0 :                                         tree res = generic_simplify_90 (loc, type, _p0, _p1, captures, MULT_EXPR);
   12720            0 :                                         if (res) return res;
   12721              :                                       }
   12722            0 :                                       break;
   12723              :                                     }
   12724              :                                   default:;
   12725              :                                   }
   12726              :                               }
   12727              :                           }
   12728              :                         break;
   12729              :                       }
   12730              :                     default:;
   12731              :                     }
   12732              :                   break;
   12733              :                 }
   12734              :               default:;
   12735              :               }
   12736              :           }
   12737              :         break;
   12738              :       }
   12739      2530971 :     case CALL_EXPR:
   12740      2530971 :       switch (get_call_combined_fn (_p0))
   12741              :         {
   12742          115 :         case CFN_BUILT_IN_POW:
   12743          115 :           if (call_expr_nargs (_p0) == 2)
   12744              :     {
   12745          115 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12746          115 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   12747          115 :               switch (TREE_CODE (_p1))
   12748              :                 {
   12749           80 :                 case CALL_EXPR:
   12750           80 :                   switch (get_call_combined_fn (_p1))
   12751              :                     {
   12752           20 :                     case CFN_BUILT_IN_POW:
   12753           20 :                       if (call_expr_nargs (_p1) == 2)
   12754              :     {
   12755           20 :                           tree _q50 = CALL_EXPR_ARG (_p1, 0);
   12756           20 :                           tree _q51 = CALL_EXPR_ARG (_p1, 1);
   12757           20 :                           if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
   12758              :                             {
   12759           14 :                               {
   12760           14 :                                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
   12761           14 :                                 tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POW);
   12762           14 :                                 if (res) return res;
   12763              :                               }
   12764              :                             }
   12765            6 :                           if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
   12766              :                             {
   12767            2 :                               {
   12768            2 :                                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   12769            2 :                                 tree res = generic_simplify_217 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POW);
   12770            2 :                                 if (res) return res;
   12771              :                               }
   12772              :                             }
   12773              :                         }
   12774              :                       break;
   12775              :                     default:;
   12776              :                     }
   12777              :                   break;
   12778              :                 default:;
   12779              :                 }
   12780              :             }
   12781              :           break;
   12782           19 :         case CFN_BUILT_IN_POWF:
   12783           19 :           if (call_expr_nargs (_p0) == 2)
   12784              :     {
   12785           19 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12786           19 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   12787           19 :               switch (TREE_CODE (_p1))
   12788              :                 {
   12789           13 :                 case CALL_EXPR:
   12790           13 :                   switch (get_call_combined_fn (_p1))
   12791              :                     {
   12792           13 :                     case CFN_BUILT_IN_POWF:
   12793           13 :                       if (call_expr_nargs (_p1) == 2)
   12794              :     {
   12795           13 :                           tree _q50 = CALL_EXPR_ARG (_p1, 0);
   12796           13 :                           tree _q51 = CALL_EXPR_ARG (_p1, 1);
   12797           13 :                           if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
   12798              :                             {
   12799           12 :                               {
   12800           12 :                                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
   12801           12 :                                 tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWF);
   12802           12 :                                 if (res) return res;
   12803              :                               }
   12804              :                             }
   12805            1 :                           if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
   12806              :                             {
   12807            0 :                               {
   12808            0 :                                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   12809            0 :                                 tree res = generic_simplify_217 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWF);
   12810            0 :                                 if (res) return res;
   12811              :                               }
   12812              :                             }
   12813              :                         }
   12814              :                       break;
   12815              :                     default:;
   12816              :                     }
   12817              :                   break;
   12818              :                 default:;
   12819              :                 }
   12820              :             }
   12821              :           break;
   12822           26 :         case CFN_BUILT_IN_POWI:
   12823           26 :           if (call_expr_nargs (_p0) == 2)
   12824              :     {
   12825           26 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12826           26 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   12827           26 :               switch (TREE_CODE (_p1))
   12828              :                 {
   12829            0 :                 case CALL_EXPR:
   12830            0 :                   switch (get_call_combined_fn (_p1))
   12831              :                     {
   12832            0 :                     case CFN_BUILT_IN_POWI:
   12833            0 :                       if (call_expr_nargs (_p1) == 2)
   12834              :     {
   12835            0 :                           tree _q50 = CALL_EXPR_ARG (_p1, 0);
   12836            0 :                           tree _q51 = CALL_EXPR_ARG (_p1, 1);
   12837            0 :                           if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
   12838              :                             {
   12839            0 :                               {
   12840            0 :                                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   12841            0 :                                 if (flag_unsafe_math_optimizations && canonicalize_math_p ()
   12842              : )
   12843              :                                   {
   12844            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1541;
   12845            0 :                                     {
   12846            0 :                                       tree res_op0;
   12847            0 :                                       {
   12848            0 :                                         tree _o1[2], _r1;
   12849            0 :                                         _o1[0] = captures[1];
   12850            0 :                                         _o1[1] = captures[4];
   12851            0 :                                         _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   12852            0 :                                         res_op0 = _r1;
   12853              :                                       }
   12854            0 :                                       tree res_op1;
   12855            0 :                                       res_op1 = captures[2];
   12856            0 :                                       tree _r;
   12857            0 :                                       _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POWI, type, 2, res_op0, res_op1);
   12858            0 :                                       if (!_r)
   12859            0 :                                         goto next_after_fail1541;
   12860            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1023, __FILE__, __LINE__, true);
   12861              :                                       return _r;
   12862              :                                     }
   12863     72733665 : next_after_fail1541:;
   12864              :                                   }
   12865              :                               }
   12866              :                             }
   12867              :                         }
   12868              :                       break;
   12869              :                     default:;
   12870              :                     }
   12871              :                   break;
   12872              :                 default:;
   12873              :                 }
   12874              :             }
   12875              :           break;
   12876           12 :         case CFN_BUILT_IN_POWL:
   12877           12 :           if (call_expr_nargs (_p0) == 2)
   12878              :     {
   12879           12 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12880           12 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   12881           12 :               switch (TREE_CODE (_p1))
   12882              :                 {
   12883           12 :                 case CALL_EXPR:
   12884           12 :                   switch (get_call_combined_fn (_p1))
   12885              :                     {
   12886           12 :                     case CFN_BUILT_IN_POWL:
   12887           12 :                       if (call_expr_nargs (_p1) == 2)
   12888              :     {
   12889           12 :                           tree _q50 = CALL_EXPR_ARG (_p1, 0);
   12890           12 :                           tree _q51 = CALL_EXPR_ARG (_p1, 1);
   12891           12 :                           if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
   12892              :                             {
   12893           12 :                               {
   12894           12 :                                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
   12895           12 :                                 tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWL);
   12896           12 :                                 if (res) return res;
   12897              :                               }
   12898              :                             }
   12899            0 :                           if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
   12900              :                             {
   12901            0 :                               {
   12902            0 :                                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   12903            0 :                                 tree res = generic_simplify_217 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWL);
   12904            0 :                                 if (res) return res;
   12905              :                               }
   12906              :                             }
   12907              :                         }
   12908              :                       break;
   12909              :                     default:;
   12910              :                     }
   12911              :                   break;
   12912              :                 default:;
   12913              :                 }
   12914              :             }
   12915              :           break;
   12916            0 :         case CFN_POW:
   12917            0 :           if (call_expr_nargs (_p0) == 2)
   12918              :     {
   12919            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12920            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   12921            0 :               switch (TREE_CODE (_p1))
   12922              :                 {
   12923            0 :                 case CALL_EXPR:
   12924            0 :                   switch (get_call_combined_fn (_p1))
   12925              :                     {
   12926            0 :                     case CFN_POW:
   12927            0 :                       if (call_expr_nargs (_p1) == 2)
   12928              :     {
   12929            0 :                           tree _q50 = CALL_EXPR_ARG (_p1, 0);
   12930            0 :                           tree _q51 = CALL_EXPR_ARG (_p1, 1);
   12931            0 :                           if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
   12932              :                             {
   12933            0 :                               {
   12934            0 :                                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
   12935            0 :                                 tree res = generic_simplify_216 (loc, type, _p0, _p1, captures, CFN_POW);
   12936            0 :                                 if (res) return res;
   12937              :                               }
   12938              :                             }
   12939            0 :                           if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
   12940              :                             {
   12941            0 :                               {
   12942            0 :                                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   12943            0 :                                 tree res = generic_simplify_217 (loc, type, _p0, _p1, captures, CFN_POW);
   12944            0 :                                 if (res) return res;
   12945              :                               }
   12946              :                             }
   12947              :                         }
   12948              :                       break;
   12949              :                     default:;
   12950              :                     }
   12951              :                   break;
   12952              :                 default:;
   12953              :                 }
   12954              :             }
   12955              :           break;
   12956           14 :         case CFN_BUILT_IN_POWIF:
   12957           14 :           if (call_expr_nargs (_p0) == 2)
   12958              :     {
   12959           14 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12960           14 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   12961           14 :               switch (TREE_CODE (_p1))
   12962              :                 {
   12963            0 :                 case CALL_EXPR:
   12964            0 :                   switch (get_call_combined_fn (_p1))
   12965              :                     {
   12966            0 :                     case CFN_BUILT_IN_POWIF:
   12967            0 :                       if (call_expr_nargs (_p1) == 2)
   12968              :     {
   12969            0 :                           tree _q50 = CALL_EXPR_ARG (_p1, 0);
   12970            0 :                           tree _q51 = CALL_EXPR_ARG (_p1, 1);
   12971            0 :                           if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
   12972              :                             {
   12973            0 :                               {
   12974            0 :                                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   12975            0 :                                 if (flag_unsafe_math_optimizations && canonicalize_math_p ()
   12976              : )
   12977              :                                   {
   12978            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1542;
   12979            0 :                                     {
   12980            0 :                                       tree res_op0;
   12981            0 :                                       {
   12982            0 :                                         tree _o1[2], _r1;
   12983            0 :                                         _o1[0] = captures[1];
   12984            0 :                                         _o1[1] = captures[4];
   12985            0 :                                         _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   12986            0 :                                         res_op0 = _r1;
   12987              :                                       }
   12988            0 :                                       tree res_op1;
   12989            0 :                                       res_op1 = captures[2];
   12990            0 :                                       tree _r;
   12991            0 :                                       _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POWIF, type, 2, res_op0, res_op1);
   12992            0 :                                       if (!_r)
   12993            0 :                                         goto next_after_fail1542;
   12994            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1023, __FILE__, __LINE__, true);
   12995              :                                       return _r;
   12996              :                                     }
   12997     72733665 : next_after_fail1542:;
   12998              :                                   }
   12999              :                               }
   13000              :                             }
   13001              :                         }
   13002              :                       break;
   13003              :                     default:;
   13004              :                     }
   13005              :                   break;
   13006              :                 default:;
   13007              :                 }
   13008              :             }
   13009              :           break;
   13010            5 :         case CFN_BUILT_IN_POWIL:
   13011            5 :           if (call_expr_nargs (_p0) == 2)
   13012              :     {
   13013            5 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   13014            5 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   13015            5 :               switch (TREE_CODE (_p1))
   13016              :                 {
   13017            0 :                 case CALL_EXPR:
   13018            0 :                   switch (get_call_combined_fn (_p1))
   13019              :                     {
   13020            0 :                     case CFN_BUILT_IN_POWIL:
   13021            0 :                       if (call_expr_nargs (_p1) == 2)
   13022              :     {
   13023            0 :                           tree _q50 = CALL_EXPR_ARG (_p1, 0);
   13024            0 :                           tree _q51 = CALL_EXPR_ARG (_p1, 1);
   13025            0 :                           if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
   13026              :                             {
   13027            0 :                               {
   13028            0 :                                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   13029            0 :                                 if (flag_unsafe_math_optimizations && canonicalize_math_p ()
   13030              : )
   13031              :                                   {
   13032            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1543;
   13033            0 :                                     {
   13034            0 :                                       tree res_op0;
   13035            0 :                                       {
   13036            0 :                                         tree _o1[2], _r1;
   13037            0 :                                         _o1[0] = captures[1];
   13038            0 :                                         _o1[1] = captures[4];
   13039            0 :                                         _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   13040            0 :                                         res_op0 = _r1;
   13041              :                                       }
   13042            0 :                                       tree res_op1;
   13043            0 :                                       res_op1 = captures[2];
   13044            0 :                                       tree _r;
   13045            0 :                                       _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POWIL, type, 2, res_op0, res_op1);
   13046            0 :                                       if (!_r)
   13047            0 :                                         goto next_after_fail1543;
   13048            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 1023, __FILE__, __LINE__, true);
   13049              :                                       return _r;
   13050              :                                     }
   13051     72733665 : next_after_fail1543:;
   13052              :                                   }
   13053              :                               }
   13054              :                             }
   13055              :                         }
   13056              :                       break;
   13057              :                     default:;
   13058              :                     }
   13059              :                   break;
   13060              :                 default:;
   13061              :                 }
   13062              :             }
   13063              :           break;
   13064              :         default:;
   13065              :         }
   13066              :       break;
   13067              :     default:;
   13068              :     }
   13069              :   return NULL_TREE;
   13070              : }
   13071              : #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.