LCOV - code coverage report
Current view: top level - /mnt/build/buildbot/bld/build-lcov/gcc - generic-match-1.cc (source / functions) Coverage Total Hit
Test: gcc.info Lines: 42.1 % 7713 3249
Test Date: 2026-07-11 15:47:05 Functions: 68.7 % 67 46
Legend: Lines:     hit not hit

            Line data    Source code
       1              : /* Generated automatically by the program `genmatch' from
       2              :    a IL pattern matching and simplification description.  */
       3              : #pragma GCC diagnostic push
       4              : #pragma GCC diagnostic ignored "-Wunused-variable"
       5              : #pragma GCC diagnostic ignored "-Wunused-function"
       6              : 
       7              : #include "generic-match-auto.h"
       8              : 
       9              : bool
      10    100854436 : tree_zero_one_valued_p (tree t)
      11              : {
      12    100854436 :   const tree type = TREE_TYPE (t);
      13    100854436 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
      14    100854436 :   if (TREE_SIDE_EFFECTS (t)) return false;
      15     95240776 :   {
      16     95240776 :     tree captures[1] ATTRIBUTE_UNUSED = { t };
      17    190481552 :     if (INTEGRAL_TYPE_P (type)
      18     68924738 :  && (TYPE_UNSIGNED (type)
      19     12399703 :  || TYPE_PRECISION (type) > 1)
      20    233090202 :  && wi::leu_p (tree_nonzero_bits (captures[0]), 1)
      21              : )
      22              :       {
      23       483674 :         {
      24       483674 :           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 28, __FILE__, __LINE__, false);
      25       483674 :           return true;
      26              :         }
      27              :       }
      28              :   }
      29     94757102 :   switch (TREE_CODE (t))
      30              :     {
      31       263390 :     case BIT_AND_EXPR:
      32       263390 :       {
      33       263390 :         tree _p0 = TREE_OPERAND (t, 0);
      34       263390 :         tree _p1 = TREE_OPERAND (t, 1);
      35       263390 :         if (integer_onep (_p1))
      36              :           {
      37            0 :             {
      38            0 :               tree captures[2] ATTRIBUTE_UNUSED = { t, _p0 };
      39            0 :               if (INTEGRAL_TYPE_P (type)
      40              : )
      41              :                 {
      42            0 :                   {
      43            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 29, __FILE__, __LINE__, false);
      44            0 :                     return true;
      45              :                   }
      46              :                 }
      47              :             }
      48              :           }
      49       263390 :         if (integer_onep (_p0))
      50              :           {
      51            0 :             {
      52            0 :               tree captures[2] ATTRIBUTE_UNUSED = { t, _p1 };
      53            0 :               if (INTEGRAL_TYPE_P (type)
      54              : )
      55              :                 {
      56            0 :                   {
      57            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 29, __FILE__, __LINE__, false);
      58            0 :                     return true;
      59              :                   }
      60              :                 }
      61              :             }
      62              :           }
      63              :         break;
      64              :       }
      65     45206416 :     CASE_CONVERT:
      66     45206416 :       {
      67     45206416 :         tree _p0 = TREE_OPERAND (t, 0);
      68     45206416 :         {
      69     45206416 :           tree captures[2] ATTRIBUTE_UNUSED = { t, _p0 };
      70     90405743 :           if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
      71     40591289 :  && (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
      72     35938590 :  || TYPE_PRECISION (TREE_TYPE (captures[1])) > 1)
      73     40591281 :  && INTEGRAL_TYPE_P (type)
      74     40591267 :  && (TYPE_UNSIGNED (type)
      75      1931453 :  || TYPE_PRECISION (type) > 1)
      76    131004099 :  && wi::leu_p (tree_nonzero_bits (captures[1]), 1)
      77              : )
      78              :             {
      79            0 :               {
      80            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 30, __FILE__, __LINE__, false);
      81            0 :                 return true;
      82              :               }
      83              :             }
      84              :         }
      85              :         break;
      86              :       }
      87     94757102 :     default:;
      88              :     }
      89     94757102 : if (tree_truth_valued_p (t))
      90              :   {
      91       170658 :     {
      92       170658 :       tree captures[1] ATTRIBUTE_UNUSED = { t };
      93       170658 :       if (INTEGRAL_TYPE_P (type)
      94       170658 :  && (TYPE_UNSIGNED (type)
      95       170579 :  || TYPE_PRECISION (type) > 1)
      96              : )
      97              :         {
      98       170608 :           {
      99       170608 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 31, __FILE__, __LINE__, false);
     100       170608 :             return true;
     101              :           }
     102              :         }
     103              :     }
     104              :   }
     105              :   return false;
     106              : }
     107              : 
     108              : tree
     109            1 : generic_simplify_2 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     110              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
     111              :  const combined_fn ARG_UNUSED (COPYSIGN_ALL))
     112              : {
     113            1 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     114            1 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail73;
     115            1 :   {
     116            1 :     tree res_op0;
     117            1 :     res_op0 = captures[0];
     118            1 :     tree _r;
     119            1 :     _r = fold_build1_loc (loc, ABS_EXPR, type, res_op0);
     120            1 :     if (TREE_SIDE_EFFECTS (captures[1]))
     121            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
     122            1 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 50, __FILE__, __LINE__, true);
     123              :     return _r;
     124              :   }
     125            0 : next_after_fail73:;
     126            0 :   return NULL_TREE;
     127              : }
     128              : 
     129              : tree
     130            0 : generic_simplify_9 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     131              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     132              :  const enum tree_code ARG_UNUSED (bit_op))
     133              : {
     134            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     135            0 :   if (bit_op == BIT_AND_EXPR
     136              : )
     137              :     {
     138            0 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail81;
     139            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail81;
     140            0 :       {
     141            0 :         tree _r;
     142            0 :         _r =  build_zero_cst (type);
     143            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 56, __FILE__, __LINE__, true);
     144            0 :         return _r;
     145              :       }
     146              : next_after_fail81:;
     147              :     }
     148              :   else
     149              :     {
     150            0 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail82;
     151            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail82;
     152            0 :       {
     153            0 :         tree _r;
     154            0 :         _r =  build_minus_one_cst (type);
     155            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 57, __FILE__, __LINE__, true);
     156            0 :         return _r;
     157              :       }
     158              : next_after_fail82:;
     159              :     }
     160              :   return NULL_TREE;
     161              : }
     162              : 
     163              : tree
     164            1 : generic_simplify_18 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     165              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     166              : {
     167            1 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     168            1 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail93;
     169            1 :   {
     170            1 :     tree res_op0;
     171            1 :     res_op0 = captures[1];
     172            1 :     tree res_op1;
     173            1 :     {
     174            1 :       tree _o1[1], _r1;
     175            1 :       _o1[0] = captures[2];
     176            1 :       _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
     177            1 :       res_op1 = _r1;
     178              :     }
     179            1 :     tree _r;
     180            1 :     _r = fold_build2_loc (loc, BIT_IOR_EXPR, type, res_op0, res_op1);
     181            1 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 66, __FILE__, __LINE__, true);
     182              :     return _r;
     183              :   }
     184            0 : next_after_fail93:;
     185            0 :   return NULL_TREE;
     186              : }
     187              : 
     188              : tree
     189          731 : generic_simplify_28 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     190              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     191              : {
     192          731 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     193          731 :   if (tree_nop_conversion_p (type, TREE_TYPE (captures[2]))
     194              : )
     195              :     {
     196          731 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail103;
     197          731 :       {
     198          731 :         tree res_op0;
     199          731 :         {
     200          731 :           tree _o1[2], _r1;
     201          731 :           {
     202          731 :             tree _o2[1], _r2;
     203          731 :             _o2[0] = captures[2];
     204          731 :             if (TREE_TYPE (_o2[0]) != type)
     205              :               {
     206            0 :                 _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o2[0]);
     207              :               }
     208              :             else
     209              :               _r2 = _o2[0];
     210          731 :             _o1[0] = _r2;
     211              :           }
     212          731 :           _o1[1] = captures[3];
     213          731 :           _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     214          731 :           res_op0 = _r1;
     215              :         }
     216          731 :         tree _r;
     217          731 :         _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
     218          731 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 76, __FILE__, __LINE__, true);
     219          731 :         return _r;
     220              :       }
     221            0 : next_after_fail103:;
     222              :     }
     223              :   return NULL_TREE;
     224              : }
     225              : 
     226              : tree
     227            7 : generic_simplify_36 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     228              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     229              :  const enum tree_code ARG_UNUSED (op))
     230              : {
     231            7 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     232            7 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail113;
     233            7 :   {
     234            7 :     tree _r;
     235            7 :     _r =  constant_boolean_node (true, type);
     236            7 :     if (TREE_SIDE_EFFECTS (captures[0]))
     237            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
     238            7 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 85, __FILE__, __LINE__, true);
     239              :     return _r;
     240              :   }
     241            0 : next_after_fail113:;
     242            0 :   return NULL_TREE;
     243              : }
     244              : 
     245              : tree
     246           24 : generic_simplify_39 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     247              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     248              : {
     249           24 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     250           24 :   if (tree_nop_conversion_p (type, TREE_TYPE (captures[2]))
     251              : )
     252              :     {
     253           24 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail116;
     254           24 :       {
     255           24 :         tree res_op0;
     256           24 :         {
     257           24 :           tree _o1[2], _r1;
     258           24 :           {
     259           24 :             tree _o2[1], _r2;
     260           24 :             _o2[0] = captures[2];
     261           24 :             if (TREE_TYPE (_o2[0]) != type)
     262              :               {
     263           24 :                 _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, _o2[0]);
     264              :               }
     265              :             else
     266              :               _r2 = _o2[0];
     267           24 :             _o1[0] = _r2;
     268              :           }
     269           24 :           _o1[1] = captures[3];
     270           24 :           _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     271           24 :           res_op0 = _r1;
     272              :         }
     273           24 :         tree _r;
     274           24 :         _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
     275           24 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 76, __FILE__, __LINE__, true);
     276           24 :         return _r;
     277              :       }
     278            0 : next_after_fail116:;
     279              :     }
     280              :   return NULL_TREE;
     281              : }
     282              : 
     283              : tree
     284            7 : generic_simplify_48 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     285              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     286              :  const enum tree_code ARG_UNUSED (op))
     287              : {
     288            7 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     289           14 :   if (INTEGRAL_TYPE_P (type)
     290            7 :  && tree_int_cst_sgn (captures[2]) > 0
     291            7 :  && tree_int_cst_sgn (captures[4]) > 0
     292           28 :  && (tree_nonzero_bits (captures[0]) & tree_nonzero_bits (captures[3])) == 0
     293              : )
     294              :     {
     295            4 :       {
     296            4 :  tree t = type;
     297            4 :  if (!TYPE_OVERFLOW_WRAPS (t))
     298            4 :  t = unsigned_type_for (t);
     299            4 :  wide_int wone = wi::one (TYPE_PRECISION (t));
     300            8 :  wide_int c = wi::add (wi::lshift (wone, wi::to_wide (captures[2])),
     301            8 :  wi::lshift (wone, wi::to_wide (captures[4])));
     302            4 :           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail126;
     303            4 :           if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail126;
     304            4 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail126;
     305            4 :           {
     306            4 :             tree res_op0;
     307            4 :             {
     308            4 :               tree _o1[2], _r1;
     309            4 :               {
     310            4 :                 tree _o2[1], _r2;
     311            4 :                 _o2[0] = captures[1];
     312            4 :                 if (TREE_TYPE (_o2[0]) != t)
     313              :                   {
     314            4 :                     _r2 = fold_build1_loc (loc, NOP_EXPR, t, _o2[0]);
     315              :                   }
     316              :                 else
     317              :                   _r2 = _o2[0];
     318            4 :                 _o1[0] = _r2;
     319              :               }
     320            4 :               _o1[1] =  wide_int_to_tree (t,c);
     321            4 :               _r1 = fold_build2_loc (loc, MULT_EXPR, t, _o1[0], _o1[1]);
     322            4 :               res_op0 = _r1;
     323              :             }
     324            4 :             tree _r;
     325            4 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
     326            4 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 94, __FILE__, __LINE__, true);
     327            4 :             return _r;
     328              :           }
     329            0 : next_after_fail126:;
     330            4 :       }
     331              :     }
     332              :   return NULL_TREE;
     333              : }
     334              : 
     335              : tree
     336           45 : generic_simplify_58 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     337              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     338              : {
     339           45 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     340           45 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail139;
     341           45 :   {
     342           45 :     if (! tree_invariant_p (captures[2])) goto next_after_fail139;
     343           45 :     tree res_op0;
     344           45 :     {
     345           45 :       tree _o1[2], _r1;
     346           45 :       _o1[0] = captures[0];
     347           45 :       _o1[1] = unshare_expr (captures[2]);
     348           45 :       _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     349           45 :       res_op0 = _r1;
     350              :     }
     351           45 :     tree res_op1;
     352           45 :     {
     353           45 :       tree _o1[1], _r1;
     354           45 :       _o1[0] = captures[2];
     355           45 :       _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
     356           45 :       res_op1 = _r1;
     357              :     }
     358           45 :     tree _r;
     359           45 :     _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
     360           45 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 107, __FILE__, __LINE__, true);
     361              :     return _r;
     362              :   }
     363              : next_after_fail139:;
     364              :   return NULL_TREE;
     365              : }
     366              : 
     367              : tree
     368            7 : generic_simplify_67 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     369              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     370              : {
     371            7 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     372            7 :   if (!TYPE_SATURATING (type)
     373              : )
     374              :     {
     375            7 :       if ((!FLOAT_TYPE_P (type) || flag_associative_math)
     376           14 :  && !FIXED_POINT_TYPE_P (type)
     377              : )
     378              :         {
     379            7 :           if (TYPE_OVERFLOW_UNDEFINED (type)
     380           14 :  && !TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[0]))
     381              : )
     382              :             {
     383            7 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail156;
     384            7 :               {
     385            7 :                 tree res_op0;
     386            7 :                 res_op0 = captures[2];
     387            7 :                 tree res_op1;
     388            7 :                 res_op1 = captures[1];
     389            7 :                 tree _r;
     390            7 :                 _r = fold_build2_loc (loc, POINTER_DIFF_EXPR, type, res_op0, res_op1);
     391            7 :                 if (TREE_SIDE_EFFECTS (captures[0]))
     392            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
     393            7 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 124, __FILE__, __LINE__, true);
     394            7 :                 return _r;
     395              :               }
     396            0 : next_after_fail156:;
     397              :             }
     398              :         }
     399              :     }
     400              :   return NULL_TREE;
     401              : }
     402              : 
     403              : tree
     404            9 : generic_simplify_75 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     405              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     406              : {
     407            9 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     408            9 :   if (INTEGRAL_TYPE_P (type)
     409            9 :  && (
     410              : 
     411            9 :  || !TREE_SIDE_EFFECTS (captures[1]))
     412              : )
     413              :     {
     414            2 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail165;
     415            2 :       {
     416            2 :         tree res_op0;
     417            2 :         {
     418            2 :           tree _o1[1], _r1;
     419            2 :           _o1[0] = captures[2];
     420            2 :           if (TREE_TYPE (_o1[0]) != boolean_type_node)
     421              :             {
     422            2 :               _r1 = fold_build1_loc (loc, NOP_EXPR, boolean_type_node, _o1[0]);
     423              :             }
     424              :           else
     425              :             _r1 = _o1[0];
     426            2 :           res_op0 = _r1;
     427              :         }
     428            2 :         tree res_op1;
     429            2 :         res_op1 = captures[1];
     430            2 :         tree res_op2;
     431            2 :         res_op2 = captures[0];
     432            2 :         tree _r;
     433            2 :         _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
     434            2 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 133, __FILE__, __LINE__, true);
     435            2 :         return _r;
     436              :       }
     437            0 : next_after_fail165:;
     438              :     }
     439              :   return NULL_TREE;
     440              : }
     441              : 
     442              : tree
     443            1 : generic_simplify_80 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     444              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     445              :  const combined_fn ARG_UNUSED (logs))
     446              : {
     447            1 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     448            1 :   if (flag_unsafe_math_optimizations
     449              : )
     450              :     {
     451            1 :       if (! HONOR_SIGN_DEPENDENT_ROUNDING (type)
     452            1 :  && ! HONOR_NANS (type) && ! HONOR_INFINITIES (type)
     453            1 :  && ! flag_trapping_math
     454            2 :  && ! flag_errno_math
     455              : )
     456              :         {
     457            1 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail171;
     458            1 :           {
     459            1 :             tree res_op0;
     460            1 :             {
     461            1 :               tree _o1[2], _r1;
     462            1 :               _o1[0] = captures[1];
     463            1 :               _o1[1] = captures[3];
     464            1 :               _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     465            1 :               res_op0 = _r1;
     466              :             }
     467            1 :             tree _r;
     468            1 :             _r = maybe_build_call_expr_loc (loc, logs, type, 1, res_op0);
     469            1 :             if (!_r)
     470            0 :               goto next_after_fail171;
     471            1 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 139, __FILE__, __LINE__, true);
     472            1 :             return _r;
     473              :           }
     474              : next_after_fail171:;
     475              :         }
     476              :     }
     477              :   return NULL_TREE;
     478              : }
     479              : 
     480              : tree
     481           21 : generic_simplify_88 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     482              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     483              : {
     484           21 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     485           21 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail179;
     486           21 :   {
     487           21 :     tree res_op0;
     488           21 :     {
     489           21 :       tree _o1[2], _r1;
     490           21 :       _o1[0] = captures[1];
     491           21 :       _o1[1] = unshare_expr (captures[2]);
     492           21 :       _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     493           21 :       res_op0 = _r1;
     494              :     }
     495           21 :     tree res_op1;
     496           21 :     res_op1 = captures[2];
     497           21 :     tree _r;
     498           21 :     _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
     499           21 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 147, __FILE__, __LINE__, true);
     500              :     return _r;
     501              :   }
     502            0 : next_after_fail179:;
     503            0 :   return NULL_TREE;
     504              : }
     505              : 
     506              : tree
     507        57819 : generic_simplify_96 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     508              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     509              : {
     510        57819 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     511        57819 :   if (!TYPE_SATURATING (type)
     512              : )
     513              :     {
     514        57819 :       if ((!FLOAT_TYPE_P (type) || flag_associative_math)
     515       115627 :  && !FIXED_POINT_TYPE_P (type)
     516              : )
     517              :         {
     518        57808 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail187;
     519        57808 :           {
     520        57808 :             tree res_op0;
     521        57808 :             res_op0 = captures[1];
     522        57808 :             tree _r;
     523        57808 :             _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
     524        57808 :             if (TREE_SIDE_EFFECTS (captures[0]))
     525           15 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
     526        57808 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 154, __FILE__, __LINE__, true);
     527        57808 :             return _r;
     528              :           }
     529            0 : next_after_fail187:;
     530              :         }
     531              :     }
     532              :   return NULL_TREE;
     533              : }
     534              : 
     535              : tree
     536           41 : generic_simplify_102 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     537              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     538              : {
     539           41 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     540           41 :   if (!TYPE_SATURATING (type)
     541              : )
     542              :     {
     543           41 :       if ((!FLOAT_TYPE_P (type) || flag_associative_math)
     544           82 :  && !FIXED_POINT_TYPE_P (type)
     545              : )
     546              :         {
     547           82 :           if (!TYPE_OVERFLOW_TRAPS (type)
     548           41 :  && TREE_CODE (type) != COMPLEX_TYPE
     549           81 :  && tree_nop_conversion_p (type, TREE_TYPE (captures[0]))
     550              : )
     551              :             {
     552           40 :               if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail197;
     553           40 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail197;
     554           40 :               {
     555           40 :                 tree res_op0;
     556           40 :                 {
     557           40 :                   tree _o1[1], _r1;
     558           40 :                   _o1[0] = captures[0];
     559           40 :                   if (TREE_TYPE (_o1[0]) != type)
     560              :                     {
     561            0 :                       _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
     562              :                     }
     563              :                   else
     564              :                     _r1 = _o1[0];
     565           40 :                   res_op0 = _r1;
     566              :                 }
     567           40 :                 tree _r;
     568           40 :                 _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
     569           40 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 164, __FILE__, __LINE__, true);
     570           40 :                 return _r;
     571              :               }
     572              : next_after_fail197:;
     573              :             }
     574              :         }
     575              :     }
     576              :   return NULL_TREE;
     577              : }
     578              : 
     579              : tree
     580            0 : generic_simplify_110 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     581              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     582              : {
     583            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     584            0 :   if (TREE_CODE (captures[1]) == SSA_NAME && num_imm_uses (captures[1]) == 2
     585              : )
     586              :     {
     587            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail207;
     588            0 :       {
     589            0 :         if (! tree_invariant_p (captures[2])) goto next_after_fail207;
     590            0 :         tree res_op0;
     591            0 :         {
     592            0 :           tree _o1[2], _r1;
     593            0 :           {
     594            0 :             tree _o2[3], _r2;
     595            0 :             _o2[0] = unshare_expr (captures[2]);
     596            0 :             _o2[1] = captures[2];
     597            0 :             _o2[2] = captures[4];
     598            0 :             _r2 = fold_build3_loc (loc, VEC_PERM_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1], _o2[2]);
     599            0 :             _o1[0] = _r2;
     600              :           }
     601            0 :           _o1[1] = captures[3];
     602            0 :           _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     603            0 :           res_op0 = _r1;
     604              :         }
     605            0 :         tree res_op1;
     606            0 :         res_op1 = captures[5];
     607            0 :         tree _r;
     608            0 :         _r = fold_build2_loc (loc, MINUS_EXPR, type, res_op0, res_op1);
     609            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 174, __FILE__, __LINE__, true);
     610            0 :         return _r;
     611              :       }
     612              : next_after_fail207:;
     613              :     }
     614              :   return NULL_TREE;
     615              : }
     616              : 
     617              : tree
     618            0 : generic_simplify_116 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     619              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     620              : {
     621            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     622            0 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail213;
     623            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail213;
     624            0 :   {
     625            0 :     tree _r;
     626            0 :     _r = captures[2];
     627            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 178, __FILE__, __LINE__, true);
     628              :     return _r;
     629              :   }
     630              : next_after_fail213:;
     631              :   return NULL_TREE;
     632              : }
     633              : 
     634              : tree
     635            0 : generic_simplify_122 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     636              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     637              : {
     638            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     639            0 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail219;
     640            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail219;
     641            0 :   {
     642            0 :     tree _r;
     643            0 :     _r = captures[2];
     644            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 184, __FILE__, __LINE__, true);
     645              :     return _r;
     646              :   }
     647              : next_after_fail219:;
     648              :   return NULL_TREE;
     649              : }
     650              : 
     651              : tree
     652           15 : generic_simplify_129 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     653              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     654              :  const enum tree_code ARG_UNUSED (bitop))
     655              : {
     656           15 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     657           15 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail226;
     658           15 :   {
     659           15 :     tree res_op0;
     660           15 :     res_op0 = captures[0];
     661           15 :     tree res_op1;
     662           15 :     {
     663           15 :       tree _o1[1], _r1;
     664           15 :       _o1[0] = captures[2];
     665           15 :       _r1 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
     666           15 :       res_op1 = _r1;
     667              :     }
     668           15 :     tree _r;
     669           15 :     _r = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
     670           15 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 188, __FILE__, __LINE__, true);
     671              :     return _r;
     672              :   }
     673            0 : next_after_fail226:;
     674            0 :   return NULL_TREE;
     675              : }
     676              : 
     677              : tree
     678            0 : generic_simplify_140 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     679              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     680              :  const enum tree_code ARG_UNUSED (op))
     681              : {
     682            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     683            0 :   if (tree_nop_conversion_p (type, TREE_TYPE (captures[3]))
     684            0 :  && tree_nop_conversion_p (type, TREE_TYPE (captures[6]))
     685              : )
     686              :     {
     687            0 :       if (single_use (captures[4]) && single_use (captures[5])
     688              : )
     689              :         {
     690            0 :           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail240;
     691            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail240;
     692            0 :           {
     693            0 :             tree res_op0;
     694            0 :             res_op0 = captures[0];
     695            0 :             tree res_op1;
     696            0 :             {
     697            0 :               tree _o1[1], _r1;
     698            0 :               _o1[0] = captures[6];
     699            0 :               if (TREE_TYPE (_o1[0]) != type)
     700              :                 {
     701            0 :                   _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
     702              :                 }
     703              :               else
     704              :                 _r1 = _o1[0];
     705            0 :               res_op1 = _r1;
     706              :             }
     707            0 :             tree _r;
     708            0 :             _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
     709            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 194, __FILE__, __LINE__, true);
     710            0 :             return _r;
     711              :           }
     712              : next_after_fail240:;
     713              :         }
     714              :       else
     715              :         {
     716              :           if (single_use (captures[0]) && single_use (captures[1])
     717              : )
     718              :             {
     719              :               if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail241;
     720              :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail241;
     721              :               {
     722              :                 tree res_op0;
     723              :                 {
     724              :                   tree _o1[1], _r1;
     725              :                   _o1[0] = captures[3];
     726              :                   if (TREE_TYPE (_o1[0]) != type)
     727              :                     {
     728              :                       _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
     729              :                     }
     730              :                   else
     731              :                     _r1 = _o1[0];
     732              :                   res_op0 = _r1;
     733              :                 }
     734              :                 tree res_op1;
     735              :                 res_op1 = captures[4];
     736              :                 tree _r;
     737              :                 _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
     738              :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 195, __FILE__, __LINE__, true);
     739              :                 return _r;
     740              :               }
     741              : next_after_fail241:;
     742              :             }
     743              :         }
     744              :     }
     745              :   return NULL_TREE;
     746              : }
     747              : 
     748              : tree
     749            4 : generic_simplify_155 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     750              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     751              : {
     752            4 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     753            4 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail260;
     754            4 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail260;
     755            4 :   {
     756            4 :     tree _r;
     757            4 :     _r = captures[2];
     758            4 :     if (TREE_SIDE_EFFECTS (captures[1]))
     759            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
     760            4 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 209, __FILE__, __LINE__, true);
     761              :     return _r;
     762              :   }
     763              : next_after_fail260:;
     764              :   return NULL_TREE;
     765              : }
     766              : 
     767              : tree
     768            0 : generic_simplify_161 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     769              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     770              :  const enum tree_code ARG_UNUSED (cmp),
     771              :  const enum tree_code ARG_UNUSED (bitop),
     772              :  const enum tree_code ARG_UNUSED (neeq))
     773              : {
     774            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     775            0 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail285;
     776            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail285;
     777            0 :   {
     778            0 :     tree res_op0;
     779            0 :     {
     780            0 :       tree _o1[2], _r1;
     781            0 :       _o1[0] =  build_zero_cst (TREE_TYPE (captures[0]));
     782            0 :       _o1[1] = captures[3];
     783            0 :       _r1 = fold_build2_loc (loc, cmp, type, _o1[0], _o1[1]);
     784            0 :       res_op0 = _r1;
     785              :     }
     786            0 :     tree res_op1;
     787            0 :     res_op1 = captures[4];
     788            0 :     tree _r;
     789            0 :     _r = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
     790            0 :     if (TREE_SIDE_EFFECTS (captures[2]))
     791            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
     792            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 227, __FILE__, __LINE__, true);
     793              :     return _r;
     794              :   }
     795              : next_after_fail285:;
     796              :   return NULL_TREE;
     797              : }
     798              : 
     799              : tree
     800            0 : generic_simplify_169 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     801              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     802              :  const enum tree_code ARG_UNUSED (cmp),
     803              :  const enum tree_code ARG_UNUSED (bitop),
     804              :  const enum tree_code ARG_UNUSED (neeq))
     805              : {
     806            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     807            0 :   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail306;
     808            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail306;
     809            0 :   {
     810            0 :     tree res_op0;
     811            0 :     {
     812            0 :       tree _o1[2], _r1;
     813            0 :       _o1[0] =  build_zero_cst (TREE_TYPE (captures[0]));
     814            0 :       _o1[1] = captures[3];
     815            0 :       _r1 = fold_build2_loc (loc, cmp, type, _o1[0], _o1[1]);
     816            0 :       res_op0 = _r1;
     817              :     }
     818            0 :     tree res_op1;
     819            0 :     res_op1 = captures[4];
     820            0 :     tree _r;
     821            0 :     _r = fold_build2_loc (loc, bitop, type, res_op0, res_op1);
     822            0 :     if (TREE_SIDE_EFFECTS (captures[2]))
     823            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
     824            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 227, __FILE__, __LINE__, true);
     825              :     return _r;
     826              :   }
     827              : next_after_fail306:;
     828              :   return NULL_TREE;
     829              : }
     830              : 
     831              : tree
     832            0 : generic_simplify_175 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     833              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     834              : {
     835            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     836            0 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail313;
     837            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail313;
     838            0 :   {
     839            0 :     tree _r;
     840            0 :     _r = captures[1];
     841            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 233, __FILE__, __LINE__, true);
     842              :     return _r;
     843              :   }
     844              : next_after_fail313:;
     845              :   return NULL_TREE;
     846              : }
     847              : 
     848              : tree
     849           94 : generic_simplify_177 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     850              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     851              :  const enum tree_code ARG_UNUSED (logic),
     852              :  const enum tree_code ARG_UNUSED (op),
     853              :  const enum tree_code ARG_UNUSED (ext))
     854              : {
     855           94 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     856          188 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
     857          188 :  && TREE_CODE (captures[1]) != INTEGER_CST
     858              : )
     859              :     {
     860            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail315;
     861            0 :       {
     862            0 :         tree res_op0;
     863            0 :         res_op0 = captures[1];
     864            0 :         tree res_op1;
     865            0 :         {
     866            0 :           tree _o1[2], _r1;
     867            0 :           _o1[0] = captures[2];
     868            0 :           _o1[1] = captures[4];
     869            0 :           _r1 = fold_build2_loc (loc, ext, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     870            0 :           res_op1 = _r1;
     871              :         }
     872            0 :         tree _r;
     873            0 :         _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
     874            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 234, __FILE__, __LINE__, true);
     875            0 :         return _r;
     876              :       }
     877            0 : next_after_fail315:;
     878              :     }
     879              :   return NULL_TREE;
     880              : }
     881              : 
     882              : tree
     883            0 : generic_simplify_182 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     884              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     885              :  const combined_fn ARG_UNUSED (COPYSIGN_ALL))
     886              : {
     887            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     888            0 :   if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
     889              : )
     890              :     {
     891            0 :       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail320;
     892            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail320;
     893            0 :       {
     894            0 :         tree res_op0;
     895            0 :         {
     896            0 :           tree _o1[1], _r1;
     897            0 :           _o1[0] = captures[0];
     898            0 :           _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
     899            0 :           res_op0 = _r1;
     900              :         }
     901            0 :         tree _r;
     902            0 :         _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
     903            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 238, __FILE__, __LINE__, true);
     904            0 :         return _r;
     905              :       }
     906              : next_after_fail320:;
     907              :     }
     908              :   return NULL_TREE;
     909              : }
     910              : 
     911              : tree
     912            0 : generic_simplify_188 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     913              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     914              : {
     915            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     916            0 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail326;
     917            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail326;
     918            0 :   {
     919            0 :     tree _r;
     920            0 :     _r =  build_zero_cst (type);
     921            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 242, __FILE__, __LINE__, true);
     922              :     return _r;
     923              :   }
     924              : next_after_fail326:;
     925              :   return NULL_TREE;
     926              : }
     927              : 
     928              : tree
     929            0 : generic_simplify_194 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     930              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     931              :  const enum tree_code ARG_UNUSED (cmp))
     932              : {
     933            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     934            0 :   if (fold_before_rtl_expansion_p ()
     935              : )
     936              :     {
     937            0 :       if (INTEGRAL_TYPE_P (type)
     938            0 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
     939              : )
     940              :         {
     941            0 :           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail334;
     942            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail334;
     943            0 :           {
     944            0 :             tree res_op0;
     945            0 :             res_op0 = captures[0];
     946            0 :             tree res_op1;
     947            0 :             res_op1 = captures[3];
     948            0 :             tree res_op2;
     949            0 :             res_op2 =  build_zero_cst (type);
     950            0 :             tree _r;
     951            0 :             _r = fold_build3_loc (loc, COND_EXPR, type, res_op0, res_op1, res_op2);
     952            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 246, __FILE__, __LINE__, true);
     953            0 :             return _r;
     954              :           }
     955              : next_after_fail334:;
     956              :         }
     957              :     }
     958              :   return NULL_TREE;
     959              : }
     960              : 
     961              : tree
     962       186693 : generic_simplify_199 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     963              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
     964              : {
     965       186693 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     966       186693 :   if (TREE_CODE (captures[3]) != INTEGER_CST
     967              :  && single_use (captures[0])
     968       186693 :  && !integer_zerop (captures[2]) && !integer_minus_onep (captures[2])
     969              : )
     970              :     {
     971       186663 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail340;
     972       186663 :       {
     973       186663 :         tree res_op0;
     974       186663 :         {
     975       186663 :           tree _o1[2], _r1;
     976       186663 :           _o1[0] = captures[1];
     977       186663 :           _o1[1] = captures[3];
     978       186663 :           _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
     979       186663 :           res_op0 = _r1;
     980              :         }
     981       186663 :         tree res_op1;
     982       186663 :         res_op1 = captures[2];
     983       186663 :         tree _r;
     984       186663 :         _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
     985       186663 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 253, __FILE__, __LINE__, true);
     986       186663 :         return _r;
     987              :       }
     988            0 : next_after_fail340:;
     989              :     }
     990              :   return NULL_TREE;
     991              : }
     992              : 
     993              : tree
     994           38 : generic_simplify_205 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
     995              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
     996              :  const combined_fn ARG_UNUSED (POW))
     997              : {
     998           38 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
     999           38 :   if (flag_unsafe_math_optimizations && canonicalize_math_p ()
    1000              : )
    1001              :     {
    1002           38 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail346;
    1003           38 :       {
    1004           38 :         tree res_op0;
    1005           38 :         res_op0 = captures[1];
    1006           38 :         tree res_op1;
    1007           38 :         {
    1008           38 :           tree _o1[2], _r1;
    1009           38 :           _o1[0] = captures[2];
    1010           38 :           _o1[1] = captures[4];
    1011           38 :           _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1012           38 :           res_op1 = _r1;
    1013              :         }
    1014           38 :         tree _r;
    1015           38 :         _r = maybe_build_call_expr_loc (loc, POW, type, 2, res_op0, res_op1);
    1016           38 :         if (!_r)
    1017            0 :           goto next_after_fail346;
    1018           38 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 259, __FILE__, __LINE__, true);
    1019           38 :         return _r;
    1020              :       }
    1021              : next_after_fail346:;
    1022              :     }
    1023              :   return NULL_TREE;
    1024              : }
    1025              : 
    1026              : tree
    1027            0 : generic_simplify_213 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1028              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1029              :  const enum tree_code ARG_UNUSED (op))
    1030              : {
    1031            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1032            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail357;
    1033            0 :   {
    1034            0 :     tree _r;
    1035            0 :     _r =  constant_boolean_node (op == NE_EXPR ? true : false, type);
    1036            0 :     if (TREE_SIDE_EFFECTS (captures[0]))
    1037            0 :       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1038            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 269, __FILE__, __LINE__, true);
    1039              :     return _r;
    1040              :   }
    1041            0 : next_after_fail357:;
    1042            0 :   return NULL_TREE;
    1043              : }
    1044              : 
    1045              : tree
    1046         2659 : generic_simplify_218 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1047              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1048              :  const enum tree_code ARG_UNUSED (cmp))
    1049              : {
    1050         2659 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1051         5318 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    1052         3492 :  && TYPE_OVERFLOW_UNDEFINED (TREE_TYPE (captures[0]))
    1053         4426 :  && tree_expr_nonzero_p (captures[1])
    1054              : )
    1055              :     {
    1056           12 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail362;
    1057           12 :       {
    1058           12 :         tree res_op0;
    1059           12 :         res_op0 = captures[0];
    1060           12 :         tree res_op1;
    1061           12 :         res_op1 = captures[2];
    1062           12 :         tree _r;
    1063           12 :         _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1064           12 :         if (TREE_SIDE_EFFECTS (captures[1]))
    1065            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1066           12 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 274, __FILE__, __LINE__, true);
    1067           12 :         return _r;
    1068              :       }
    1069            0 : next_after_fail362:;
    1070              :     }
    1071              :   return NULL_TREE;
    1072              : }
    1073              : 
    1074              : tree
    1075           43 : generic_simplify_224 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1076              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1077              :  const enum tree_code ARG_UNUSED (op))
    1078              : {
    1079           43 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1080           43 :   if (!TYPE_OVERFLOW_SANITIZED (TREE_TYPE (captures[2]))
    1081              : )
    1082              :     {
    1083           43 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail381;
    1084           43 :       {
    1085           43 :         tree res_op0;
    1086           43 :         res_op0 = captures[1];
    1087           43 :         tree res_op1;
    1088           43 :         res_op1 = captures[3];
    1089           43 :         tree _r;
    1090           43 :         _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
    1091           43 :         if (TREE_SIDE_EFFECTS (captures[2]))
    1092            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1093           43 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 293, __FILE__, __LINE__, true);
    1094           43 :         return _r;
    1095              :       }
    1096            0 : next_after_fail381:;
    1097              :     }
    1098              :   return NULL_TREE;
    1099              : }
    1100              : 
    1101              : tree
    1102            0 : generic_simplify_232 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1103              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1104              :  const enum tree_code ARG_UNUSED (cmp1),
    1105              :  const enum tree_code ARG_UNUSED (cmp2),
    1106              :  const enum tree_code ARG_UNUSED (rcmp))
    1107              : {
    1108            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1109            0 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    1110            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[0]))
    1111            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[0]))
    1112            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[0]), type, rcmp))
    1113              : )
    1114              :     {
    1115            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail389;
    1116            0 :       {
    1117            0 :         tree res_op0;
    1118            0 :         res_op0 = captures[0];
    1119            0 :         tree res_op1;
    1120            0 :         res_op1 = captures[1];
    1121            0 :         tree _r;
    1122            0 :         _r = fold_build2_loc (loc, rcmp, type, res_op0, res_op1);
    1123            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 300, __FILE__, __LINE__, true);
    1124            0 :         return _r;
    1125              :       }
    1126            0 : next_after_fail389:;
    1127              :     }
    1128              :   return NULL_TREE;
    1129              : }
    1130              : 
    1131              : tree
    1132            2 : generic_simplify_240 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1133              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1134              :  const enum tree_code ARG_UNUSED (cmp),
    1135              :  const enum tree_code ARG_UNUSED (icmp))
    1136              : {
    1137            2 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1138            2 :   if (tree_int_cst_sgn (captures[0]) > 0
    1139              : )
    1140              :     {
    1141            2 :       {
    1142            2 :  int c1 = wi::clz (wi::to_wide (captures[0]));
    1143            2 :  int c2 = wi::clz (wi::to_wide (captures[2]));
    1144            2 :           if (c1 > c2
    1145              : )
    1146              :             {
    1147            0 :               if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail401;
    1148            0 :               if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail401;
    1149            0 :               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail401;
    1150            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail401;
    1151            0 :               {
    1152            0 :                 tree _r;
    1153            0 :                 _r =  constant_boolean_node (cmp == NE_EXPR ? false : true, type);
    1154            0 :                 if (TREE_SIDE_EFFECTS (captures[1]))
    1155            0 :                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1156            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 312, __FILE__, __LINE__, true);
    1157            0 :                 return _r;
    1158              :               }
    1159              : next_after_fail401:;
    1160              :             }
    1161              :           else
    1162              :             {
    1163            2 :               if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail402;
    1164            2 :               if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail402;
    1165            2 :               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail402;
    1166            2 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail402;
    1167            2 :               {
    1168            2 :                 tree res_op0;
    1169            2 :                 res_op0 = captures[1];
    1170            2 :                 tree res_op1;
    1171            2 :                 res_op1 =  build_int_cst (TREE_TYPE (captures[1]), c2 - c1);
    1172            2 :                 tree _r;
    1173            2 :                 _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
    1174            2 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 313, __FILE__, __LINE__, true);
    1175            2 :                 return _r;
    1176              :               }
    1177              : next_after_fail402:;
    1178              :             }
    1179              :       }
    1180              :     }
    1181              :   return NULL_TREE;
    1182              : }
    1183              : 
    1184              : tree
    1185          179 : generic_simplify_249 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1186              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1187              :  const enum tree_code ARG_UNUSED (cmp),
    1188              :  const enum tree_code ARG_UNUSED (icmp),
    1189              :  const enum tree_code ARG_UNUSED (ncmp))
    1190              : {
    1191          179 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1192          179 :   if (types_match (type, TREE_TYPE (captures[0]))
    1193              : )
    1194              :     {
    1195          125 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail418;
    1196          125 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail418;
    1197          125 :       {
    1198          125 :         tree res_op0;
    1199          125 :         res_op0 = captures[1];
    1200          125 :         tree res_op1;
    1201          125 :         res_op1 = captures[2];
    1202          125 :         tree _r;
    1203          125 :         _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1204          125 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 329, __FILE__, __LINE__, true);
    1205          125 :         return _r;
    1206              :       }
    1207              : next_after_fail418:;
    1208              :     }
    1209              :   return NULL_TREE;
    1210              : }
    1211              : 
    1212              : tree
    1213     46675833 : generic_simplify_256 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1214              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1215              :  const enum tree_code ARG_UNUSED (cmp))
    1216              : {
    1217     46675833 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1218     46675833 :   {
    1219     46675833 :  bool wascmp;
    1220     46675833 :       if (types_match (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
    1221     46675833 :  && bitwise_inverted_equal_p (captures[0], captures[1], wascmp)
    1222              : )
    1223              :         {
    1224            5 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail431;
    1225            5 :           {
    1226            5 :             tree _r;
    1227            5 :             _r =  constant_boolean_node (cmp == NE_EXPR, type);
    1228            5 :             if (TREE_SIDE_EFFECTS (captures[0]))
    1229            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1230            5 :             if (TREE_SIDE_EFFECTS (captures[1]))
    1231            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1232            5 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 341, __FILE__, __LINE__, true);
    1233            5 :             return _r;
    1234              :           }
    1235            0 : next_after_fail431:;
    1236              :         }
    1237              :   }
    1238     46675828 :   return NULL_TREE;
    1239              : }
    1240              : 
    1241              : tree
    1242         8885 : generic_simplify_261 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1243              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1244              :  const enum tree_code ARG_UNUSED (op),
    1245              :  const enum tree_code ARG_UNUSED (cmp))
    1246              : {
    1247         8885 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1248         8885 :   if (flag_unsafe_math_optimizations
    1249              : )
    1250              :     {
    1251            5 :       {
    1252            8 :  tree tem = const_binop (op == PLUS_EXPR ? MINUS_EXPR : PLUS_EXPR,
    1253            5 :  TREE_TYPE (captures[1]), captures[2], captures[1]);
    1254            5 :           if (tem && !TREE_OVERFLOW (tem)
    1255              : )
    1256              :             {
    1257            4 :               if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail450;
    1258            4 :               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail450;
    1259            4 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail450;
    1260            4 :               {
    1261            4 :                 tree res_op0;
    1262            4 :                 res_op0 = captures[0];
    1263            4 :                 tree res_op1;
    1264            4 :                 res_op1 =  tem;
    1265            4 :                 tree _r;
    1266            4 :                 _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1267            4 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 359, __FILE__, __LINE__, true);
    1268            4 :                 return _r;
    1269              :               }
    1270              : next_after_fail450:;
    1271              :             }
    1272              :       }
    1273              :     }
    1274              :   return NULL_TREE;
    1275              : }
    1276              : 
    1277              : tree
    1278           69 : generic_simplify_267 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1279              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1280              :  const enum tree_code ARG_UNUSED (cmp))
    1281              : {
    1282           69 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1283           69 :   if (!integer_zerop (captures[1])
    1284              : )
    1285              :     {
    1286           69 :       if (wi::to_wide (captures[2]) == 0
    1287              : )
    1288              :         {
    1289           22 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail481;
    1290           22 :           {
    1291           22 :             tree res_op0;
    1292           22 :             res_op0 = captures[0];
    1293           22 :             tree res_op1;
    1294           22 :             res_op1 = captures[2];
    1295           22 :             tree _r;
    1296           22 :             _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1297           22 :             if (TREE_SIDE_EFFECTS (captures[1]))
    1298            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    1299           22 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 390, __FILE__, __LINE__, true);
    1300           22 :             return _r;
    1301              :           }
    1302            0 : next_after_fail481:;
    1303              :         }
    1304              :       else
    1305              :         {
    1306           47 :           if (TREE_CODE (captures[1]) == INTEGER_CST
    1307              : )
    1308              :             {
    1309           47 :               {
    1310           47 :  wi::overflow_type ovf;
    1311           47 :  wide_int prod = wi::mul (wi::to_wide (captures[2]), wi::to_wide (captures[1]),
    1312           94 :  TYPE_SIGN (TREE_TYPE (captures[1])), &ovf);
    1313           47 :                   if (ovf
    1314              : )
    1315              :                     {
    1316            0 :                       if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail482;
    1317            0 :                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail482;
    1318            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail482;
    1319            0 :                       {
    1320            0 :                         tree _r;
    1321            0 :                         _r =  constant_boolean_node (cmp == NE_EXPR, type);
    1322            0 :                         if (TREE_SIDE_EFFECTS (captures[0]))
    1323            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1324            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 391, __FILE__, __LINE__, true);
    1325            0 :                         return _r;
    1326              :                       }
    1327            0 : next_after_fail482:;
    1328              :                     }
    1329              :                   else
    1330              :                     {
    1331           47 :                       if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail483;
    1332           47 :                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail483;
    1333           47 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail483;
    1334           47 :                       {
    1335           47 :                         tree res_op0;
    1336           47 :                         res_op0 = captures[0];
    1337           47 :                         tree res_op1;
    1338           47 :                         res_op1 =  wide_int_to_tree (TREE_TYPE (captures[0]), prod);
    1339           47 :                         tree _r;
    1340           47 :                         _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1341           47 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 392, __FILE__, __LINE__, true);
    1342           47 :                         return _r;
    1343              :                       }
    1344            0 : next_after_fail483:;
    1345              :                     }
    1346           47 :               }
    1347              :             }
    1348              :         }
    1349              :     }
    1350              :   return NULL_TREE;
    1351              : }
    1352              : 
    1353              : tree
    1354        27309 : generic_simplify_274 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1355              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1356              :  const enum tree_code ARG_UNUSED (cmp))
    1357              : {
    1358        27309 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1359        27309 :   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail507;
    1360        27309 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail507;
    1361        27309 :   {
    1362        27309 :     tree res_op0;
    1363        27309 :     res_op0 = captures[0];
    1364        27309 :     tree res_op1;
    1365        27309 :     res_op1 = captures[1];
    1366        27309 :     tree _r;
    1367        27309 :     _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1368        27309 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 408, __FILE__, __LINE__, true);
    1369              :     return _r;
    1370              :   }
    1371              : next_after_fail507:;
    1372              :   return NULL_TREE;
    1373              : }
    1374              : 
    1375              : tree
    1376       149866 : generic_simplify_276 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1377              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1378              :  const enum tree_code ARG_UNUSED (cmp))
    1379              : {
    1380       149866 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1381       149866 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail509;
    1382       149866 :   {
    1383       149866 :     tree res_op0;
    1384       149866 :     {
    1385       149866 :       tree _o1[2], _r1;
    1386       149866 :       _o1[0] = captures[0];
    1387       149866 :       {
    1388       149866 :         tree _o2[1], _r2;
    1389       149866 :         _o2[0] = captures[1];
    1390       149866 :         _r2 = fold_build1_loc (loc, BIT_NOT_EXPR, TREE_TYPE (_o2[0]), _o2[0]);
    1391       149866 :         if (EXPR_P (_r2))
    1392       149837 :           goto next_after_fail509;
    1393           29 :         _o1[1] = _r2;
    1394              :       }
    1395           29 :       _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1396           29 :       res_op0 = _r1;
    1397              :     }
    1398           29 :     tree res_op1;
    1399           29 :     res_op1 =  build_zero_cst (TREE_TYPE (captures[0]));
    1400           29 :     tree _r;
    1401           29 :     _r = fold_build2_loc (loc, cmp, type, res_op0, res_op1);
    1402           29 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 410, __FILE__, __LINE__, true);
    1403              :     return _r;
    1404              :   }
    1405              : next_after_fail509:;
    1406              :   return NULL_TREE;
    1407              : }
    1408              : 
    1409              : tree
    1410     30068183 : generic_simplify_280 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1411              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1412              :  const enum tree_code ARG_UNUSED (cmp))
    1413              : {
    1414     30068183 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1415     30068183 :   if (tree_expr_nonzero_p (captures[0])
    1416              : )
    1417              :     {
    1418      1023387 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail513;
    1419      1023387 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail513;
    1420      1023387 :       {
    1421      1023387 :         tree _r;
    1422      1023387 :         _r =  constant_boolean_node (cmp == NE_EXPR, type);
    1423      1023387 :         if (TREE_SIDE_EFFECTS (captures[0]))
    1424         6712 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    1425      1023387 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 414, __FILE__, __LINE__, true);
    1426      1023387 :         return _r;
    1427              :       }
    1428              : next_after_fail513:;
    1429              :     }
    1430              :   return NULL_TREE;
    1431              : }
    1432              : 
    1433              : tree
    1434           94 : generic_simplify_285 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1435              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1436              :  const enum tree_code ARG_UNUSED (sgncmp),
    1437              :  const enum tree_code ARG_UNUSED (cmp),
    1438              :  const enum tree_code ARG_UNUSED (ncmp))
    1439              : {
    1440           94 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1441          188 :   if (ANY_INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    1442           94 :  && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
    1443          188 :  && types_match (captures[0], captures[2])
    1444              : )
    1445              :     {
    1446           94 :       if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail518;
    1447           94 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail518;
    1448           94 :       {
    1449           94 :         tree res_op0;
    1450           94 :         {
    1451           94 :           tree _o1[2], _r1;
    1452           94 :           _o1[0] = captures[0];
    1453           94 :           _o1[1] = captures[2];
    1454           94 :           _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1455           94 :           res_op0 = _r1;
    1456              :         }
    1457           94 :         tree res_op1;
    1458           94 :         res_op1 = captures[1];
    1459           94 :         tree _r;
    1460           94 :         _r = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
    1461           94 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 418, __FILE__, __LINE__, true);
    1462           94 :         return _r;
    1463              :       }
    1464              : next_after_fail518:;
    1465              :     }
    1466              :   return NULL_TREE;
    1467              : }
    1468              : 
    1469              : tree
    1470       115881 : generic_simplify_290 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1471              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1472              :  const enum tree_code ARG_UNUSED (cmp))
    1473              : {
    1474       115881 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1475       115881 :   {
    1476       115881 :  poly_int64 off0, off1;
    1477       115881 :  tree base0, base1;
    1478       115881 :  int equal = address_compare (cmp, TREE_TYPE (captures[0]), captures[1], captures[2], base0, base1,
    1479              :  off0, off1,
    1480              : 1
    1481              : );
    1482       115881 :       if (equal == 1
    1483              : )
    1484              :         {
    1485       100232 :           if (cmp == EQ_EXPR && (known_eq (off0, off1) || known_ne (off0, off1))
    1486              : )
    1487              :             {
    1488         8379 :               if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail530;
    1489         8379 :               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail530;
    1490         8379 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail530;
    1491         8379 :               {
    1492         8379 :                 tree _r;
    1493         8379 :                 _r =  constant_boolean_node (known_eq (off0, off1), type);
    1494         8379 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 421, __FILE__, __LINE__, true);
    1495       102192 :                 return _r;
    1496              :               }
    1497        13689 : next_after_fail530:;
    1498              :             }
    1499              :           else
    1500              :             {
    1501        51531 :               if (cmp == NE_EXPR && (known_eq (off0, off1) || known_ne (off0, off1))
    1502              : )
    1503              :                 {
    1504        51531 :                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail531;
    1505        51531 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail531;
    1506        51531 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail531;
    1507        51531 :                   {
    1508        51531 :                     tree _r;
    1509        51531 :                     _r =  constant_boolean_node (known_ne (off0, off1), type);
    1510        51531 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 422, __FILE__, __LINE__, true);
    1511        51531 :                     return _r;
    1512              :                   }
    1513        13689 : next_after_fail531:;
    1514              :                 }
    1515              :               else
    1516              :                 {
    1517        29171 :                   if (cmp == LT_EXPR && (known_lt (off0, off1) || known_ge (off0, off1))
    1518              : )
    1519              :                     {
    1520        29171 :                       if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail532;
    1521        29171 :                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail532;
    1522        29171 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail532;
    1523        29171 :                       {
    1524        29171 :                         tree _r;
    1525        29171 :                         _r =  constant_boolean_node (known_lt (off0, off1), type);
    1526        29171 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 423, __FILE__, __LINE__, true);
    1527        29171 :                         return _r;
    1528              :                       }
    1529        13689 : next_after_fail532:;
    1530              :                     }
    1531              :                   else
    1532              :                     {
    1533          391 :                       if (cmp == LE_EXPR && (known_le (off0, off1) || known_gt (off0, off1))
    1534              : )
    1535              :                         {
    1536          391 :                           if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail533;
    1537          391 :                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail533;
    1538          391 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail533;
    1539          391 :                           {
    1540          391 :                             tree _r;
    1541          391 :                             _r =  constant_boolean_node (known_le (off0, off1), type);
    1542          391 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 424, __FILE__, __LINE__, true);
    1543          391 :                             return _r;
    1544              :                           }
    1545        13689 : next_after_fail533:;
    1546              :                         }
    1547              :                       else
    1548              :                         {
    1549         7192 :                           if (cmp == GE_EXPR && (known_ge (off0, off1) || known_lt (off0, off1))
    1550              : )
    1551              :                             {
    1552         7192 :                               if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail534;
    1553         7192 :                               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail534;
    1554         7192 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail534;
    1555         7192 :                               {
    1556         7192 :                                 tree _r;
    1557         7192 :                                 _r =  constant_boolean_node (known_ge (off0, off1), type);
    1558         7192 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 425, __FILE__, __LINE__, true);
    1559         7192 :                                 return _r;
    1560              :                               }
    1561        13689 : next_after_fail534:;
    1562              :                             }
    1563              :                           else
    1564              :                             {
    1565         3568 :                               if (cmp == GT_EXPR && (known_gt (off0, off1) || known_le (off0, off1))
    1566              : )
    1567              :                                 {
    1568         3568 :                                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail535;
    1569         3568 :                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail535;
    1570         3568 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail535;
    1571         3568 :                                   {
    1572         3568 :                                     tree _r;
    1573         3568 :                                     _r =  constant_boolean_node (known_gt (off0, off1), type);
    1574         3568 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 426, __FILE__, __LINE__, true);
    1575         3568 :                                     return _r;
    1576              :                                   }
    1577        13689 : next_after_fail535:;
    1578              :                                 }
    1579              :                             }
    1580              :                         }
    1581              :                     }
    1582              :                 }
    1583              :             }
    1584              :         }
    1585              :       else
    1586              :         {
    1587        15649 :           if (equal == 0
    1588              : )
    1589              :             {
    1590         1960 :               if (cmp == EQ_EXPR
    1591              : )
    1592              :                 {
    1593          923 :                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail536;
    1594          923 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail536;
    1595          923 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail536;
    1596          923 :                   {
    1597          923 :                     tree _r;
    1598          923 :                     _r =  constant_boolean_node (false, type);
    1599          923 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 427, __FILE__, __LINE__, true);
    1600          923 :                     return _r;
    1601              :                   }
    1602        13689 : next_after_fail536:;
    1603              :                 }
    1604              :               else
    1605              :                 {
    1606         1037 :                   if (cmp == NE_EXPR
    1607              : )
    1608              :                     {
    1609         1037 :                       if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail537;
    1610         1037 :                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail537;
    1611         1037 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail537;
    1612         1037 :                       {
    1613         1037 :                         tree _r;
    1614         1037 :                         _r =  constant_boolean_node (true, type);
    1615         1037 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 428, __FILE__, __LINE__, true);
    1616         1037 :                         return _r;
    1617              :                       }
    1618        13689 : next_after_fail537:;
    1619              :                     }
    1620              :                 }
    1621              :             }
    1622              :         }
    1623              :   }
    1624        13689 :   return NULL_TREE;
    1625              : }
    1626              : 
    1627              : tree
    1628        28236 : generic_simplify_305 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1629              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1630              :  const enum tree_code ARG_UNUSED (cmp),
    1631              :  const enum tree_code ARG_UNUSED (icmp),
    1632              :  const enum tree_code ARG_UNUSED (ncmp))
    1633              : {
    1634        28236 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1635        28236 :   if (types_match (type, TREE_TYPE (captures[0]))
    1636              : )
    1637              :     {
    1638        27466 :       {
    1639        27466 :  enum tree_code ic = invert_tree_comparison
    1640        27466 :  (cmp, HONOR_NANS (captures[1]));
    1641        27466 :           if (ic == icmp
    1642              : )
    1643              :             {
    1644        22031 :               if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail571;
    1645        22031 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail571;
    1646        22031 :               {
    1647        22031 :                 tree res_op0;
    1648        22031 :                 res_op0 = captures[1];
    1649        22031 :                 tree res_op1;
    1650        22031 :                 res_op1 = captures[2];
    1651        22031 :                 tree _r;
    1652        22031 :                 _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
    1653        22031 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 462, __FILE__, __LINE__, true);
    1654        22031 :                 return _r;
    1655              :               }
    1656              : next_after_fail571:;
    1657              :             }
    1658              :           else
    1659              :             {
    1660         5435 :               if (ic == ncmp
    1661              : )
    1662              :                 {
    1663            5 :                   if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail572;
    1664            5 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail572;
    1665            5 :                   {
    1666            5 :                     tree res_op0;
    1667            5 :                     res_op0 = captures[1];
    1668            5 :                     tree res_op1;
    1669            5 :                     res_op1 = captures[2];
    1670            5 :                     tree _r;
    1671            5 :                     _r = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
    1672            5 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 463, __FILE__, __LINE__, true);
    1673            5 :                     return _r;
    1674              :                   }
    1675              : next_after_fail572:;
    1676              :                 }
    1677              :             }
    1678              :       }
    1679              :     }
    1680              :   return NULL_TREE;
    1681              : }
    1682              : 
    1683              : tree
    1684           23 : generic_simplify_314 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1685              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1686              :  const enum tree_code ARG_UNUSED (div))
    1687              : {
    1688           23 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1689           30 :   if ((TYPE_UNSIGNED (type) || tree_expr_nonnegative_p (captures[0]))
    1690           16 :  && (!VECTOR_TYPE_P (type)
    1691            0 :  || target_supports_op_p (type, RSHIFT_EXPR, optab_vector)
    1692            0 :  || target_supports_op_p (type, RSHIFT_EXPR, optab_scalar))
    1693           39 :  && (useless_type_conversion_p (type, TREE_TYPE (captures[2]))
    1694            7 :  || (element_precision (type) >= element_precision (TREE_TYPE (captures[2]))
    1695            7 :  && (TYPE_UNSIGNED (TREE_TYPE (captures[2]))
    1696           14 :  || (element_precision (type)
    1697            7 :  == element_precision (TREE_TYPE (captures[2])))
    1698            7 :  || (INTEGRAL_TYPE_P (type)
    1699           14 :  && (tree_nonzero_bits (captures[0])
    1700           44 :  & wi::mask (element_precision (TREE_TYPE (captures[2])) - 1,
    1701              :  true,
    1702           37 :  element_precision (type))) == 0))))
    1703              : )
    1704              :     {
    1705            9 :       if (!VECTOR_TYPE_P (type)
    1706            9 :  && useless_type_conversion_p (TREE_TYPE (captures[1]), TREE_TYPE (captures[2]))
    1707           18 :  && element_precision (TREE_TYPE (captures[1])) < element_precision (type)
    1708              : )
    1709              :         {
    1710            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail582;
    1711            0 :           {
    1712            0 :             tree res_op0;
    1713            0 :             {
    1714            0 :               tree _o1[2], _r1;
    1715            0 :               _o1[0] = captures[1];
    1716            0 :               _o1[1] = captures[3];
    1717            0 :               _r1 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1718            0 :               res_op0 = _r1;
    1719              :             }
    1720            0 :             tree _r;
    1721            0 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    1722            0 :             if (TREE_SIDE_EFFECTS (captures[2]))
    1723            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1724            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 471, __FILE__, __LINE__, true);
    1725            0 :             return _r;
    1726              :           }
    1727            0 : next_after_fail582:;
    1728              :         }
    1729              :       else
    1730              :         {
    1731            9 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail583;
    1732            9 :           {
    1733            9 :             tree res_op0;
    1734            9 :             res_op0 = captures[0];
    1735            9 :             tree res_op1;
    1736            9 :             res_op1 = captures[3];
    1737            9 :             tree _r;
    1738            9 :             _r = fold_build2_loc (loc, RSHIFT_EXPR, type, res_op0, res_op1);
    1739            9 :             if (TREE_SIDE_EFFECTS (captures[2]))
    1740            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    1741            9 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 472, __FILE__, __LINE__, true);
    1742            9 :             return _r;
    1743              :           }
    1744            0 : next_after_fail583:;
    1745              :         }
    1746              :     }
    1747              :   return NULL_TREE;
    1748              : }
    1749              : 
    1750              : tree
    1751           52 : generic_simplify_331 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1752              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1753              :  const enum tree_code ARG_UNUSED (mod))
    1754              : {
    1755           52 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1756           52 :   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail601;
    1757           52 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail601;
    1758           52 :   {
    1759           52 :     tree _r;
    1760           52 :     _r = captures[0];
    1761           52 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 490, __FILE__, __LINE__, true);
    1762              :     return _r;
    1763              :   }
    1764              : next_after_fail601:;
    1765              :   return NULL_TREE;
    1766              : }
    1767              : 
    1768              : tree
    1769            5 : generic_simplify_339 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1770              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    1771              :  const combined_fn ARG_UNUSED (SINH),
    1772              :  const combined_fn ARG_UNUSED (COSH),
    1773              :  const combined_fn ARG_UNUSED (TANH))
    1774              : {
    1775            5 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1776            5 :   if (flag_unsafe_math_optimizations && canonicalize_math_p ()
    1777              : )
    1778              :     {
    1779            3 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail611;
    1780            3 :       {
    1781            3 :         tree res_op0;
    1782            3 :         res_op0 = captures[1];
    1783            3 :         tree _r;
    1784            3 :         _r = maybe_build_call_expr_loc (loc, TANH, type, 1, res_op0);
    1785            3 :         if (!_r)
    1786            0 :           goto next_after_fail611;
    1787            3 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 500, __FILE__, __LINE__, true);
    1788            3 :         return _r;
    1789              :       }
    1790              : next_after_fail611:;
    1791              :     }
    1792              :   return NULL_TREE;
    1793              : }
    1794              : 
    1795              : tree
    1796         7507 : generic_simplify_347 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1797              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    1798              :  const enum tree_code ARG_UNUSED (cmp),
    1799              :  const enum tree_code ARG_UNUSED (op))
    1800              : {
    1801         7507 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1802         7507 :   {
    1803         7507 :  tree from_type = TREE_TYPE (captures[0]), to_type = TREE_TYPE (captures[1]);
    1804         7507 :       if (types_match (from_type, to_type)
    1805         7507 :  || (TYPE_UNSIGNED (from_type)
    1806           37 :  && !TYPE_UNSIGNED (to_type)
    1807           37 :  && TYPE_PRECISION (from_type) == TYPE_PRECISION (to_type)
    1808           37 :  && integer_zerop (captures[1])
    1809           31 :  && (cmp == LT_EXPR || cmp == GE_EXPR))
    1810              : )
    1811              :         {
    1812         7477 :           {
    1813         7477 :  wi::overflow_type overflow = wi::OVF_NONE;
    1814         7477 :  enum tree_code code, cmp_code = cmp;
    1815         7477 :  wide_int real_c1;
    1816         7477 :  wide_int c1 = wi::to_wide (captures[1]);
    1817         7477 :  wide_int c2 = wi::to_wide (captures[2]);
    1818         7477 :  wide_int c3 = wi::to_wide (captures[3]);
    1819         7477 :  signop sgn = TYPE_SIGN (from_type);
    1820         7477 :  if (!types_match (from_type, to_type))
    1821              :  {
    1822            7 :  if (cmp_code == LT_EXPR)
    1823              :  cmp_code = GT_EXPR;
    1824            0 :  if (cmp_code == GE_EXPR)
    1825            0 :  cmp_code = LE_EXPR;
    1826            7 :  c1 = wi::max_value (to_type);
    1827              :  }
    1828         7477 :  if (op == PLUS_EXPR)
    1829         7477 :  real_c1 = wi::sub (c3, c2, sgn, &overflow);
    1830              :  else
    1831            0 :  real_c1 = wi::add (c3, c2, sgn, &overflow);
    1832         7477 :  code = cmp_code;
    1833         7477 :  if (!overflow || !TYPE_OVERFLOW_UNDEFINED (from_type))
    1834              :  {
    1835        14954 :  if (!wi::cmp (wi::sub (real_c1, 1, sgn, &overflow), c1, sgn)
    1836         7477 :  && !overflow)
    1837              :  {
    1838          635 :  if (cmp_code == LE_EXPR)
    1839              :  code = LT_EXPR;
    1840          633 :  if (cmp_code == GT_EXPR)
    1841         7477 :  code = GE_EXPR;
    1842              :  }
    1843        14954 :  if (!wi::cmp (wi::add (real_c1, 1, sgn, &overflow), c1, sgn)
    1844         7477 :  && !overflow)
    1845              :  {
    1846         6419 :  if (cmp_code == LT_EXPR)
    1847              :  code = LE_EXPR;
    1848         6419 :  if (cmp_code == GE_EXPR)
    1849              :  code = GT_EXPR;
    1850              :  }
    1851         1087 :  if (code != cmp_code || !wi::cmp (real_c1, c1, sgn))
    1852              :  {
    1853         7254 :  if (cmp_code == LT_EXPR || cmp_code == LE_EXPR)
    1854              :  code = MIN_EXPR;
    1855         7252 :  if (cmp_code == GT_EXPR || cmp_code == GE_EXPR)
    1856              :  code = MAX_EXPR;
    1857              :  }
    1858              :  }
    1859          225 :               if (code == MAX_EXPR
    1860              : )
    1861              :                 {
    1862         7252 :                   if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail621;
    1863         7252 :                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail621;
    1864         7252 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail621;
    1865         7252 :                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail621;
    1866         7252 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail621;
    1867         7252 :                   {
    1868         7252 :                     tree res_op0;
    1869         7252 :                     {
    1870         7252 :                       tree _o1[2], _r1;
    1871         7252 :                       _o1[0] = captures[0];
    1872         7252 :                       _o1[1] =  wide_int_to_tree (from_type, real_c1);
    1873         7252 :                       _r1 = fold_build2_loc (loc, MAX_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1874         7252 :                       res_op0 = _r1;
    1875              :                     }
    1876         7252 :                     tree res_op1;
    1877         7252 :                     res_op1 =  wide_int_to_tree (from_type, c2);
    1878         7252 :                     tree _r;
    1879         7252 :                     _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
    1880         7252 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 510, __FILE__, __LINE__, true);
    1881         7252 :                     return _r;
    1882              :                   }
    1883          223 : next_after_fail621:;
    1884              :                 }
    1885              :               else
    1886              :                 {
    1887          225 :                   if (code == MIN_EXPR
    1888              : )
    1889              :                     {
    1890            2 :                       if (TREE_SIDE_EFFECTS (captures[0])) goto next_after_fail622;
    1891            2 :                       if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail622;
    1892            2 :                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail622;
    1893            2 :                       if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail622;
    1894            2 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail622;
    1895            2 :                       {
    1896            2 :                         tree res_op0;
    1897            2 :                         {
    1898            2 :                           tree _o1[2], _r1;
    1899            2 :                           _o1[0] = captures[0];
    1900            2 :                           _o1[1] =  wide_int_to_tree (from_type, real_c1);
    1901            2 :                           _r1 = fold_build2_loc (loc, MIN_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1902            2 :                           res_op0 = _r1;
    1903              :                         }
    1904            2 :                         tree res_op1;
    1905            2 :                         res_op1 =  wide_int_to_tree (from_type, c2);
    1906            2 :                         tree _r;
    1907            2 :                         _r = fold_build2_loc (loc, op, type, res_op0, res_op1);
    1908            2 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 511, __FILE__, __LINE__, true);
    1909            2 :                         return _r;
    1910              :                       }
    1911          223 : next_after_fail622:;
    1912              :                     }
    1913              :                 }
    1914         7477 :           }
    1915              :         }
    1916              :   }
    1917              :   return NULL_TREE;
    1918              : }
    1919              : 
    1920              : tree
    1921           17 : generic_simplify_377 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    1922              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    1923              :  const enum tree_code ARG_UNUSED (cmp))
    1924              : {
    1925           17 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    1926           17 :   if (INTEGRAL_TYPE_P (type)
    1927           17 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    1928           17 :  && !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
    1929           34 :  && TYPE_PRECISION (TREE_TYPE (captures[0])) == TYPE_PRECISION (type)
    1930              : )
    1931              :     {
    1932           17 :       {
    1933           17 :  tree shifter = build_int_cst (integer_type_node, TYPE_PRECISION (type) - 1);
    1934           17 :           if (cmp == GE_EXPR
    1935              : )
    1936              :             {
    1937            9 :               if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail657;
    1938            9 :               if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail657;
    1939            9 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail657;
    1940            9 :               {
    1941            9 :                 tree res_op0;
    1942            9 :                 {
    1943            9 :                   tree _o1[1], _r1;
    1944            9 :                   {
    1945            9 :                     tree _o2[2], _r2;
    1946            9 :                     _o2[0] = captures[0];
    1947            9 :                     _o2[1] = shifter;
    1948            9 :                     _r2 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    1949            9 :                     _o1[0] = _r2;
    1950              :                   }
    1951            9 :                   if (TREE_TYPE (_o1[0]) != type)
    1952              :                     {
    1953            0 :                       _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    1954              :                     }
    1955              :                   else
    1956              :                     _r1 = _o1[0];
    1957            9 :                   res_op0 = _r1;
    1958              :                 }
    1959            9 :                 tree res_op1;
    1960            9 :                 res_op1 = captures[1];
    1961            9 :                 tree _r;
    1962            9 :                 _r = fold_build2_loc (loc, BIT_XOR_EXPR, type, res_op0, res_op1);
    1963            9 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 544, __FILE__, __LINE__, true);
    1964            9 :                 return _r;
    1965              :               }
    1966              : next_after_fail657:;
    1967              :             }
    1968              :           else
    1969              :             {
    1970            8 :               if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail658;
    1971            8 :               if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail658;
    1972            8 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail658;
    1973            8 :               {
    1974            8 :                 tree res_op0;
    1975            8 :                 {
    1976            8 :                   tree _o1[2], _r1;
    1977            8 :                   {
    1978            8 :                     tree _o2[1], _r2;
    1979            8 :                     {
    1980            8 :                       tree _o3[2], _r3;
    1981            8 :                       _o3[0] = captures[0];
    1982            8 :                       _o3[1] = shifter;
    1983            8 :                       _r3 = fold_build2_loc (loc, RSHIFT_EXPR, TREE_TYPE (_o3[0]), _o3[0], _o3[1]);
    1984            8 :                       _o2[0] = _r3;
    1985              :                     }
    1986            8 :                     if (TREE_TYPE (_o2[0]) != type)
    1987              :                       {
    1988            0 :                         _r2 = fold_build1_loc (loc, NOP_EXPR, type, _o2[0]);
    1989              :                       }
    1990              :                     else
    1991              :                       _r2 = _o2[0];
    1992            8 :                     _o1[0] = _r2;
    1993              :                   }
    1994            8 :                   _o1[1] = captures[1];
    1995            8 :                   _r1 = fold_build2_loc (loc, BIT_XOR_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    1996            8 :                   res_op0 = _r1;
    1997              :                 }
    1998            8 :                 tree _r;
    1999            8 :                 _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
    2000            8 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 545, __FILE__, __LINE__, true);
    2001            8 :                 return _r;
    2002              :               }
    2003              : next_after_fail658:;
    2004              :             }
    2005              :       }
    2006              :     }
    2007              :   return NULL_TREE;
    2008              : }
    2009              : 
    2010              : tree
    2011      1244219 : generic_simplify_396 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2012              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2013              :  const enum tree_code ARG_UNUSED (cmp))
    2014              : {
    2015      1244219 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2016      2488438 :   if ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
    2017          548 :  || POINTER_TYPE_P (TREE_TYPE (captures[2]))
    2018          173 :  || VECTOR_INTEGER_TYPE_P (TREE_TYPE (captures[2])))
    2019      2488438 :  && tree_nop_conversion_p (TREE_TYPE (captures[0]), TREE_TYPE (captures[1]))
    2020              : )
    2021              :     {
    2022      1062670 :       {
    2023      1062670 :  tree cst = uniform_integer_cst_p (captures[2]);
    2024      1062670 :  tree arg1_type = TREE_TYPE (cst);
    2025      1062670 :  unsigned int prec = TYPE_PRECISION (arg1_type);
    2026      1062670 :  wide_int max = wi::max_value (arg1_type);
    2027      1062670 :  wide_int signed_max = wi::max_value (prec, SIGNED);
    2028      1062670 :  wide_int min = wi::min_value (arg1_type);
    2029      1062670 :           if (wi::to_wide (cst) == max
    2030              : )
    2031              :             {
    2032          713 :               if (cmp == GT_EXPR
    2033              : )
    2034              :                 {
    2035          481 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail682;
    2036          481 :                   {
    2037          481 :                     tree _r;
    2038          481 :                     _r =  constant_boolean_node (false, type);
    2039          481 :                     if (TREE_SIDE_EFFECTS (captures[1]))
    2040            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2041          481 :                     if (TREE_SIDE_EFFECTS (captures[2]))
    2042            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2043          481 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 569, __FILE__, __LINE__, true);
    2044          481 :                     return _r;
    2045              :                   }
    2046            0 : next_after_fail682:;
    2047              :                 }
    2048              :               else
    2049              :                 {
    2050          232 :                   if (cmp == GE_EXPR
    2051              : )
    2052              :                     {
    2053            0 :                       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail683;
    2054            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail683;
    2055            0 :                       {
    2056            0 :                         tree res_op0;
    2057            0 :                         res_op0 = captures[0];
    2058            0 :                         tree res_op1;
    2059            0 :                         res_op1 = captures[2];
    2060            0 :                         tree _r;
    2061            0 :                         _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
    2062            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 570, __FILE__, __LINE__, true);
    2063            0 :                         return _r;
    2064              :                       }
    2065       998693 : next_after_fail683:;
    2066              :                     }
    2067              :                   else
    2068              :                     {
    2069          232 :                       if (cmp == LE_EXPR
    2070              : )
    2071              :                         {
    2072          232 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail684;
    2073          232 :                           {
    2074          232 :                             tree _r;
    2075          232 :                             _r =  constant_boolean_node (true, type);
    2076          232 :                             if (TREE_SIDE_EFFECTS (captures[1]))
    2077            0 :                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2078          232 :                             if (TREE_SIDE_EFFECTS (captures[2]))
    2079            0 :                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2080          232 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 571, __FILE__, __LINE__, true);
    2081          232 :                             return _r;
    2082              :                           }
    2083            0 : next_after_fail684:;
    2084              :                         }
    2085              :                       else
    2086              :                         {
    2087            0 :                           if (cmp == LT_EXPR
    2088              : )
    2089              :                             {
    2090            0 :                               if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail685;
    2091            0 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail685;
    2092            0 :                               {
    2093            0 :                                 tree res_op0;
    2094            0 :                                 res_op0 = captures[0];
    2095            0 :                                 tree res_op1;
    2096            0 :                                 res_op1 = captures[2];
    2097            0 :                                 tree _r;
    2098            0 :                                 _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    2099            0 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 572, __FILE__, __LINE__, true);
    2100            0 :                                 return _r;
    2101              :                               }
    2102       998693 : next_after_fail685:;
    2103              :                             }
    2104              :                         }
    2105              :                     }
    2106              :                 }
    2107              :             }
    2108              :           else
    2109              :             {
    2110      1061957 :               if (wi::to_wide (cst) == min
    2111              : )
    2112              :                 {
    2113        58691 :                   if (cmp == LT_EXPR
    2114              : )
    2115              :                     {
    2116         2560 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail686;
    2117         2560 :                       {
    2118         2560 :                         tree _r;
    2119         2560 :                         _r =  constant_boolean_node (false, type);
    2120         2560 :                         if (TREE_SIDE_EFFECTS (captures[1]))
    2121            6 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2122         2560 :                         if (TREE_SIDE_EFFECTS (captures[2]))
    2123            0 :                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2124         2560 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 573, __FILE__, __LINE__, true);
    2125         2560 :                         return _r;
    2126              :                       }
    2127            0 : next_after_fail686:;
    2128              :                     }
    2129              :                   else
    2130              :                     {
    2131        56131 :                       if (cmp == LE_EXPR
    2132              : )
    2133              :                         {
    2134        15443 :                           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail687;
    2135        14325 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail687;
    2136        14325 :                           {
    2137        14325 :                             tree res_op0;
    2138        14325 :                             res_op0 = captures[0];
    2139        14325 :                             tree res_op1;
    2140        14325 :                             res_op1 = captures[2];
    2141        14325 :                             tree _r;
    2142        14325 :                             _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
    2143        14325 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 574, __FILE__, __LINE__, true);
    2144        14325 :                             return _r;
    2145              :                           }
    2146       998693 : next_after_fail687:;
    2147              :                         }
    2148              :                       else
    2149              :                         {
    2150        40688 :                           if (cmp == GE_EXPR
    2151              : )
    2152              :                             {
    2153         8613 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail688;
    2154         8613 :                               {
    2155         8613 :                                 tree _r;
    2156         8613 :                                 _r =  constant_boolean_node (true, type);
    2157         8613 :                                 if (TREE_SIDE_EFFECTS (captures[1]))
    2158           51 :                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2159         8613 :                                 if (TREE_SIDE_EFFECTS (captures[2]))
    2160            0 :                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2161         8613 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 575, __FILE__, __LINE__, true);
    2162         8613 :                                 return _r;
    2163              :                               }
    2164            0 : next_after_fail688:;
    2165              :                             }
    2166              :                           else
    2167              :                             {
    2168        32075 :                               if (cmp == GT_EXPR
    2169              : )
    2170              :                                 {
    2171        32075 :                                   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail689;
    2172        26485 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail689;
    2173        26485 :                                   {
    2174        26485 :                                     tree res_op0;
    2175        26485 :                                     res_op0 = captures[0];
    2176        26485 :                                     tree res_op1;
    2177        26485 :                                     res_op1 = captures[2];
    2178        26485 :                                     tree _r;
    2179        26485 :                                     _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    2180        26485 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 576, __FILE__, __LINE__, true);
    2181        26485 :                                     return _r;
    2182              :                                   }
    2183       998693 : next_after_fail689:;
    2184              :                                 }
    2185              :                             }
    2186              :                         }
    2187              :                     }
    2188              :                 }
    2189              :               else
    2190              :                 {
    2191      1003266 :                   if (wi::to_wide (cst) == max - 1
    2192              : )
    2193              :                     {
    2194         6329 :                       if (cmp == GT_EXPR
    2195              : )
    2196              :                         {
    2197         1411 :                           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail690;
    2198         1411 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail690;
    2199         1411 :                           {
    2200         1411 :                             tree res_op0;
    2201         1411 :                             res_op0 = captures[0];
    2202         1411 :                             tree res_op1;
    2203         1411 :                             res_op1 =  build_uniform_cst (TREE_TYPE (captures[2]),
    2204         1411 :  wide_int_to_tree (TREE_TYPE (cst),
    2205         1411 :  wi::to_wide (cst)
    2206         2822 :  + 1));
    2207         1411 :                             tree _r;
    2208         1411 :                             _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
    2209         1411 :                             if (TREE_SIDE_EFFECTS (captures[2]))
    2210            0 :                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2211         1411 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 577, __FILE__, __LINE__, true);
    2212         1411 :                             return _r;
    2213              :                           }
    2214       998693 : next_after_fail690:;
    2215              :                         }
    2216              :                       else
    2217              :                         {
    2218         4918 :                           if (cmp == LE_EXPR
    2219              : )
    2220              :                             {
    2221         4918 :                               if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail691;
    2222         4918 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail691;
    2223         4918 :                               {
    2224         4918 :                                 tree res_op0;
    2225         4918 :                                 res_op0 = captures[0];
    2226         4918 :                                 tree res_op1;
    2227         4918 :                                 res_op1 =  build_uniform_cst (TREE_TYPE (captures[2]),
    2228         4918 :  wide_int_to_tree (TREE_TYPE (cst),
    2229         4918 :  wi::to_wide (cst)
    2230         9836 :  + 1));
    2231         4918 :                                 tree _r;
    2232         4918 :                                 _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    2233         4918 :                                 if (TREE_SIDE_EFFECTS (captures[2]))
    2234            0 :                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2235         4918 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 578, __FILE__, __LINE__, true);
    2236         4918 :                                 return _r;
    2237              :                               }
    2238       998693 : next_after_fail691:;
    2239              :                             }
    2240              :                         }
    2241              :                     }
    2242              :                   else
    2243              :                     {
    2244       996937 :                       if (wi::to_wide (cst) == min + 1
    2245              : )
    2246              :                         {
    2247        57350 :                           if (cmp == GE_EXPR
    2248              : )
    2249              :                             {
    2250         1741 :                               if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail692;
    2251         1741 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail692;
    2252         1741 :                               {
    2253         1741 :                                 tree res_op0;
    2254         1741 :                                 res_op0 = captures[0];
    2255         1741 :                                 tree res_op1;
    2256         1741 :                                 res_op1 =  build_uniform_cst (TREE_TYPE (captures[2]),
    2257         1741 :  wide_int_to_tree (TREE_TYPE (cst),
    2258         1741 :  wi::to_wide (cst)
    2259         3482 :  - 1));
    2260         1741 :                                 tree _r;
    2261         1741 :                                 _r = fold_build2_loc (loc, NE_EXPR, type, res_op0, res_op1);
    2262         1741 :                                 if (TREE_SIDE_EFFECTS (captures[2]))
    2263            0 :                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2264         1741 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 579, __FILE__, __LINE__, true);
    2265         1741 :                                 return _r;
    2266              :                               }
    2267       998693 : next_after_fail692:;
    2268              :                             }
    2269              :                           else
    2270              :                             {
    2271        55609 :                               if (cmp == LT_EXPR
    2272              : )
    2273              :                                 {
    2274          334 :                                   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail693;
    2275          334 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail693;
    2276          334 :                                   {
    2277          334 :                                     tree res_op0;
    2278          334 :                                     res_op0 = captures[0];
    2279          334 :                                     tree res_op1;
    2280          334 :                                     res_op1 =  build_uniform_cst (TREE_TYPE (captures[2]),
    2281          334 :  wide_int_to_tree (TREE_TYPE (cst),
    2282          334 :  wi::to_wide (cst)
    2283          668 :  - 1));
    2284          334 :                                     tree _r;
    2285          334 :                                     _r = fold_build2_loc (loc, EQ_EXPR, type, res_op0, res_op1);
    2286          334 :                                     if (TREE_SIDE_EFFECTS (captures[2]))
    2287            0 :                                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2288          334 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 580, __FILE__, __LINE__, true);
    2289          334 :                                     return _r;
    2290              :                                   }
    2291       998693 : next_after_fail693:;
    2292              :                                 }
    2293              :                             }
    2294              :                         }
    2295              :                       else
    2296              :                         {
    2297       939587 :                           if (wi::to_wide (cst) == signed_max
    2298         2877 :  && TYPE_UNSIGNED (arg1_type)
    2299         2877 :  && TYPE_MODE (arg1_type) != BLKmode
    2300       939587 :  && prec == GET_MODE_PRECISION (SCALAR_INT_TYPE_MODE (arg1_type))
    2301       942464 :  && INTEGRAL_TYPE_P (arg1_type)
    2302              : )
    2303              :                             {
    2304         2877 :                               if (cmp == LE_EXPR || cmp == GT_EXPR
    2305              : )
    2306              :                                 {
    2307         2877 :                                   {
    2308         2877 :  tree st = signed_type_for (TREE_TYPE (captures[2]));
    2309         2877 :                                       if (cst == captures[2] && cmp == LE_EXPR
    2310              : )
    2311              :                                         {
    2312         2841 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail694;
    2313         2841 :                                           {
    2314         2841 :                                             tree res_op0;
    2315         2841 :                                             {
    2316         2841 :                                               tree _o1[1], _r1;
    2317         2841 :                                               _o1[0] = captures[1];
    2318         2841 :                                               if (TREE_TYPE (_o1[0]) != st)
    2319              :                                                 {
    2320         2837 :                                                   _r1 = fold_build1_loc (loc, NOP_EXPR, st, _o1[0]);
    2321              :                                                 }
    2322              :                                               else
    2323              :                                                 _r1 = _o1[0];
    2324         2841 :                                               res_op0 = _r1;
    2325              :                                             }
    2326         2841 :                                             tree res_op1;
    2327         2841 :                                             res_op1 =  build_zero_cst (st);
    2328         2841 :                                             tree _r;
    2329         2841 :                                             _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
    2330         2841 :                                             if (TREE_SIDE_EFFECTS (captures[2]))
    2331            0 :                                               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2332         2841 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 581, __FILE__, __LINE__, true);
    2333         2841 :                                             return _r;
    2334              :                                           }
    2335            0 : next_after_fail694:;
    2336            0 :                                         }
    2337              :                                       else
    2338              :                                         {
    2339           36 :                                           if (cst == captures[2] && cmp == GT_EXPR
    2340              : )
    2341              :                                             {
    2342           36 :                                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail695;
    2343           36 :                                               {
    2344           36 :                                                 tree res_op0;
    2345           36 :                                                 {
    2346           36 :                                                   tree _o1[1], _r1;
    2347           36 :                                                   _o1[0] = captures[1];
    2348           36 :                                                   if (TREE_TYPE (_o1[0]) != st)
    2349              :                                                     {
    2350           36 :                                                       _r1 = fold_build1_loc (loc, NOP_EXPR, st, _o1[0]);
    2351              :                                                     }
    2352              :                                                   else
    2353              :                                                     _r1 = _o1[0];
    2354           36 :                                                   res_op0 = _r1;
    2355              :                                                 }
    2356           36 :                                                 tree res_op1;
    2357           36 :                                                 res_op1 =  build_zero_cst (st);
    2358           36 :                                                 tree _r;
    2359           36 :                                                 _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
    2360           36 :                                                 if (TREE_SIDE_EFFECTS (captures[2]))
    2361            0 :                                                   _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2362           36 :                                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 582, __FILE__, __LINE__, true);
    2363           36 :                                                 return _r;
    2364              :                                               }
    2365            0 : next_after_fail695:;
    2366            0 :                                             }
    2367              :                                           else
    2368              :                                             {
    2369            0 :                                               if (cmp == LE_EXPR
    2370              : )
    2371              :                                                 {
    2372            0 :                                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail696;
    2373            0 :                                                   {
    2374            0 :                                                     tree res_op0;
    2375            0 :                                                     {
    2376            0 :                                                       tree _o1[1], _r1;
    2377            0 :                                                       _o1[0] = captures[1];
    2378            0 :                                                       if (TREE_TYPE (_o1[0]) != st)
    2379              :                                                         {
    2380            0 :                                                           _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, st, _o1[0]);
    2381              :                                                         }
    2382              :                                                       else
    2383              :                                                         _r1 = _o1[0];
    2384            0 :                                                       res_op0 = _r1;
    2385              :                                                     }
    2386            0 :                                                     tree res_op1;
    2387            0 :                                                     res_op1 =  build_zero_cst (st);
    2388            0 :                                                     tree _r;
    2389            0 :                                                     _r = fold_build2_loc (loc, GE_EXPR, type, res_op0, res_op1);
    2390            0 :                                                     if (TREE_SIDE_EFFECTS (captures[2]))
    2391            0 :                                                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2392            0 :                                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 583, __FILE__, __LINE__, true);
    2393            0 :                                                     return _r;
    2394              :                                                   }
    2395            0 : next_after_fail696:;
    2396              :                                                 }
    2397              :                                               else
    2398              :                                                 {
    2399            0 :                                                   if (cmp == GT_EXPR
    2400              : )
    2401              :                                                     {
    2402            0 :                                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail697;
    2403            0 :                                                       {
    2404            0 :                                                         tree res_op0;
    2405            0 :                                                         {
    2406            0 :                                                           tree _o1[1], _r1;
    2407            0 :                                                           _o1[0] = captures[1];
    2408            0 :                                                           if (TREE_TYPE (_o1[0]) != st)
    2409              :                                                             {
    2410            0 :                                                               _r1 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, st, _o1[0]);
    2411              :                                                             }
    2412              :                                                           else
    2413              :                                                             _r1 = _o1[0];
    2414            0 :                                                           res_op0 = _r1;
    2415              :                                                         }
    2416            0 :                                                         tree res_op1;
    2417            0 :                                                         res_op1 =  build_zero_cst (st);
    2418            0 :                                                         tree _r;
    2419            0 :                                                         _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
    2420            0 :                                                         if (TREE_SIDE_EFFECTS (captures[2]))
    2421            0 :                                                           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    2422            0 :                                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 584, __FILE__, __LINE__, true);
    2423            0 :                                                         return _r;
    2424              :                                                       }
    2425            0 : next_after_fail697:;
    2426              :                                                     }
    2427              :                                                 }
    2428              :                                             }
    2429              :                                         }
    2430              :                                   }
    2431              :                                 }
    2432              :                             }
    2433              :                         }
    2434              :                     }
    2435              :                 }
    2436              :             }
    2437      1062670 :       }
    2438              :     }
    2439              :   return NULL_TREE;
    2440              : }
    2441              : 
    2442              : tree
    2443            1 : generic_simplify_458 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2444              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    2445              : {
    2446            1 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2447            1 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail806;
    2448            1 :   {
    2449            1 :     tree res_op0;
    2450            1 :     res_op0 = captures[0];
    2451            1 :     tree res_op1;
    2452            1 :     res_op1 = captures[1];
    2453            1 :     tree _r;
    2454            1 :     _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    2455            1 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 658, __FILE__, __LINE__, true);
    2456              :     return _r;
    2457              :   }
    2458            0 : next_after_fail806:;
    2459            0 :   return NULL_TREE;
    2460              : }
    2461              : 
    2462              : tree
    2463       934053 : generic_simplify_464 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2464              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2465              :  const enum tree_code ARG_UNUSED (op))
    2466              : {
    2467       934053 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2468       934053 :   {
    2469       934053 :  tree pmop[2];
    2470       934053 :  tree utype = fold_bit_and_mask (TREE_TYPE (captures[1]), captures[3], op, captures[1], ERROR_MARK,
    2471              :  NULL_TREE, NULL_TREE, captures[2], ERROR_MARK,
    2472              :  NULL_TREE, NULL_TREE, pmop);
    2473       934053 :       if (utype
    2474              : )
    2475              :         {
    2476       331216 :           if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail812;
    2477       331216 :           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail812;
    2478       331216 :           if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail812;
    2479       331216 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail812;
    2480       331216 :           {
    2481       331216 :             tree res_op0;
    2482       331216 :             {
    2483       331216 :               tree _o1[2], _r1;
    2484       331216 :               {
    2485       331216 :                 tree _o2[2], _r2;
    2486       331216 :                 {
    2487       331216 :                   tree _o3[1], _r3;
    2488       331216 :                   _o3[0] =  pmop[0];
    2489       331216 :                   if (TREE_TYPE (_o3[0]) != utype)
    2490              :                     {
    2491          238 :                       _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
    2492              :                     }
    2493              :                   else
    2494              :                     _r3 = _o3[0];
    2495       331216 :                   _o2[0] = _r3;
    2496              :                 }
    2497       331216 :                 {
    2498       331216 :                   tree _o3[1], _r3;
    2499       331216 :                   _o3[0] =  pmop[1];
    2500       331216 :                   if (TREE_TYPE (_o3[0]) != utype)
    2501              :                     {
    2502          238 :                       _r3 = fold_build1_loc (loc, NOP_EXPR, utype, _o3[0]);
    2503              :                     }
    2504              :                   else
    2505              :                     _r3 = _o3[0];
    2506       331216 :                   _o2[1] = _r3;
    2507              :                 }
    2508       331216 :                 _r2 = fold_build2_loc (loc, op, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    2509       331216 :                 _o1[0] = _r2;
    2510              :               }
    2511       331216 :               {
    2512       331216 :                 tree _o2[1], _r2;
    2513       331216 :                 _o2[0] = captures[3];
    2514       331216 :                 if (TREE_TYPE (_o2[0]) != utype)
    2515              :                   {
    2516          238 :                     _r2 = fold_build1_loc (loc, NOP_EXPR, utype, _o2[0]);
    2517              :                   }
    2518              :                 else
    2519              :                   _r2 = _o2[0];
    2520       331216 :                 _o1[1] = _r2;
    2521              :               }
    2522       331216 :               _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2523       331216 :               res_op0 = _r1;
    2524              :             }
    2525       331216 :             tree _r;
    2526       331216 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    2527       331216 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 663, __FILE__, __LINE__, true);
    2528       331216 :             return _r;
    2529              :           }
    2530       602837 : next_after_fail812:;
    2531              :         }
    2532              :   }
    2533       602837 :   return NULL_TREE;
    2534              : }
    2535              : 
    2536              : tree
    2537            0 : generic_simplify_477 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2538              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2539              :  const enum tree_code ARG_UNUSED (code2),
    2540              :  const enum tree_code ARG_UNUSED (code1))
    2541              : {
    2542            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2543            0 :   if ((TREE_CODE (captures[2]) == INTEGER_CST
    2544            0 :  && TREE_CODE (captures[5]) == INTEGER_CST)
    2545            0 :  || ((INTEGRAL_TYPE_P (TREE_TYPE (captures[2]))
    2546            0 :  || (VECTOR_TYPE_P (TREE_TYPE (captures[2]))
    2547            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, code2))
    2548            0 :  || POINTER_TYPE_P (TREE_TYPE (captures[2])))
    2549            0 :  && bitwise_equal_p (captures[2], captures[5]))
    2550              : )
    2551              :     {
    2552            0 :       {
    2553            0 :  bool one_before = false;
    2554            0 :  bool one_after = false;
    2555            0 :  int cmp = 0;
    2556            0 :  bool allbits = true;
    2557            0 :  if (TREE_CODE (captures[2]) == INTEGER_CST
    2558            0 :  && TREE_CODE (captures[5]) == INTEGER_CST)
    2559              :  {
    2560            0 :  allbits = TYPE_PRECISION (TREE_TYPE (captures[2])) <= TYPE_PRECISION (TREE_TYPE (captures[5]));
    2561            0 :  auto t1 = wi::to_wide (fold_convert (TREE_TYPE (captures[5]), captures[2]));
    2562            0 :  auto t2 = wi::to_wide (captures[5]);
    2563            0 :  cmp = wi::cmp (t1, t2, TYPE_SIGN (TREE_TYPE (captures[5])));
    2564            0 :  if (cmp < 0
    2565            0 :  && t1 == t2 - 1)
    2566              :  one_before = true;
    2567            0 :  if (cmp > 0
    2568            0 :  && t1 == t2 + 1)
    2569              :  one_after = true;
    2570              :  }
    2571            0 :  bool val;
    2572            0 :  switch (code2)
    2573              :  {
    2574            0 :  case EQ_EXPR: val = (cmp == 0); break;
    2575            0 :  case NE_EXPR: val = (cmp != 0); break;
    2576            0 :  case LT_EXPR: val = (cmp < 0); break;
    2577            0 :  case GT_EXPR: val = (cmp > 0); break;
    2578            0 :  case LE_EXPR: val = (cmp <= 0); break;
    2579            0 :  case GE_EXPR: val = (cmp >= 0); break;
    2580            0 :  default: gcc_unreachable ();
    2581              :  }
    2582            0 :           if (code1 == EQ_EXPR && val
    2583              : )
    2584              :             {
    2585            0 :               if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail827;
    2586            0 :               if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail827;
    2587            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail827;
    2588            0 :               {
    2589            0 :                 tree _r;
    2590            0 :                 _r = captures[0];
    2591            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 677, __FILE__, __LINE__, true);
    2592            0 :                 return _r;
    2593              :               }
    2594              : next_after_fail827:;
    2595              :             }
    2596              :           else
    2597              :             {
    2598            0 :               if (code1 == EQ_EXPR && !val
    2599              : )
    2600              :                 {
    2601            0 :                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail828;
    2602            0 :                   if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail828;
    2603            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail828;
    2604            0 :                   {
    2605            0 :                     tree _r;
    2606            0 :                     _r =  constant_boolean_node (false, type);
    2607            0 :                     if (TREE_SIDE_EFFECTS (captures[1]))
    2608            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2609            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 678, __FILE__, __LINE__, true);
    2610            0 :                     return _r;
    2611              :                   }
    2612              : next_after_fail828:;
    2613              :                 }
    2614              :               else
    2615              :                 {
    2616            0 :                   if (code1 == NE_EXPR && !val && allbits
    2617              : )
    2618              :                     {
    2619            0 :                       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail829;
    2620            0 :                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail829;
    2621            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail829;
    2622            0 :                       {
    2623            0 :                         tree _r;
    2624            0 :                         _r = captures[3];
    2625            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 679, __FILE__, __LINE__, true);
    2626            0 :                         return _r;
    2627              :                       }
    2628              : next_after_fail829:;
    2629              :                     }
    2630              :                   else
    2631              :                     {
    2632            0 :                       if ((code1 == NE_EXPR
    2633            0 :  && code2 == GE_EXPR
    2634            0 :  && cmp == 0
    2635            0 :  && allbits)
    2636            0 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
    2637            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GT_EXPR))
    2638            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
    2639              : )
    2640              :                         {
    2641            0 :                           if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail830;
    2642            0 :                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail830;
    2643            0 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail830;
    2644            0 :                           {
    2645            0 :                             tree res_op0;
    2646            0 :                             res_op0 = captures[4];
    2647            0 :                             tree res_op1;
    2648            0 :                             {
    2649            0 :                               tree _o1[1], _r1;
    2650            0 :                               _o1[0] = captures[2];
    2651            0 :                               if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
    2652              :                                 {
    2653            0 :                                   _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
    2654              :                                 }
    2655              :                               else
    2656              :                                 _r1 = _o1[0];
    2657            0 :                               res_op1 = _r1;
    2658              :                             }
    2659            0 :                             tree _r;
    2660            0 :                             _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
    2661            0 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 680, __FILE__, __LINE__, true);
    2662            0 :                             return _r;
    2663              :                           }
    2664              : next_after_fail830:;
    2665              :                         }
    2666              :                       else
    2667              :                         {
    2668            0 :                           if ((code1 == NE_EXPR
    2669            0 :  && code2 == LE_EXPR
    2670            0 :  && cmp == 0
    2671            0 :  && allbits)
    2672            0 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
    2673            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LT_EXPR))
    2674            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
    2675              : )
    2676              :                             {
    2677            0 :                               if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail831;
    2678            0 :                               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail831;
    2679            0 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail831;
    2680            0 :                               {
    2681            0 :                                 tree res_op0;
    2682            0 :                                 res_op0 = captures[4];
    2683            0 :                                 tree res_op1;
    2684            0 :                                 {
    2685            0 :                                   tree _o1[1], _r1;
    2686            0 :                                   _o1[0] = captures[2];
    2687            0 :                                   if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
    2688              :                                     {
    2689            0 :                                       _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
    2690              :                                     }
    2691              :                                   else
    2692              :                                     _r1 = _o1[0];
    2693            0 :                                   res_op1 = _r1;
    2694              :                                 }
    2695            0 :                                 tree _r;
    2696            0 :                                 _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
    2697            0 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 681, __FILE__, __LINE__, true);
    2698            0 :                                 return _r;
    2699              :                               }
    2700              : next_after_fail831:;
    2701              :                             }
    2702              :                           else
    2703              :                             {
    2704            0 :                               if ((code1 == NE_EXPR
    2705            0 :  && code2 == GT_EXPR
    2706              :  && one_after
    2707            0 :  && allbits)
    2708            0 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
    2709            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, GT_EXPR))
    2710            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
    2711              : )
    2712              :                                 {
    2713            0 :                                   if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail832;
    2714            0 :                                   if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail832;
    2715            0 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail832;
    2716            0 :                                   {
    2717            0 :                                     tree res_op0;
    2718            0 :                                     res_op0 = captures[4];
    2719            0 :                                     tree res_op1;
    2720            0 :                                     {
    2721            0 :                                       tree _o1[1], _r1;
    2722            0 :                                       _o1[0] = captures[2];
    2723            0 :                                       if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
    2724              :                                         {
    2725            0 :                                           _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
    2726              :                                         }
    2727              :                                       else
    2728              :                                         _r1 = _o1[0];
    2729            0 :                                       res_op1 = _r1;
    2730              :                                     }
    2731            0 :                                     tree _r;
    2732            0 :                                     _r = fold_build2_loc (loc, GT_EXPR, type, res_op0, res_op1);
    2733            0 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 682, __FILE__, __LINE__, true);
    2734            0 :                                     return _r;
    2735              :                                   }
    2736              : next_after_fail832:;
    2737              :                                 }
    2738              :                               else
    2739              :                                 {
    2740            0 :                                   if ((code1 == NE_EXPR
    2741            0 :  && code2 == LT_EXPR
    2742              :  && one_before
    2743            0 :  && allbits)
    2744            0 :  && ((VECTOR_BOOLEAN_TYPE_P (type)
    2745            0 :  && expand_vec_cmp_expr_p (TREE_TYPE (captures[2]), type, LT_EXPR))
    2746            0 :  || !VECTOR_TYPE_P (TREE_TYPE (captures[2])))
    2747              : )
    2748              :                                     {
    2749            0 :                                       if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail833;
    2750            0 :                                       if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail833;
    2751            0 :                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail833;
    2752            0 :                                       {
    2753            0 :                                         tree res_op0;
    2754            0 :                                         res_op0 = captures[4];
    2755            0 :                                         tree res_op1;
    2756            0 :                                         {
    2757            0 :                                           tree _o1[1], _r1;
    2758            0 :                                           _o1[0] = captures[2];
    2759            0 :                                           if (TREE_TYPE (_o1[0]) != TREE_TYPE (res_op0))
    2760              :                                             {
    2761            0 :                                               _r1 = fold_build1_loc (loc, NOP_EXPR, TREE_TYPE (res_op0), _o1[0]);
    2762              :                                             }
    2763              :                                           else
    2764              :                                             _r1 = _o1[0];
    2765            0 :                                           res_op1 = _r1;
    2766              :                                         }
    2767            0 :                                         tree _r;
    2768            0 :                                         _r = fold_build2_loc (loc, LT_EXPR, type, res_op0, res_op1);
    2769            0 :                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 683, __FILE__, __LINE__, true);
    2770            0 :                                         return _r;
    2771              :                                       }
    2772              : next_after_fail833:;
    2773              :                                     }
    2774              :                                 }
    2775              :                             }
    2776              :                         }
    2777              :                     }
    2778              :                 }
    2779              :             }
    2780              :       }
    2781              :     }
    2782              :   return NULL_TREE;
    2783              : }
    2784              : 
    2785              : tree
    2786          145 : generic_simplify_508 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2787              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
    2788              : {
    2789          145 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2790          145 :   if (element_precision (type) <= element_precision (TREE_TYPE (captures[0]))
    2791          145 :  || !TYPE_UNSIGNED (TREE_TYPE (captures[0]))
    2792              : )
    2793              :     {
    2794          145 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail900;
    2795          145 :       {
    2796          145 :         tree res_op0;
    2797          145 :         {
    2798          145 :           tree _o1[2], _r1;
    2799          145 :           _o1[0] = captures[0];
    2800          145 :           _o1[1] =  build_each_one_cst (TREE_TYPE (captures[0]));
    2801          145 :           _r1 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2802          145 :           res_op0 = _r1;
    2803              :         }
    2804          145 :         tree _r;
    2805          145 :         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    2806          145 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 712, __FILE__, __LINE__, true);
    2807          145 :         return _r;
    2808              :       }
    2809            0 : next_after_fail900:;
    2810              :     }
    2811              :   return NULL_TREE;
    2812              : }
    2813              : 
    2814              : tree
    2815          253 : generic_simplify_515 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2816              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    2817              :  const enum tree_code ARG_UNUSED (cmp),
    2818              :  const enum tree_code ARG_UNUSED (icmp),
    2819              :  const enum tree_code ARG_UNUSED (ncmp))
    2820              : {
    2821          253 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2822          253 :   if (VECTOR_TYPE_P (type)
    2823          253 :  || (INTEGRAL_TYPE_P (type) && TYPE_PRECISION (type) == 1)
    2824              : )
    2825              :     {
    2826           51 :       {
    2827           51 :  enum tree_code ic = invert_tree_comparison
    2828           51 :  (cmp, HONOR_NANS (captures[0]));
    2829           51 :           if (ic == icmp
    2830              : )
    2831              :             {
    2832           12 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail907;
    2833           12 :               {
    2834           12 :                 tree res_op0;
    2835           12 :                 res_op0 = captures[0];
    2836           12 :                 tree res_op1;
    2837           12 :                 res_op1 = captures[1];
    2838           12 :                 tree _r;
    2839           12 :                 _r = fold_build2_loc (loc, icmp, type, res_op0, res_op1);
    2840           12 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 717, __FILE__, __LINE__, true);
    2841           12 :                 return _r;
    2842              :               }
    2843            0 : next_after_fail907:;
    2844              :             }
    2845              :           else
    2846              :             {
    2847           39 :               if (ic == ncmp
    2848              : )
    2849              :                 {
    2850            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail908;
    2851            0 :                   {
    2852            0 :                     tree res_op0;
    2853            0 :                     res_op0 = captures[0];
    2854            0 :                     tree res_op1;
    2855            0 :                     res_op1 = captures[1];
    2856            0 :                     tree _r;
    2857            0 :                     _r = fold_build2_loc (loc, ncmp, type, res_op0, res_op1);
    2858            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 718, __FILE__, __LINE__, true);
    2859            0 :                     return _r;
    2860              :                   }
    2861            0 : next_after_fail908:;
    2862              :                 }
    2863              :             }
    2864              :       }
    2865              :     }
    2866              :   return NULL_TREE;
    2867              : }
    2868              : 
    2869              : tree
    2870            2 : generic_simplify_528 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2871              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures))
    2872              : {
    2873            2 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2874            2 :   if (TREE_CODE (type) != COMPLEX_TYPE
    2875            2 :  && (! ANY_INTEGRAL_TYPE_P (type)
    2876            1 :  || TYPE_OVERFLOW_UNDEFINED (type))
    2877              : )
    2878              :     {
    2879            2 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail922;
    2880            2 :       {
    2881            2 :         tree res_op0;
    2882            2 :         {
    2883            2 :           tree _o1[1], _r1;
    2884            2 :           _o1[0] = captures[0];
    2885            2 :           _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    2886            2 :           res_op0 = _r1;
    2887              :         }
    2888            2 :         tree _r;
    2889            2 :         _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    2890            2 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 731, __FILE__, __LINE__, true);
    2891            2 :         return _r;
    2892              :       }
    2893            0 : next_after_fail922:;
    2894              :     }
    2895              :   return NULL_TREE;
    2896              : }
    2897              : 
    2898              : tree
    2899            0 : generic_simplify_537 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2900              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2901              :  const enum tree_code ARG_UNUSED (minmax),
    2902              :  const enum tree_code ARG_UNUSED (maxmin))
    2903              : {
    2904            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2905            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail945;
    2906            0 :   {
    2907            0 :     tree res_op0;
    2908            0 :     {
    2909            0 :       tree _o1[2], _r1;
    2910            0 :       _o1[0] = captures[1];
    2911            0 :       _o1[1] = captures[3];
    2912            0 :       _r1 = fold_build2_loc (loc, maxmin, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    2913            0 :       res_op0 = _r1;
    2914              :     }
    2915            0 :     tree _r;
    2916            0 :     _r = fold_build1_loc (loc, BIT_NOT_EXPR, type, res_op0);
    2917            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 742, __FILE__, __LINE__, true);
    2918              :     return _r;
    2919              :   }
    2920            0 : next_after_fail945:;
    2921            0 :   return NULL_TREE;
    2922              : }
    2923              : 
    2924              : tree
    2925            0 : generic_simplify_542 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2926              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree *ARG_UNUSED (captures),
    2927              :  const combined_fn ARG_UNUSED (minmax))
    2928              : {
    2929            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2930            0 :   if (real_isnan (TREE_REAL_CST_PTR (captures[1]))
    2931            0 :  && (!HONOR_SNANS (captures[1]) || !TREE_REAL_CST (captures[1]).signalling)
    2932            0 :  && !tree_expr_maybe_signaling_nan_p (captures[0])
    2933              : )
    2934              :     {
    2935            0 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail950;
    2936            0 :       {
    2937            0 :         tree _r;
    2938            0 :         _r = captures[0];
    2939            0 :         if (TREE_SIDE_EFFECTS (captures[1]))
    2940            0 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    2941            0 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 747, __FILE__, __LINE__, true);
    2942            0 :         return _r;
    2943              :       }
    2944            0 : next_after_fail950:;
    2945              :     }
    2946              :   return NULL_TREE;
    2947              : }
    2948              : 
    2949              : tree
    2950            0 : generic_simplify_551 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    2951              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures),
    2952              :  const combined_fn ARG_UNUSED (cond_op))
    2953              : {
    2954            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    2955            0 :   {
    2956            0 :  tree op_type = TREE_TYPE (captures[5]);
    2957            0 :       if (inverse_conditions_p (captures[0], captures[2])
    2958            0 :  && element_precision (type) == element_precision (op_type)
    2959              : )
    2960              :         {
    2961            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail959;
    2962            0 :           {
    2963            0 :             tree res_op0;
    2964            0 :             {
    2965            0 :               tree _o1[4], _r1;
    2966            0 :               _o1[0] = captures[2];
    2967            0 :               _o1[1] = captures[3];
    2968            0 :               _o1[2] = captures[4];
    2969            0 :               {
    2970            0 :                 tree _o2[1], _r2;
    2971            0 :                 _o2[0] = captures[1];
    2972            0 :                 if (TREE_TYPE (_o2[0]) != op_type)
    2973              :                   {
    2974            0 :                     _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, op_type, _o2[0]);
    2975              :                   }
    2976              :                 else
    2977              :                   _r2 = _o2[0];
    2978            0 :                 _o1[3] = _r2;
    2979              :               }
    2980            0 :               _r1 = maybe_build_call_expr_loc (loc, cond_op, TREE_TYPE (_o1[1]), 4, _o1[0], _o1[1], _o1[2], _o1[3]);
    2981            0 :               if (!_r1)
    2982            0 :                 goto next_after_fail959;
    2983            0 :               res_op0 = _r1;
    2984              :             }
    2985            0 :             tree _r;
    2986            0 :             _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
    2987            0 :             if (TREE_SIDE_EFFECTS (captures[0]))
    2988            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    2989            0 :             if (TREE_SIDE_EFFECTS (captures[5]))
    2990            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[5]), _r);
    2991            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 751, __FILE__, __LINE__, true);
    2992            0 :             return _r;
    2993              :           }
    2994              : next_after_fail959:;
    2995              :         }
    2996              :   }
    2997              :   return NULL_TREE;
    2998              : }
    2999              : 
    3000              : tree
    3001         5786 : generic_simplify_562 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3002              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures))
    3003              : {
    3004         5786 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3005        11572 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    3006         5786 :  && TYPE_MAX_VALUE (TREE_TYPE (captures[1]))
    3007         5786 :  && types_match (TREE_TYPE (captures[1]), TREE_TYPE (TREE_TYPE (captures[0])))
    3008         8082 :  && int_fits_type_p (captures[2], TREE_TYPE (captures[1]))
    3009              : )
    3010              :     {
    3011         1904 :       if (TYPE_UNSIGNED (TREE_TYPE (captures[1]))
    3012              : )
    3013              :         {
    3014          929 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail971;
    3015          929 :           {
    3016          929 :             tree res_op0;
    3017          929 :             {
    3018          929 :               tree _o1[2], _r1;
    3019          929 :               _o1[0] = captures[1];
    3020          929 :               {
    3021          929 :                 tree _o2[2], _r2;
    3022          929 :                 _o2[0] =  TYPE_MAX_VALUE (TREE_TYPE (captures[1]));
    3023          929 :                 _o2[1] = captures[2];
    3024          929 :                 _r2 = fold_build2_loc (loc, TRUNC_DIV_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    3025          929 :                 if (EXPR_P (_r2))
    3026            0 :                   goto next_after_fail971;
    3027          929 :                 _o1[1] = _r2;
    3028              :               }
    3029          929 :               _r1 = fold_build2_loc (loc, GT_EXPR, boolean_type_node, _o1[0], _o1[1]);
    3030          929 :               res_op0 = _r1;
    3031              :             }
    3032          929 :             tree _r;
    3033          929 :             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3034          929 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 763, __FILE__, __LINE__, true);
    3035          929 :             return _r;
    3036              :           }
    3037              : next_after_fail971:;
    3038              :         }
    3039              :       else
    3040              :         {
    3041          975 :           if (TYPE_MIN_VALUE (TREE_TYPE (captures[1]))
    3042              : )
    3043              :             {
    3044          975 :               if (!TYPE_UNSIGNED (TREE_TYPE (captures[2])) && integer_minus_onep (captures[2])
    3045              : )
    3046              :                 {
    3047           56 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail972;
    3048           56 :                   {
    3049           56 :                     tree res_op0;
    3050           56 :                     {
    3051           56 :                       tree _o1[2], _r1;
    3052           56 :                       _o1[0] = captures[1];
    3053           56 :                       _o1[1] =  TYPE_MIN_VALUE (TREE_TYPE (captures[1]));
    3054           56 :                       _r1 = fold_build2_loc (loc, EQ_EXPR, boolean_type_node, _o1[0], _o1[1]);
    3055           56 :                       res_op0 = _r1;
    3056              :                     }
    3057           56 :                     tree _r;
    3058           56 :                     _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3059           56 :                     if (TREE_SIDE_EFFECTS (captures[2]))
    3060            0 :                       _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    3061           56 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 764, __FILE__, __LINE__, true);
    3062           56 :                     return _r;
    3063              :                   }
    3064            0 : next_after_fail972:;
    3065              :                 }
    3066              :               else
    3067              :                 {
    3068          919 :                   {
    3069          919 :  tree div = fold_convert (TREE_TYPE (captures[1]), captures[2]);
    3070         1838 :  tree lo = int_const_binop (TRUNC_DIV_EXPR,
    3071          919 :  TYPE_MIN_VALUE (TREE_TYPE (captures[1])), div);
    3072         1838 :  tree hi = int_const_binop (TRUNC_DIV_EXPR,
    3073          919 :  TYPE_MAX_VALUE (TREE_TYPE (captures[1])), div);
    3074          919 :  tree etype = range_check_type (TREE_TYPE (captures[1]));
    3075          919 :  if (etype)
    3076              :  {
    3077          919 :  if (wi::neg_p (wi::to_wide (div)))
    3078           88 :  std::swap (lo, hi);
    3079          919 :  lo = fold_convert (etype, lo);
    3080          919 :  hi = fold_convert (etype, hi);
    3081          919 :  hi = int_const_binop (MINUS_EXPR, hi, lo);
    3082              :  }
    3083          919 :                       if (etype
    3084              : )
    3085              :                         {
    3086          919 :                           if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail973;
    3087          919 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail973;
    3088          919 :                           {
    3089          919 :                             tree res_op0;
    3090          919 :                             {
    3091          919 :                               tree _o1[2], _r1;
    3092          919 :                               {
    3093          919 :                                 tree _o2[2], _r2;
    3094          919 :                                 {
    3095          919 :                                   tree _o3[1], _r3;
    3096          919 :                                   _o3[0] = captures[1];
    3097          919 :                                   if (TREE_TYPE (_o3[0]) != etype)
    3098              :                                     {
    3099          919 :                                       _r3 = fold_build1_loc (loc, NOP_EXPR, etype, _o3[0]);
    3100              :                                     }
    3101              :                                   else
    3102              :                                     _r3 = _o3[0];
    3103          919 :                                   _o2[0] = _r3;
    3104              :                                 }
    3105          919 :                                 _o2[1] =  lo;
    3106          919 :                                 _r2 = fold_build2_loc (loc, MINUS_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    3107          919 :                                 _o1[0] = _r2;
    3108              :                               }
    3109          919 :                               _o1[1] =  hi;
    3110          919 :                               _r1 = fold_build2_loc (loc, GT_EXPR, boolean_type_node, _o1[0], _o1[1]);
    3111          919 :                               res_op0 = _r1;
    3112              :                             }
    3113          919 :                             tree _r;
    3114          919 :                             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3115          919 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 765, __FILE__, __LINE__, true);
    3116          919 :                             return _r;
    3117              :                           }
    3118              : next_after_fail973:;
    3119              :                         }
    3120              :                   }
    3121              :                 }
    3122              :             }
    3123              :         }
    3124              :     }
    3125              :   return NULL_TREE;
    3126              : }
    3127              : 
    3128              : tree
    3129            0 : generic_simplify_602 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3130              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree *ARG_UNUSED (captures))
    3131              : {
    3132            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3133            0 :   if (canonicalize_math_after_vectorization_p ()
    3134              : )
    3135              :     {
    3136              :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1013;
    3137              :       {
    3138              :         tree res_op0;
    3139              :         res_op0 = captures[0];
    3140              :         tree res_op1;
    3141              :         res_op1 = captures[1];
    3142              :         tree res_op2;
    3143              :         res_op2 = captures[2];
    3144              :         tree _r;
    3145              :         _r = maybe_build_call_expr_loc (loc, CFN_FMS, type, 3, res_op0, res_op1, res_op2);
    3146              :         if (!_r)
    3147              :           goto next_after_fail1013;
    3148              :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 805, __FILE__, __LINE__, true);
    3149              :         return _r;
    3150              :       }
    3151            0 : next_after_fail1013:;
    3152              :     }
    3153            0 :   return NULL_TREE;
    3154              : }
    3155              : 
    3156              : tree
    3157            0 : generic_simplify_611 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3158              :  tree ARG_UNUSED (_p0), tree ARG_UNUSED (_p1), tree ARG_UNUSED (_p2), tree ARG_UNUSED (_p3), tree ARG_UNUSED (_p4), tree *ARG_UNUSED (captures))
    3159              : {
    3160            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3161            0 :   if (canonicalize_math_after_vectorization_p ()
    3162              : )
    3163              :     {
    3164              :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1022;
    3165              :       {
    3166              :         tree res_op0;
    3167              :         res_op0 = captures[0];
    3168              :         tree res_op1;
    3169              :         res_op1 = captures[1];
    3170              :         tree res_op2;
    3171              :         res_op2 = captures[2];
    3172              :         tree res_op3;
    3173              :         res_op3 = captures[3];
    3174              :         tree res_op4;
    3175              :         res_op4 = captures[4];
    3176              :         tree _r;
    3177              :         _r = maybe_build_call_expr_loc (loc, CFN_COND_FMA, type, 5, res_op0, res_op1, res_op2, res_op3, res_op4);
    3178              :         if (!_r)
    3179              :           goto next_after_fail1022;
    3180              :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 814, __FILE__, __LINE__, true);
    3181              :         return _r;
    3182              :       }
    3183            0 : next_after_fail1022:;
    3184              :     }
    3185            0 :   return NULL_TREE;
    3186              : }
    3187              : 
    3188              : tree
    3189            0 : generic_simplify_622 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3190              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3191              :  const combined_fn ARG_UNUSED (PARITY))
    3192              : {
    3193            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3194            0 :   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1034;
    3195            0 :   {
    3196            0 :     tree res_op0;
    3197            0 :     res_op0 = captures[0];
    3198            0 :     tree _r;
    3199            0 :     _r = maybe_build_call_expr_loc (loc, PARITY, type, 1, res_op0);
    3200            0 :     if (!_r)
    3201            0 :       goto next_after_fail1034;
    3202            0 :     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 821, __FILE__, __LINE__, true);
    3203              :     return _r;
    3204              :   }
    3205              : next_after_fail1034:;
    3206              :   return NULL_TREE;
    3207              : }
    3208              : 
    3209              : tree
    3210            0 : generic_simplify_626 (location_t ARG_UNUSED (loc), const tree ARG_UNUSED (type),
    3211              :  tree ARG_UNUSED (_p0), tree *ARG_UNUSED (captures),
    3212              :  const enum tree_code ARG_UNUSED (rot),
    3213              :  const combined_fn ARG_UNUSED (parity))
    3214              : {
    3215            0 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3216            0 :   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0]))
    3217            0 :  && INTEGRAL_TYPE_P (TREE_TYPE (captures[1]))
    3218            0 :  && (
    3219              : 
    3220            0 :  || !TREE_SIDE_EFFECTS (captures[3]))
    3221            0 :  && TYPE_PRECISION (TREE_TYPE (captures[0]))
    3222            0 :  >= TYPE_PRECISION (TREE_TYPE (captures[1]))
    3223              : )
    3224              :     {
    3225            0 :       {
    3226            0 :  tree type0 = TREE_TYPE (captures[0]);
    3227            0 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1038;
    3228            0 :           {
    3229            0 :             tree res_op0;
    3230            0 :             {
    3231            0 :               tree _o1[1], _r1;
    3232            0 :               _o1[0] = captures[2];
    3233            0 :               if (TREE_TYPE (_o1[0]) != type0)
    3234              :                 {
    3235            0 :                   _r1 = fold_build1_loc (loc, NOP_EXPR, type0, _o1[0]);
    3236              :                 }
    3237              :               else
    3238              :                 _r1 = _o1[0];
    3239            0 :               res_op0 = _r1;
    3240              :             }
    3241            0 :             tree _r;
    3242            0 :             _r = maybe_build_call_expr_loc (loc, parity, type, 1, res_op0);
    3243            0 :             if (!_r)
    3244            0 :               goto next_after_fail1038;
    3245            0 :             if (TREE_SIDE_EFFECTS (captures[3]))
    3246            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
    3247            0 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 823, __FILE__, __LINE__, true);
    3248            0 :             return _r;
    3249              :           }
    3250              : next_after_fail1038:;
    3251              :       }
    3252              :     }
    3253              :   return NULL_TREE;
    3254              : }
    3255              : 
    3256              : tree
    3257      6600030 : generic_simplify_FLOAT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0)
    3258              : {
    3259      6600030 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3260      6600030 :   switch (TREE_CODE (_p0))
    3261              :     {
    3262       563885 :     CASE_CONVERT:
    3263       563885 :       {
    3264       563885 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3265       563885 :         switch (TREE_CODE (_q20))
    3266              :           {
    3267            0 :           case LT_EXPR:
    3268            0 :             {
    3269            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3270            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3271            0 :               {
    3272            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    3273            0 :                 tree res = generic_simplify_523 (loc, type, _p0, captures, LT_EXPR);
    3274            0 :                 if (res) return res;
    3275              :               }
    3276            0 :               break;
    3277              :             }
    3278            0 :           case LE_EXPR:
    3279            0 :             {
    3280            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3281            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3282            0 :               {
    3283            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    3284            0 :                 tree res = generic_simplify_523 (loc, type, _p0, captures, LE_EXPR);
    3285            0 :                 if (res) return res;
    3286              :               }
    3287            0 :               break;
    3288              :             }
    3289            0 :           case EQ_EXPR:
    3290            0 :             {
    3291            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3292            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3293            0 :               {
    3294            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    3295            0 :                 tree res = generic_simplify_523 (loc, type, _p0, captures, EQ_EXPR);
    3296            0 :                 if (res) return res;
    3297              :               }
    3298            0 :               break;
    3299              :             }
    3300            0 :           case NE_EXPR:
    3301            0 :             {
    3302            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3303            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3304            0 :               {
    3305            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    3306            0 :                 tree res = generic_simplify_523 (loc, type, _p0, captures, NE_EXPR);
    3307            0 :                 if (res) return res;
    3308              :               }
    3309            0 :               break;
    3310              :             }
    3311            0 :           case GE_EXPR:
    3312            0 :             {
    3313            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3314            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3315            0 :               {
    3316            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    3317            0 :                 tree res = generic_simplify_523 (loc, type, _p0, captures, GE_EXPR);
    3318            0 :                 if (res) return res;
    3319              :               }
    3320            0 :               break;
    3321              :             }
    3322            0 :           case GT_EXPR:
    3323            0 :             {
    3324            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3325            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3326            0 :               {
    3327            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    3328            0 :                 tree res = generic_simplify_523 (loc, type, _p0, captures, GT_EXPR);
    3329            0 :                 if (res) return res;
    3330              :               }
    3331            0 :               break;
    3332              :             }
    3333            0 :           case UNORDERED_EXPR:
    3334            0 :             {
    3335            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3336            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3337            0 :               {
    3338            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    3339            0 :                 tree res = generic_simplify_523 (loc, type, _p0, captures, UNORDERED_EXPR);
    3340            0 :                 if (res) return res;
    3341              :               }
    3342            0 :               break;
    3343              :             }
    3344            0 :           case ORDERED_EXPR:
    3345            0 :             {
    3346            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3347            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3348            0 :               {
    3349            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    3350            0 :                 tree res = generic_simplify_523 (loc, type, _p0, captures, ORDERED_EXPR);
    3351            0 :                 if (res) return res;
    3352              :               }
    3353            0 :               break;
    3354              :             }
    3355            0 :           case UNLT_EXPR:
    3356            0 :             {
    3357            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3358            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3359            0 :               {
    3360            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    3361            0 :                 tree res = generic_simplify_523 (loc, type, _p0, captures, UNLT_EXPR);
    3362            0 :                 if (res) return res;
    3363              :               }
    3364            0 :               break;
    3365              :             }
    3366            0 :           case UNLE_EXPR:
    3367            0 :             {
    3368            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3369            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3370            0 :               {
    3371            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    3372            0 :                 tree res = generic_simplify_523 (loc, type, _p0, captures, UNLE_EXPR);
    3373            0 :                 if (res) return res;
    3374              :               }
    3375            0 :               break;
    3376              :             }
    3377            0 :           case UNGT_EXPR:
    3378            0 :             {
    3379            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3380            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3381            0 :               {
    3382            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    3383            0 :                 tree res = generic_simplify_523 (loc, type, _p0, captures, UNGT_EXPR);
    3384            0 :                 if (res) return res;
    3385              :               }
    3386            0 :               break;
    3387              :             }
    3388            0 :           case UNGE_EXPR:
    3389            0 :             {
    3390            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3391            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3392            0 :               {
    3393            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    3394            0 :                 tree res = generic_simplify_523 (loc, type, _p0, captures, UNGE_EXPR);
    3395            0 :                 if (res) return res;
    3396              :               }
    3397            0 :               break;
    3398              :             }
    3399            0 :           case UNEQ_EXPR:
    3400            0 :             {
    3401            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3402            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3403            0 :               {
    3404            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    3405            0 :                 tree res = generic_simplify_523 (loc, type, _p0, captures, UNEQ_EXPR);
    3406            0 :                 if (res) return res;
    3407              :               }
    3408            0 :               break;
    3409              :             }
    3410            0 :           case LTGT_EXPR:
    3411            0 :             {
    3412            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3413            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3414            0 :               {
    3415            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31 };
    3416            0 :                 tree res = generic_simplify_523 (loc, type, _p0, captures, LTGT_EXPR);
    3417            0 :                 if (res) return res;
    3418              :               }
    3419            0 :               break;
    3420              :             }
    3421              :           default:;
    3422              :           }
    3423              :         break;
    3424              :       }
    3425      6600030 :     default:;
    3426              :     }
    3427      6600030 :   {
    3428      6600030 :     tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    3429     13200060 :     if ((
    3430              : 
    3431              :  && useless_type_conversion_p (type, TREE_TYPE (captures[0])))
    3432              :  || (
    3433              : 1
    3434      6600030 :  && type == TREE_TYPE (captures[0]))
    3435              : )
    3436              :       {
    3437            0 :         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1099;
    3438            0 :         {
    3439            0 :           tree _r;
    3440            0 :           _r = captures[0];
    3441            0 :           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 839, __FILE__, __LINE__, true);
    3442            0 :           return _r;
    3443              :         }
    3444            0 : next_after_fail1099:;
    3445              :       }
    3446              :   }
    3447      6600030 :   switch (TREE_CODE (_p0))
    3448              :     {
    3449       563885 :     CASE_CONVERT:
    3450       563885 :       {
    3451       563885 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3452       563885 :         {
    3453       563885 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
    3454       563885 :           {
    3455       563885 :  tree inside_type = TREE_TYPE (captures[1]);
    3456       563885 :  tree inter_type = TREE_TYPE (captures[0]);
    3457       563885 :  int inside_int = INTEGRAL_TYPE_P (inside_type);
    3458       563885 :  int inside_ptr = POINTER_TYPE_P (inside_type);
    3459       563885 :  int inside_float = FLOAT_TYPE_P (inside_type);
    3460       563885 :  int inside_vec = VECTOR_TYPE_P (inside_type);
    3461       563885 :  unsigned int inside_prec = element_precision (inside_type);
    3462       563885 :  int inside_unsignedp = TYPE_UNSIGNED (inside_type);
    3463       563885 :  int inter_int = INTEGRAL_TYPE_P (inter_type);
    3464       563885 :  int inter_ptr = POINTER_TYPE_P (inter_type);
    3465       563885 :  int inter_float = FLOAT_TYPE_P (inter_type);
    3466       563885 :  int inter_vec = VECTOR_TYPE_P (inter_type);
    3467       563885 :  unsigned int inter_prec = element_precision (inter_type);
    3468       563885 :  int inter_unsignedp = TYPE_UNSIGNED (inter_type);
    3469       563885 :  int final_int = INTEGRAL_TYPE_P (type);
    3470       563885 :  int final_ptr = POINTER_TYPE_P (type);
    3471       563885 :  int final_float = FLOAT_TYPE_P (type);
    3472       563885 :  int final_vec = VECTOR_TYPE_P (type);
    3473       563885 :  unsigned int final_prec = element_precision (type);
    3474       563885 :  int final_unsignedp = TYPE_UNSIGNED (type);
    3475       563885 :               if (((
    3476              : 
    3477              :  && useless_type_conversion_p (type, inside_type))
    3478              :  || (
    3479              : 1
    3480       563885 :  && TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (inside_type)))
    3481            0 :  && (((inter_int || inter_ptr) && final_int)
    3482            0 :  || (inter_float && final_float))
    3483       563885 :  && inter_prec >= final_prec
    3484              : )
    3485              :                 {
    3486            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1100;
    3487            0 :                   {
    3488            0 :                     tree res_op0;
    3489            0 :                     res_op0 = captures[1];
    3490            0 :                     tree _r;
    3491            0 :                     _r = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
    3492            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 840, __FILE__, __LINE__, true);
    3493            0 :                     return _r;
    3494              :                   }
    3495            0 : next_after_fail1100:;
    3496              :                 }
    3497              :               else
    3498              :                 {
    3499       563885 :                   if (((inter_int && inside_int) || (inter_float && inside_float))
    3500       563879 :  && (final_int || final_float)
    3501       563879 :  && inter_prec >= inside_prec
    3502       562884 :  && (inter_float || inter_unsignedp == inside_unsignedp)
    3503              : )
    3504              :                     {
    3505       560497 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1101;
    3506       560497 :                       {
    3507       560497 :                         tree res_op0;
    3508       560497 :                         res_op0 = captures[1];
    3509       560497 :                         tree _r;
    3510       560497 :                         _r = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
    3511       560497 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 841, __FILE__, __LINE__, true);
    3512       560497 :                         return _r;
    3513              :                       }
    3514            0 : next_after_fail1101:;
    3515            0 :                     }
    3516              :                   else
    3517              :                     {
    3518         3388 :                       if (inside_int && inter_int && final_int
    3519            0 :  && ((inside_prec < inter_prec && inter_prec < final_prec
    3520            0 :  && inside_unsignedp && !inter_unsignedp)
    3521            0 :  || final_prec == inter_prec
    3522            0 :  || (inside_prec < inter_prec && inter_prec > final_prec
    3523            0 :  && !inside_unsignedp && inter_unsignedp))
    3524              : )
    3525              :                         {
    3526            0 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1102;
    3527            0 :                           {
    3528            0 :                             tree res_op0;
    3529            0 :                             res_op0 = captures[1];
    3530            0 :                             tree _r;
    3531            0 :                             _r = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
    3532            0 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 842, __FILE__, __LINE__, true);
    3533            0 :                             return _r;
    3534              :                           }
    3535            0 : next_after_fail1102:;
    3536            0 :                         }
    3537              :                       else
    3538              :                         {
    3539         3388 :                           if (! inside_float && ! inter_float && ! final_float
    3540              :  && ! inside_vec && ! inter_vec && ! final_vec
    3541            0 :  && (inter_prec >= inside_prec || inter_prec >= final_prec)
    3542            0 :  && ! (inside_int && inter_int
    3543            0 :  && inter_unsignedp != inside_unsignedp
    3544            0 :  && inter_prec < final_prec)
    3545            0 :  && ((inter_unsignedp && inter_prec > inside_prec)
    3546            0 :  == (final_unsignedp && final_prec > inter_prec))
    3547            0 :  && ! (inside_ptr && inter_prec != final_prec)
    3548            0 :  && ! (final_ptr && inside_prec != inter_prec)
    3549              : )
    3550              :                             {
    3551            0 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1103;
    3552            0 :                               {
    3553            0 :                                 tree res_op0;
    3554            0 :                                 res_op0 = captures[1];
    3555            0 :                                 tree _r;
    3556            0 :                                 _r = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
    3557            0 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 843, __FILE__, __LINE__, true);
    3558            0 :                                 return _r;
    3559              :                               }
    3560            0 : next_after_fail1103:;
    3561            0 :                             }
    3562              :                           else
    3563              :                             {
    3564         3388 :                               if (inside_int && inter_int && final_int
    3565         3382 :  && final_prec <= inside_prec
    3566            0 :  && inter_prec >= inside_prec
    3567              : )
    3568              :                                 {
    3569            0 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1104;
    3570            0 :                                   {
    3571            0 :                                     tree res_op0;
    3572            0 :                                     res_op0 = captures[1];
    3573            0 :                                     tree _r;
    3574            0 :                                     _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3575            0 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 844, __FILE__, __LINE__, true);
    3576            0 :                                     return _r;
    3577              :                                   }
    3578            0 : next_after_fail1104:;
    3579            0 :                                 }
    3580              :                               else
    3581              :                                 {
    3582              :                                   if (0
    3583              :  && final_int && inter_int && inside_int
    3584              :  && final_prec >= inside_prec
    3585              :  && inside_prec > inter_prec
    3586              :  && inter_unsignedp
    3587              : )
    3588              :                                     {
    3589              :                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1105;
    3590              :                                       {
    3591              :                                         tree res_op0;
    3592              :                                         {
    3593              :                                           tree _o1[2], _r1;
    3594              :                                           _o1[0] = captures[1];
    3595              :                                           _o1[1] =  wide_int_to_tree
    3596              :  (inside_type,
    3597              :  wi::mask (inter_prec, false,
    3598              :  TYPE_PRECISION (inside_type)));
    3599              :                                           _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    3600              :                                           res_op0 = _r1;
    3601              :                                         }
    3602              :                                         tree _r;
    3603              :                                         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3604              :                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 845, __FILE__, __LINE__, true);
    3605              :                                         return _r;
    3606              :                                       }
    3607              : next_after_fail1105:;
    3608              :                                     }
    3609              :                                   else
    3610              :                                     {
    3611              :                                       if (0
    3612              :  && inside_int && inter_float && final_int &&
    3613              :  (unsigned) significand_size (TYPE_MODE (inter_type))
    3614              :  >= inside_prec - !inside_unsignedp
    3615              : )
    3616              :                                         {
    3617              :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1106;
    3618              :                                           {
    3619              :                                             tree res_op0;
    3620              :                                             res_op0 = captures[1];
    3621              :                                             tree _r;
    3622              :                                             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3623              :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 846, __FILE__, __LINE__, true);
    3624              :                                             return _r;
    3625              :                                           }
    3626              : next_after_fail1106:;
    3627              :                                         }
    3628              :                                     }
    3629              :                                 }
    3630              :                             }
    3631              :                         }
    3632              :                     }
    3633              :                 }
    3634              :           }
    3635              :         }
    3636         3388 :         break;
    3637              :       }
    3638            0 :     case FLOAT_EXPR:
    3639            0 :       {
    3640            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3641            0 :         {
    3642            0 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
    3643            0 :           {
    3644            0 :  tree inside_type = TREE_TYPE (captures[1]);
    3645            0 :  tree inter_type = TREE_TYPE (captures[0]);
    3646            0 :  int inside_int = INTEGRAL_TYPE_P (inside_type);
    3647            0 :  int inside_ptr = POINTER_TYPE_P (inside_type);
    3648            0 :  int inside_float = FLOAT_TYPE_P (inside_type);
    3649            0 :  int inside_vec = VECTOR_TYPE_P (inside_type);
    3650            0 :  unsigned int inside_prec = element_precision (inside_type);
    3651            0 :  int inside_unsignedp = TYPE_UNSIGNED (inside_type);
    3652            0 :  int inter_int = INTEGRAL_TYPE_P (inter_type);
    3653            0 :  int inter_ptr = POINTER_TYPE_P (inter_type);
    3654            0 :  int inter_float = FLOAT_TYPE_P (inter_type);
    3655            0 :  int inter_vec = VECTOR_TYPE_P (inter_type);
    3656            0 :  unsigned int inter_prec = element_precision (inter_type);
    3657            0 :  int inter_unsignedp = TYPE_UNSIGNED (inter_type);
    3658            0 :  int final_int = INTEGRAL_TYPE_P (type);
    3659            0 :  int final_ptr = POINTER_TYPE_P (type);
    3660            0 :  int final_float = FLOAT_TYPE_P (type);
    3661            0 :  int final_vec = VECTOR_TYPE_P (type);
    3662            0 :  unsigned int final_prec = element_precision (type);
    3663            0 :  int final_unsignedp = TYPE_UNSIGNED (type);
    3664            0 :               if (((
    3665              : 
    3666              :  && useless_type_conversion_p (type, inside_type))
    3667              :  || (
    3668              : 1
    3669            0 :  && TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (inside_type)))
    3670            0 :  && (((inter_int || inter_ptr) && final_int)
    3671            0 :  || (inter_float && final_float))
    3672            0 :  && inter_prec >= final_prec
    3673              : )
    3674              :                 {
    3675            0 :                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1107;
    3676            0 :                   {
    3677            0 :                     tree res_op0;
    3678            0 :                     res_op0 = captures[1];
    3679            0 :                     tree _r;
    3680            0 :                     _r = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
    3681            0 :                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 840, __FILE__, __LINE__, true);
    3682            0 :                     return _r;
    3683              :                   }
    3684            0 : next_after_fail1107:;
    3685              :                 }
    3686              :               else
    3687              :                 {
    3688            0 :                   if (((inter_int && inside_int) || (inter_float && inside_float))
    3689            0 :  && (final_int || final_float)
    3690            0 :  && inter_prec >= inside_prec
    3691            0 :  && (inter_float || inter_unsignedp == inside_unsignedp)
    3692              : )
    3693              :                     {
    3694            0 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1108;
    3695            0 :                       {
    3696            0 :                         tree res_op0;
    3697            0 :                         res_op0 = captures[1];
    3698            0 :                         tree _r;
    3699            0 :                         _r = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
    3700            0 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 841, __FILE__, __LINE__, true);
    3701            0 :                         return _r;
    3702              :                       }
    3703            0 : next_after_fail1108:;
    3704            0 :                     }
    3705              :                   else
    3706              :                     {
    3707            0 :                       if (inside_int && inter_int && final_int
    3708            0 :  && ((inside_prec < inter_prec && inter_prec < final_prec
    3709            0 :  && inside_unsignedp && !inter_unsignedp)
    3710            0 :  || final_prec == inter_prec
    3711            0 :  || (inside_prec < inter_prec && inter_prec > final_prec
    3712            0 :  && !inside_unsignedp && inter_unsignedp))
    3713              : )
    3714              :                         {
    3715            0 :                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1109;
    3716            0 :                           {
    3717            0 :                             tree res_op0;
    3718            0 :                             res_op0 = captures[1];
    3719            0 :                             tree _r;
    3720            0 :                             _r = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
    3721            0 :                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 842, __FILE__, __LINE__, true);
    3722            0 :                             return _r;
    3723              :                           }
    3724            0 : next_after_fail1109:;
    3725            0 :                         }
    3726              :                       else
    3727              :                         {
    3728            0 :                           if (! inside_float && ! inter_float && ! final_float
    3729              :  && ! inside_vec && ! inter_vec && ! final_vec
    3730            0 :  && (inter_prec >= inside_prec || inter_prec >= final_prec)
    3731            0 :  && ! (inside_int && inter_int
    3732            0 :  && inter_unsignedp != inside_unsignedp
    3733            0 :  && inter_prec < final_prec)
    3734            0 :  && ((inter_unsignedp && inter_prec > inside_prec)
    3735            0 :  == (final_unsignedp && final_prec > inter_prec))
    3736            0 :  && ! (inside_ptr && inter_prec != final_prec)
    3737            0 :  && ! (final_ptr && inside_prec != inter_prec)
    3738              : )
    3739              :                             {
    3740            0 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1110;
    3741            0 :                               {
    3742            0 :                                 tree res_op0;
    3743            0 :                                 res_op0 = captures[1];
    3744            0 :                                 tree _r;
    3745            0 :                                 _r = fold_build1_loc (loc, FLOAT_EXPR, type, res_op0);
    3746            0 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 843, __FILE__, __LINE__, true);
    3747            0 :                                 return _r;
    3748              :                               }
    3749            0 : next_after_fail1110:;
    3750            0 :                             }
    3751              :                           else
    3752              :                             {
    3753            0 :                               if (inside_int && inter_int && final_int
    3754            0 :  && final_prec <= inside_prec
    3755            0 :  && inter_prec >= inside_prec
    3756              : )
    3757              :                                 {
    3758            0 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1111;
    3759            0 :                                   {
    3760            0 :                                     tree res_op0;
    3761            0 :                                     res_op0 = captures[1];
    3762            0 :                                     tree _r;
    3763            0 :                                     _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3764            0 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 844, __FILE__, __LINE__, true);
    3765            0 :                                     return _r;
    3766              :                                   }
    3767            0 : next_after_fail1111:;
    3768            0 :                                 }
    3769              :                               else
    3770              :                                 {
    3771              :                                   if (0
    3772              :  && final_int && inter_int && inside_int
    3773              :  && final_prec >= inside_prec
    3774              :  && inside_prec > inter_prec
    3775              :  && inter_unsignedp
    3776              : )
    3777              :                                     {
    3778              :                                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1112;
    3779              :                                       {
    3780              :                                         tree res_op0;
    3781              :                                         {
    3782              :                                           tree _o1[2], _r1;
    3783              :                                           _o1[0] = captures[1];
    3784              :                                           _o1[1] =  wide_int_to_tree
    3785              :  (inside_type,
    3786              :  wi::mask (inter_prec, false,
    3787              :  TYPE_PRECISION (inside_type)));
    3788              :                                           _r1 = fold_build2_loc (loc, BIT_AND_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    3789              :                                           res_op0 = _r1;
    3790              :                                         }
    3791              :                                         tree _r;
    3792              :                                         _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3793              :                                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 845, __FILE__, __LINE__, true);
    3794              :                                         return _r;
    3795              :                                       }
    3796              : next_after_fail1112:;
    3797              :                                     }
    3798              :                                   else
    3799              :                                     {
    3800              :                                       if (0
    3801              :  && inside_int && inter_float && final_int &&
    3802              :  (unsigned) significand_size (TYPE_MODE (inter_type))
    3803              :  >= inside_prec - !inside_unsignedp
    3804              : )
    3805              :                                         {
    3806              :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1113;
    3807              :                                           {
    3808              :                                             tree res_op0;
    3809              :                                             res_op0 = captures[1];
    3810              :                                             tree _r;
    3811              :                                             _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    3812              :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 846, __FILE__, __LINE__, true);
    3813              :                                             return _r;
    3814              :                                           }
    3815              : next_after_fail1113:;
    3816              :                                         }
    3817              :                                     }
    3818              :                                 }
    3819              :                             }
    3820              :                         }
    3821              :                     }
    3822              :                 }
    3823              :           }
    3824              :         }
    3825            0 :         break;
    3826              :       }
    3827              :     default:;
    3828              :     }
    3829              :   return NULL_TREE;
    3830              : }
    3831              : 
    3832              : tree
    3833     72655966 : generic_simplify_MULT_EXPR (location_t ARG_UNUSED (loc), enum tree_code ARG_UNUSED (code), const tree ARG_UNUSED (type), tree _p0, tree _p1)
    3834              : {
    3835     72655966 :   const bool debug_dump = dump_file && (dump_flags & TDF_FOLDING);
    3836     72655966 :   switch (TREE_CODE (_p1))
    3837              :     {
    3838          443 :     case VECTOR_CST:
    3839          443 :       {
    3840          443 :         {
    3841          443 :           tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    3842          443 :           if (initializer_each_zero_or_onep (captures[1])
    3843            9 :  && !HONOR_SNANS (type)
    3844          452 :  && !HONOR_SIGNED_ZEROS (type)
    3845              : )
    3846              :             {
    3847            5 :               {
    3848            5 :  tree itype = FLOAT_TYPE_P (type) ? unsigned_type_for (type) : type;
    3849            5 :                   if (itype
    3850            5 :  && (!VECTOR_MODE_P (TYPE_MODE (type))
    3851            5 :  || (VECTOR_MODE_P (TYPE_MODE (itype))
    3852            5 :  && optab_handler (and_optab,
    3853            5 :  TYPE_MODE (itype)) != CODE_FOR_nothing))
    3854              : )
    3855              :                     {
    3856            5 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1402;
    3857            5 :                       {
    3858            5 :                         tree res_op0;
    3859            5 :                         {
    3860            5 :                           tree _o1[2], _r1;
    3861            5 :                           {
    3862            5 :                             tree _o2[1], _r2;
    3863            5 :                             _o2[0] = captures[0];
    3864            5 :                             if (TREE_TYPE (_o2[0]) != itype)
    3865              :                               {
    3866            1 :                                 _r2 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, itype, _o2[0]);
    3867              :                               }
    3868              :                             else
    3869              :                               _r2 = _o2[0];
    3870            5 :                             _o1[0] = _r2;
    3871              :                           }
    3872            5 :                           {
    3873            5 :                             tree _o2[2], _r2;
    3874            5 :                             _o2[0] = captures[1];
    3875            5 :                             _o2[1] =  build_zero_cst (type);
    3876            5 :                             _r2 = fold_build2_loc (loc, NE_EXPR, itype, _o2[0], _o2[1]);
    3877            5 :                             _o1[1] = _r2;
    3878              :                           }
    3879            5 :                           _r1 = fold_build2_loc (loc, BIT_AND_EXPR, itype, _o1[0], _o1[1]);
    3880            5 :                           res_op0 = _r1;
    3881              :                         }
    3882            5 :                         tree _r;
    3883            5 :                         _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
    3884            5 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 965, __FILE__, __LINE__, true);
    3885            5 :                         return _r;
    3886              :                       }
    3887            0 : next_after_fail1402:;
    3888              :                     }
    3889              :               }
    3890              :             }
    3891              :         }
    3892          438 :         break;
    3893              :       }
    3894     72655961 :     default:;
    3895              :     }
    3896     72655961 : if (integer_zerop (_p1))
    3897              :   {
    3898        33466 :     {
    3899        33466 :       tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    3900        33466 :       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1403;
    3901        33466 :       {
    3902        33466 :         tree _r;
    3903        33466 :         _r = captures[1];
    3904        33466 :         if (TREE_SIDE_EFFECTS (captures[0]))
    3905         2459 :           _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    3906        33466 :         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 966, __FILE__, __LINE__, true);
    3907        33466 :         return _r;
    3908              :       }
    3909            0 : next_after_fail1403:;
    3910              :     }
    3911              :   }
    3912     72622495 : if (real_zerop (_p1))
    3913              :   {
    3914          426 :     {
    3915          426 :       tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    3916          426 :       if (!tree_expr_maybe_nan_p (captures[0])
    3917          218 :  && (!HONOR_NANS (type) || !tree_expr_maybe_infinite_p (captures[0]))
    3918          436 :  && (!HONOR_SIGNED_ZEROS (type) || tree_expr_nonnegative_p (captures[0]))
    3919              : )
    3920              :         {
    3921            4 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1404;
    3922            4 :           {
    3923            4 :             tree _r;
    3924            4 :             _r = captures[1];
    3925            4 :             if (TREE_SIDE_EFFECTS (captures[0]))
    3926            0 :               _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[0]), _r);
    3927            4 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 967, __FILE__, __LINE__, true);
    3928            4 :             return _r;
    3929              :           }
    3930            0 : next_after_fail1404:;
    3931              :         }
    3932              :     }
    3933              :   }
    3934     72622491 : if (real_onep (_p1))
    3935              :   {
    3936         1246 :     {
    3937         1246 :       tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    3938         1246 :       if (!tree_expr_maybe_signaling_nan_p (captures[0])
    3939         1246 :  && (!HONOR_SIGNED_ZEROS (type)
    3940         1125 :  || !COMPLEX_FLOAT_TYPE_P (type))
    3941              : )
    3942              :         {
    3943          763 :           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1405;
    3944          763 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1405;
    3945          763 :           {
    3946          763 :             tree res_op0;
    3947          763 :             res_op0 = captures[0];
    3948          763 :             tree _r;
    3949          763 :             _r = non_lvalue_loc (loc, res_op0);
    3950          763 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 968, __FILE__, __LINE__, true);
    3951          763 :             return _r;
    3952              :           }
    3953              : next_after_fail1405:;
    3954              :         }
    3955              :     }
    3956              :   }
    3957     72621728 : if (real_minus_onep (_p1))
    3958              :   {
    3959        43677 :     {
    3960        43677 :       tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    3961        43677 :       if (!tree_expr_maybe_signaling_nan_p (captures[0])
    3962        43677 :  && (!HONOR_SIGNED_ZEROS (type)
    3963        40769 :  || !COMPLEX_FLOAT_TYPE_P (type))
    3964              : )
    3965              :         {
    3966        43293 :           if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1406;
    3967        43293 :           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1406;
    3968        43293 :           {
    3969        43293 :             tree res_op0;
    3970        43293 :             res_op0 = captures[0];
    3971        43293 :             tree _r;
    3972        43293 :             _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    3973        43293 :             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 969, __FILE__, __LINE__, true);
    3974        43293 :             return _r;
    3975              :           }
    3976              : next_after_fail1406:;
    3977              :         }
    3978              :     }
    3979              :   }
    3980     72578435 :   switch (TREE_CODE (_p0))
    3981              :     {
    3982        60549 :     case BIT_AND_EXPR:
    3983        60549 :       {
    3984        60549 :         tree _q20 = TREE_OPERAND (_p0, 0);
    3985        60549 :         tree _q21 = TREE_OPERAND (_p0, 1);
    3986        60549 :         switch (TREE_CODE (_q20))
    3987              :           {
    3988          275 :           case RSHIFT_EXPR:
    3989          275 :             {
    3990          275 :               tree _q30 = TREE_OPERAND (_q20, 0);
    3991          275 :               tree _q31 = TREE_OPERAND (_q20, 1);
    3992          275 :               if (uniform_integer_cst_p (_q31))
    3993              :                 {
    3994           14 :                   if (uniform_integer_cst_p (_q21))
    3995              :                     {
    3996           14 :                       if (uniform_integer_cst_p (_p1))
    3997              :                         {
    3998           14 :                           {
    3999           14 :                             tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q21, _p1 };
    4000           14 :                             {
    4001           14 :  tree rshift_cst = uniform_integer_cst_p (captures[1]);
    4002           14 :  tree bit_and_cst = uniform_integer_cst_p (captures[2]);
    4003           14 :  tree mult_cst = uniform_integer_cst_p (captures[3]);
    4004           14 :                                 if (VECTOR_TYPE_P (type)
    4005            0 :  && tree_fits_uhwi_p (rshift_cst)
    4006            0 :  && tree_fits_uhwi_p (mult_cst)
    4007            0 :  && tree_fits_uhwi_p (bit_and_cst)
    4008              : )
    4009              :                                   {
    4010            0 :                                     {
    4011            0 :  HOST_WIDE_INT vec_elem_bits = vector_element_bits (type);
    4012            0 :  poly_int64 vec_nelts = TYPE_VECTOR_SUBPARTS (type);
    4013            0 :  poly_int64 vec_bits = vec_elem_bits * vec_nelts;
    4014            0 :  unsigned HOST_WIDE_INT cmp_bits_i, bit_and_i, mult_i;
    4015            0 :  unsigned HOST_WIDE_INT target_mult_i, target_bit_and_i;
    4016            0 :  cmp_bits_i = tree_to_uhwi (rshift_cst) + 1;
    4017            0 :  mult_i = tree_to_uhwi (mult_cst);
    4018            0 :  target_mult_i = (HOST_WIDE_INT_1U << cmp_bits_i) - 1;
    4019            0 :  bit_and_i = tree_to_uhwi (bit_and_cst);
    4020            0 :  target_bit_and_i = 0;
    4021            0 :  for (unsigned i = 0; i < vec_elem_bits / cmp_bits_i; i++)
    4022            0 :  target_bit_and_i = (target_bit_and_i << cmp_bits_i) | 1U;
    4023            0 :                                         if ((exact_log2 (cmp_bits_i)) >= 0
    4024            0 :  && cmp_bits_i < HOST_BITS_PER_WIDE_INT
    4025            0 :  && multiple_p (vec_bits, cmp_bits_i)
    4026            0 :  && vec_elem_bits <= HOST_BITS_PER_WIDE_INT
    4027            0 :  && target_mult_i == mult_i
    4028            0 :  && target_bit_and_i == bit_and_i
    4029              : )
    4030              :                                           {
    4031            0 :                                             {
    4032            0 :  tree cmp_type = build_nonstandard_integer_type (cmp_bits_i, 0);
    4033            0 :  poly_int64 vector_type_nelts = exact_div (vec_bits, cmp_bits_i);
    4034            0 :  tree vec_cmp_type = build_vector_type (cmp_type, vector_type_nelts);
    4035            0 :  tree vec_truth_type = truth_type_for (vec_cmp_type);
    4036            0 :  tree zeros = build_zero_cst (vec_cmp_type);
    4037            0 :  tree ones = build_all_ones_cst (vec_cmp_type);
    4038            0 :                                                 if (expand_vec_cmp_expr_p (vec_cmp_type, vec_truth_type, LT_EXPR)
    4039            0 :  && expand_vec_cond_expr_p (vec_cmp_type, vec_truth_type)
    4040              : )
    4041              :                                                   {
    4042            0 :                                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1407;
    4043            0 :                                                     {
    4044            0 :                                                       tree res_op0;
    4045            0 :                                                       {
    4046            0 :                                                         tree _o1[3], _r1;
    4047            0 :                                                         {
    4048            0 :                                                           tree _o2[2], _r2;
    4049            0 :                                                           {
    4050            0 :                                                             tree _o3[1], _r3;
    4051            0 :                                                             _o3[0] = captures[0];
    4052            0 :                                                             if (TREE_TYPE (_o3[0]) != vec_cmp_type)
    4053              :                                                               {
    4054            0 :                                                                 _r3 = fold_build1_loc (loc, VIEW_CONVERT_EXPR, vec_cmp_type, _o3[0]);
    4055              :                                                               }
    4056              :                                                             else
    4057              :                                                               _r3 = _o3[0];
    4058            0 :                                                             _o2[0] = _r3;
    4059              :                                                           }
    4060            0 :                                                           _o2[1] =  zeros;
    4061            0 :                                                           _r2 = fold_build2_loc (loc, LT_EXPR, vec_truth_type, _o2[0], _o2[1]);
    4062            0 :                                                           _o1[0] = _r2;
    4063              :                                                         }
    4064            0 :                                                         _o1[1] =  ones;
    4065            0 :                                                         _o1[2] =  zeros;
    4066            0 :                                                         _r1 = fold_build3_loc (loc, VEC_COND_EXPR, TREE_TYPE (_o1[1]), _o1[0], _o1[1], _o1[2]);
    4067            0 :                                                         res_op0 = _r1;
    4068              :                                                       }
    4069            0 :                                                       tree _r;
    4070            0 :                                                       _r = fold_build1_loc (loc, VIEW_CONVERT_EXPR, type, res_op0);
    4071            0 :                                                       if (TREE_SIDE_EFFECTS (captures[1]))
    4072            0 :                                                         _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[1]), _r);
    4073            0 :                                                       if (TREE_SIDE_EFFECTS (captures[2]))
    4074            0 :                                                         _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[2]), _r);
    4075            0 :                                                       if (TREE_SIDE_EFFECTS (captures[3]))
    4076            0 :                                                         _r = build2_loc (loc, COMPOUND_EXPR, type, fold_ignored_result (captures[3]), _r);
    4077            0 :                                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 970, __FILE__, __LINE__, true);
    4078            0 :                                                       return _r;
    4079              :                                                     }
    4080            0 : next_after_fail1407:;
    4081              :                                                   }
    4082              :                                             }
    4083              :                                           }
    4084              :                                     }
    4085              :                                   }
    4086              :                             }
    4087              :                           }
    4088              :                         }
    4089              :                     }
    4090              :                 }
    4091              :               break;
    4092              :             }
    4093              :           default:;
    4094              :           }
    4095              :         break;
    4096              :       }
    4097     72578435 :     default:;
    4098              :     }
    4099     72578435 :   switch (TREE_CODE (_p1))
    4100              :     {
    4101         3118 :     case COND_EXPR:
    4102         3118 :       {
    4103         3118 :         tree _q30 = TREE_OPERAND (_p1, 0);
    4104         3118 :         tree _q31 = TREE_OPERAND (_p1, 1);
    4105         3118 :         tree _q32 = TREE_OPERAND (_p1, 2);
    4106         3118 :         switch (TREE_CODE (_q30))
    4107              :           {
    4108          530 :           case GT_EXPR:
    4109          530 :             {
    4110          530 :               tree _q40 = TREE_OPERAND (_q30, 0);
    4111          530 :               tree _q41 = TREE_OPERAND (_q30, 1);
    4112          530 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    4113              :                 {
    4114            0 :                   if (real_zerop (_q41))
    4115              :                     {
    4116            0 :                       if (real_onep (_q31))
    4117              :                         {
    4118            0 :                           if (real_minus_onep (_q32))
    4119              :                             {
    4120            0 :                               {
    4121            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    4122            0 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4123              : )
    4124              :                                   {
    4125            0 :                                     if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1408;
    4126            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1408;
    4127            0 :                                     {
    4128            0 :                                       tree res_op0;
    4129            0 :                                       {
    4130            0 :                                         tree _o1[1], _r1;
    4131            0 :                                         _o1[0] = captures[0];
    4132            0 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4133            0 :                                         res_op0 = _r1;
    4134              :                                       }
    4135            0 :                                       tree _r;
    4136            0 :                                       _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4137            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 971, __FILE__, __LINE__, true);
    4138            0 :                                       return _r;
    4139              :                                     }
    4140            0 : next_after_fail1408:;
    4141              :                                   }
    4142              :                               }
    4143              :                             }
    4144              :                         }
    4145              :                     }
    4146              :                 }
    4147              :               break;
    4148              :             }
    4149           20 :           case GE_EXPR:
    4150           20 :             {
    4151           20 :               tree _q40 = TREE_OPERAND (_q30, 0);
    4152           20 :               tree _q41 = TREE_OPERAND (_q30, 1);
    4153           20 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    4154              :                 {
    4155            0 :                   if (real_zerop (_q41))
    4156              :                     {
    4157            0 :                       if (real_onep (_q31))
    4158              :                         {
    4159            0 :                           if (real_minus_onep (_q32))
    4160              :                             {
    4161            0 :                               {
    4162            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    4163            0 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4164              : )
    4165              :                                   {
    4166            0 :                                     if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1409;
    4167            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1409;
    4168            0 :                                     {
    4169            0 :                                       tree res_op0;
    4170            0 :                                       {
    4171            0 :                                         tree _o1[1], _r1;
    4172            0 :                                         _o1[0] = captures[0];
    4173            0 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4174            0 :                                         res_op0 = _r1;
    4175              :                                       }
    4176            0 :                                       tree _r;
    4177            0 :                                       _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4178            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 971, __FILE__, __LINE__, true);
    4179            0 :                                       return _r;
    4180              :                                     }
    4181            0 : next_after_fail1409:;
    4182              :                                   }
    4183              :                               }
    4184              :                             }
    4185              :                         }
    4186              :                     }
    4187              :                 }
    4188              :               break;
    4189              :             }
    4190           51 :           case LT_EXPR:
    4191           51 :             {
    4192           51 :               tree _q40 = TREE_OPERAND (_q30, 0);
    4193           51 :               tree _q41 = TREE_OPERAND (_q30, 1);
    4194           51 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    4195              :                 {
    4196            0 :                   if (real_zerop (_q41))
    4197              :                     {
    4198            0 :                       if (real_onep (_q31))
    4199              :                         {
    4200            0 :                           if (real_minus_onep (_q32))
    4201              :                             {
    4202            0 :                               {
    4203            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    4204            0 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4205              : )
    4206              :                                   {
    4207            0 :                                     if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1410;
    4208            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1410;
    4209            0 :                                     {
    4210            0 :                                       tree res_op0;
    4211            0 :                                       {
    4212            0 :                                         tree _o1[1], _r1;
    4213            0 :                                         _o1[0] = captures[0];
    4214            0 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4215            0 :                                         res_op0 = _r1;
    4216              :                                       }
    4217            0 :                                       tree _r;
    4218            0 :                                       _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    4219            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 971, __FILE__, __LINE__, true);
    4220            0 :                                       return _r;
    4221              :                                     }
    4222            0 : next_after_fail1410:;
    4223              :                                   }
    4224              :                               }
    4225              :                             }
    4226              :                         }
    4227              :                     }
    4228              :                 }
    4229              :               break;
    4230              :             }
    4231            5 :           case LE_EXPR:
    4232            5 :             {
    4233            5 :               tree _q40 = TREE_OPERAND (_q30, 0);
    4234            5 :               tree _q41 = TREE_OPERAND (_q30, 1);
    4235            5 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    4236              :                 {
    4237            0 :                   if (real_zerop (_q41))
    4238              :                     {
    4239            0 :                       if (real_onep (_q31))
    4240              :                         {
    4241            0 :                           if (real_minus_onep (_q32))
    4242              :                             {
    4243            0 :                               {
    4244            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    4245            0 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4246              : )
    4247              :                                   {
    4248            0 :                                     if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1411;
    4249            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1411;
    4250            0 :                                     {
    4251            0 :                                       tree res_op0;
    4252            0 :                                       {
    4253            0 :                                         tree _o1[1], _r1;
    4254            0 :                                         _o1[0] = captures[0];
    4255            0 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4256            0 :                                         res_op0 = _r1;
    4257              :                                       }
    4258            0 :                                       tree _r;
    4259            0 :                                       _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    4260            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 971, __FILE__, __LINE__, true);
    4261            0 :                                       return _r;
    4262              :                                     }
    4263            0 : next_after_fail1411:;
    4264              :                                   }
    4265              :                               }
    4266              :                             }
    4267              :                         }
    4268              :                     }
    4269              :                 }
    4270              :               break;
    4271              :             }
    4272              :           default:;
    4273              :           }
    4274              :         break;
    4275              :       }
    4276     72578435 :     default:;
    4277              :     }
    4278     72578435 :   switch (TREE_CODE (_p0))
    4279              :     {
    4280        87428 :     case COND_EXPR:
    4281        87428 :       {
    4282        87428 :         tree _q20 = TREE_OPERAND (_p0, 0);
    4283        87428 :         tree _q21 = TREE_OPERAND (_p0, 1);
    4284        87428 :         tree _q22 = TREE_OPERAND (_p0, 2);
    4285        87428 :         switch (TREE_CODE (_q20))
    4286              :           {
    4287        22083 :           case GT_EXPR:
    4288        22083 :             {
    4289        22083 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4290        22083 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4291        22083 :               if (real_zerop (_q31))
    4292              :                 {
    4293            4 :                   if (real_onep (_q21))
    4294              :                     {
    4295            3 :                       if (real_minus_onep (_q22))
    4296              :                         {
    4297            1 :                           if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    4298              :                             {
    4299            1 :                               {
    4300            1 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
    4301            1 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4302              : )
    4303              :                                   {
    4304            1 :                                     if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1412;
    4305            1 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1412;
    4306            1 :                                     {
    4307            1 :                                       tree res_op0;
    4308            1 :                                       {
    4309            1 :                                         tree _o1[1], _r1;
    4310            1 :                                         _o1[0] = captures[0];
    4311            1 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4312            1 :                                         res_op0 = _r1;
    4313              :                                       }
    4314            1 :                                       tree _r;
    4315            1 :                                       _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4316            1 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 971, __FILE__, __LINE__, true);
    4317            1 :                                       return _r;
    4318              :                                     }
    4319            0 : next_after_fail1412:;
    4320              :                                   }
    4321              :                               }
    4322              :                             }
    4323              :                         }
    4324              :                     }
    4325            3 :                   if (real_minus_onep (_q21))
    4326              :                     {
    4327            1 :                       if (real_onep (_q22))
    4328              :                         {
    4329            1 :                           if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    4330              :                             {
    4331            1 :                               {
    4332            1 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q22 };
    4333            1 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4334              : )
    4335              :                                   {
    4336            1 :                                     if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1413;
    4337            1 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1413;
    4338            1 :                                     {
    4339            1 :                                       tree res_op0;
    4340            1 :                                       {
    4341            1 :                                         tree _o1[1], _r1;
    4342            1 :                                         _o1[0] = captures[0];
    4343            1 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4344            1 :                                         res_op0 = _r1;
    4345              :                                       }
    4346            1 :                                       tree _r;
    4347            1 :                                       _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    4348            1 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 972, __FILE__, __LINE__, true);
    4349            1 :                                       return _r;
    4350              :                                     }
    4351            0 : next_after_fail1413:;
    4352              :                                   }
    4353              :                               }
    4354              :                             }
    4355              :                         }
    4356              :                     }
    4357              :                 }
    4358              :               break;
    4359              :             }
    4360         8256 :           case GE_EXPR:
    4361         8256 :             {
    4362         8256 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4363         8256 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4364         8256 :               if (real_zerop (_q31))
    4365              :                 {
    4366            2 :                   if (real_onep (_q21))
    4367              :                     {
    4368            1 :                       if (real_minus_onep (_q22))
    4369              :                         {
    4370            1 :                           if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    4371              :                             {
    4372            1 :                               {
    4373            1 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
    4374            1 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4375              : )
    4376              :                                   {
    4377            1 :                                     if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1414;
    4378            1 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1414;
    4379            1 :                                     {
    4380            1 :                                       tree res_op0;
    4381            1 :                                       {
    4382            1 :                                         tree _o1[1], _r1;
    4383            1 :                                         _o1[0] = captures[0];
    4384            1 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4385            1 :                                         res_op0 = _r1;
    4386              :                                       }
    4387            1 :                                       tree _r;
    4388            1 :                                       _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4389            1 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 971, __FILE__, __LINE__, true);
    4390            1 :                                       return _r;
    4391              :                                     }
    4392            0 : next_after_fail1414:;
    4393              :                                   }
    4394              :                               }
    4395              :                             }
    4396              :                         }
    4397              :                     }
    4398            1 :                   if (real_minus_onep (_q21))
    4399              :                     {
    4400            1 :                       if (real_onep (_q22))
    4401              :                         {
    4402            1 :                           if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    4403              :                             {
    4404            1 :                               {
    4405            1 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q22 };
    4406            1 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4407              : )
    4408              :                                   {
    4409            1 :                                     if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1415;
    4410            1 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1415;
    4411            1 :                                     {
    4412            1 :                                       tree res_op0;
    4413            1 :                                       {
    4414            1 :                                         tree _o1[1], _r1;
    4415            1 :                                         _o1[0] = captures[0];
    4416            1 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4417            1 :                                         res_op0 = _r1;
    4418              :                                       }
    4419            1 :                                       tree _r;
    4420            1 :                                       _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    4421            1 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 972, __FILE__, __LINE__, true);
    4422            1 :                                       return _r;
    4423              :                                     }
    4424            0 : next_after_fail1415:;
    4425              :                                   }
    4426              :                               }
    4427              :                             }
    4428              :                         }
    4429              :                     }
    4430              :                 }
    4431              :               break;
    4432              :             }
    4433         7714 :           case LT_EXPR:
    4434         7714 :             {
    4435         7714 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4436         7714 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4437         7714 :               if (real_zerop (_q31))
    4438              :                 {
    4439            2 :                   if (real_onep (_q21))
    4440              :                     {
    4441            1 :                       if (real_minus_onep (_q22))
    4442              :                         {
    4443            1 :                           if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    4444              :                             {
    4445            1 :                               {
    4446            1 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
    4447            1 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4448              : )
    4449              :                                   {
    4450            1 :                                     if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1416;
    4451            1 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1416;
    4452            1 :                                     {
    4453            1 :                                       tree res_op0;
    4454            1 :                                       {
    4455            1 :                                         tree _o1[1], _r1;
    4456            1 :                                         _o1[0] = captures[0];
    4457            1 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4458            1 :                                         res_op0 = _r1;
    4459              :                                       }
    4460            1 :                                       tree _r;
    4461            1 :                                       _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    4462            1 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 971, __FILE__, __LINE__, true);
    4463            1 :                                       return _r;
    4464              :                                     }
    4465            0 : next_after_fail1416:;
    4466              :                                   }
    4467              :                               }
    4468              :                             }
    4469              :                         }
    4470              :                     }
    4471            1 :                   if (real_minus_onep (_q21))
    4472              :                     {
    4473            1 :                       if (real_onep (_q22))
    4474              :                         {
    4475            1 :                           if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    4476              :                             {
    4477            1 :                               {
    4478            1 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q22 };
    4479            1 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4480              : )
    4481              :                                   {
    4482            1 :                                     if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1417;
    4483            1 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1417;
    4484            1 :                                     {
    4485            1 :                                       tree res_op0;
    4486            1 :                                       {
    4487            1 :                                         tree _o1[1], _r1;
    4488            1 :                                         _o1[0] = captures[0];
    4489            1 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4490            1 :                                         res_op0 = _r1;
    4491              :                                       }
    4492            1 :                                       tree _r;
    4493            1 :                                       _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4494            1 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 972, __FILE__, __LINE__, true);
    4495            1 :                                       return _r;
    4496              :                                     }
    4497            0 : next_after_fail1417:;
    4498              :                                   }
    4499              :                               }
    4500              :                             }
    4501              :                         }
    4502              :                     }
    4503              :                 }
    4504              :               break;
    4505              :             }
    4506         2972 :           case LE_EXPR:
    4507         2972 :             {
    4508         2972 :               tree _q30 = TREE_OPERAND (_q20, 0);
    4509         2972 :               tree _q31 = TREE_OPERAND (_q20, 1);
    4510         2972 :               if (real_zerop (_q31))
    4511              :                 {
    4512            2 :                   if (real_onep (_q21))
    4513              :                     {
    4514            1 :                       if (real_minus_onep (_q22))
    4515              :                         {
    4516            1 :                           if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    4517              :                             {
    4518            1 :                               {
    4519            1 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
    4520            1 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4521              : )
    4522              :                                   {
    4523            1 :                                     if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1418;
    4524            1 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1418;
    4525            1 :                                     {
    4526            1 :                                       tree res_op0;
    4527            1 :                                       {
    4528            1 :                                         tree _o1[1], _r1;
    4529            1 :                                         _o1[0] = captures[0];
    4530            1 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4531            1 :                                         res_op0 = _r1;
    4532              :                                       }
    4533            1 :                                       tree _r;
    4534            1 :                                       _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    4535            1 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 971, __FILE__, __LINE__, true);
    4536            1 :                                       return _r;
    4537              :                                     }
    4538            0 : next_after_fail1418:;
    4539              :                                   }
    4540              :                               }
    4541              :                             }
    4542              :                         }
    4543              :                     }
    4544            1 :                   if (real_minus_onep (_q21))
    4545              :                     {
    4546            1 :                       if (real_onep (_q22))
    4547              :                         {
    4548            1 :                           if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    4549              :                             {
    4550            1 :                               {
    4551            1 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q22 };
    4552            1 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4553              : )
    4554              :                                   {
    4555            1 :                                     if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1419;
    4556            1 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1419;
    4557            1 :                                     {
    4558            1 :                                       tree res_op0;
    4559            1 :                                       {
    4560            1 :                                         tree _o1[1], _r1;
    4561            1 :                                         _o1[0] = captures[0];
    4562            1 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4563            1 :                                         res_op0 = _r1;
    4564              :                                       }
    4565            1 :                                       tree _r;
    4566            1 :                                       _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4567            1 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 972, __FILE__, __LINE__, true);
    4568            1 :                                       return _r;
    4569              :                                     }
    4570            0 : next_after_fail1419:;
    4571              :                                   }
    4572              :                               }
    4573              :                             }
    4574              :                         }
    4575              :                     }
    4576              :                 }
    4577              :               break;
    4578              :             }
    4579              :           default:;
    4580              :           }
    4581              :         break;
    4582              :       }
    4583     72578427 :     default:;
    4584              :     }
    4585     72578427 :   switch (TREE_CODE (_p1))
    4586              :     {
    4587         3118 :     case COND_EXPR:
    4588         3118 :       {
    4589         3118 :         tree _q30 = TREE_OPERAND (_p1, 0);
    4590         3118 :         tree _q31 = TREE_OPERAND (_p1, 1);
    4591         3118 :         tree _q32 = TREE_OPERAND (_p1, 2);
    4592         3118 :         switch (TREE_CODE (_q30))
    4593              :           {
    4594          530 :           case GT_EXPR:
    4595          530 :             {
    4596          530 :               tree _q40 = TREE_OPERAND (_q30, 0);
    4597          530 :               tree _q41 = TREE_OPERAND (_q30, 1);
    4598          530 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    4599              :                 {
    4600            0 :                   if (real_zerop (_q41))
    4601              :                     {
    4602            0 :                       if (real_minus_onep (_q31))
    4603              :                         {
    4604            0 :                           if (real_onep (_q32))
    4605              :                             {
    4606            0 :                               {
    4607            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q32 };
    4608            0 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4609              : )
    4610              :                                   {
    4611            0 :                                     if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1420;
    4612            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1420;
    4613            0 :                                     {
    4614            0 :                                       tree res_op0;
    4615            0 :                                       {
    4616            0 :                                         tree _o1[1], _r1;
    4617            0 :                                         _o1[0] = captures[0];
    4618            0 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4619            0 :                                         res_op0 = _r1;
    4620              :                                       }
    4621            0 :                                       tree _r;
    4622            0 :                                       _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    4623            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 972, __FILE__, __LINE__, true);
    4624            0 :                                       return _r;
    4625              :                                     }
    4626            0 : next_after_fail1420:;
    4627              :                                   }
    4628              :                               }
    4629              :                             }
    4630              :                         }
    4631              :                     }
    4632              :                 }
    4633              :               break;
    4634              :             }
    4635           20 :           case GE_EXPR:
    4636           20 :             {
    4637           20 :               tree _q40 = TREE_OPERAND (_q30, 0);
    4638           20 :               tree _q41 = TREE_OPERAND (_q30, 1);
    4639           20 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    4640              :                 {
    4641            0 :                   if (real_zerop (_q41))
    4642              :                     {
    4643            0 :                       if (real_minus_onep (_q31))
    4644              :                         {
    4645            0 :                           if (real_onep (_q32))
    4646              :                             {
    4647            0 :                               {
    4648            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q32 };
    4649            0 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4650              : )
    4651              :                                   {
    4652            0 :                                     if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1421;
    4653            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1421;
    4654            0 :                                     {
    4655            0 :                                       tree res_op0;
    4656            0 :                                       {
    4657            0 :                                         tree _o1[1], _r1;
    4658            0 :                                         _o1[0] = captures[0];
    4659            0 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4660            0 :                                         res_op0 = _r1;
    4661              :                                       }
    4662            0 :                                       tree _r;
    4663            0 :                                       _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    4664            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 972, __FILE__, __LINE__, true);
    4665            0 :                                       return _r;
    4666              :                                     }
    4667            0 : next_after_fail1421:;
    4668              :                                   }
    4669              :                               }
    4670              :                             }
    4671              :                         }
    4672              :                     }
    4673              :                 }
    4674              :               break;
    4675              :             }
    4676           51 :           case LT_EXPR:
    4677           51 :             {
    4678           51 :               tree _q40 = TREE_OPERAND (_q30, 0);
    4679           51 :               tree _q41 = TREE_OPERAND (_q30, 1);
    4680           51 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    4681              :                 {
    4682            0 :                   if (real_zerop (_q41))
    4683              :                     {
    4684            0 :                       if (real_minus_onep (_q31))
    4685              :                         {
    4686            0 :                           if (real_onep (_q32))
    4687              :                             {
    4688            0 :                               {
    4689            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q32 };
    4690            0 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4691              : )
    4692              :                                   {
    4693            0 :                                     if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1422;
    4694            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1422;
    4695            0 :                                     {
    4696            0 :                                       tree res_op0;
    4697            0 :                                       {
    4698            0 :                                         tree _o1[1], _r1;
    4699            0 :                                         _o1[0] = captures[0];
    4700            0 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4701            0 :                                         res_op0 = _r1;
    4702              :                                       }
    4703            0 :                                       tree _r;
    4704            0 :                                       _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4705            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 972, __FILE__, __LINE__, true);
    4706            0 :                                       return _r;
    4707              :                                     }
    4708            0 : next_after_fail1422:;
    4709              :                                   }
    4710              :                               }
    4711              :                             }
    4712              :                         }
    4713              :                     }
    4714              :                 }
    4715              :               break;
    4716              :             }
    4717            5 :           case LE_EXPR:
    4718            5 :             {
    4719            5 :               tree _q40 = TREE_OPERAND (_q30, 0);
    4720            5 :               tree _q41 = TREE_OPERAND (_q30, 1);
    4721            5 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    4722              :                 {
    4723            0 :                   if (real_zerop (_q41))
    4724              :                     {
    4725            0 :                       if (real_minus_onep (_q31))
    4726              :                         {
    4727            0 :                           if (real_onep (_q32))
    4728              :                             {
    4729            0 :                               {
    4730            0 :                                 tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q32 };
    4731            0 :                                 if (!tree_expr_maybe_nan_p (captures[0]) && !HONOR_SIGNED_ZEROS (type)
    4732              : )
    4733              :                                   {
    4734            0 :                                     if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1423;
    4735            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1423;
    4736            0 :                                     {
    4737            0 :                                       tree res_op0;
    4738            0 :                                       {
    4739            0 :                                         tree _o1[1], _r1;
    4740            0 :                                         _o1[0] = captures[0];
    4741            0 :                                         _r1 = fold_build1_loc (loc, ABS_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    4742            0 :                                         res_op0 = _r1;
    4743              :                                       }
    4744            0 :                                       tree _r;
    4745            0 :                                       _r = fold_build1_loc (loc, NOP_EXPR, type, res_op0);
    4746            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 972, __FILE__, __LINE__, true);
    4747            0 :                                       return _r;
    4748              :                                     }
    4749            0 : next_after_fail1423:;
    4750              :                                   }
    4751              :                               }
    4752              :                             }
    4753              :                         }
    4754              :                     }
    4755              :                 }
    4756              :               break;
    4757              :             }
    4758              :           default:;
    4759              :           }
    4760              :         break;
    4761              :       }
    4762       897094 :     case CALL_EXPR:
    4763       897094 :       switch (get_call_combined_fn (_p1))
    4764              :         {
    4765           20 :         case CFN_BUILT_IN_COPYSIGNF16:
    4766           20 :           if (call_expr_nargs (_p1) == 2)
    4767              :     {
    4768           20 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    4769           20 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    4770           20 :               if (real_onep (_q30))
    4771              :                 {
    4772           20 :                   if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    4773              :                     {
    4774            0 :                       {
    4775            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4776            0 :                         tree res = generic_simplify_180 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF16);
    4777            0 :                         if (res) return res;
    4778              :                       }
    4779              :                     }
    4780              :                 }
    4781              :             }
    4782              :           break;
    4783            0 :         case CFN_BUILT_IN_COPYSIGNF32:
    4784            0 :           if (call_expr_nargs (_p1) == 2)
    4785              :     {
    4786            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    4787            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    4788            0 :               if (real_onep (_q30))
    4789              :                 {
    4790            0 :                   if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    4791              :                     {
    4792            0 :                       {
    4793            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4794            0 :                         tree res = generic_simplify_180 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF32);
    4795            0 :                         if (res) return res;
    4796              :                       }
    4797              :                     }
    4798              :                 }
    4799              :             }
    4800              :           break;
    4801            0 :         case CFN_BUILT_IN_COPYSIGNF64:
    4802            0 :           if (call_expr_nargs (_p1) == 2)
    4803              :     {
    4804            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    4805            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    4806            0 :               if (real_onep (_q30))
    4807              :                 {
    4808            0 :                   if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    4809              :                     {
    4810            0 :                       {
    4811            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4812            0 :                         tree res = generic_simplify_180 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF64);
    4813            0 :                         if (res) return res;
    4814              :                       }
    4815              :                     }
    4816              :                 }
    4817              :             }
    4818              :           break;
    4819            0 :         case CFN_BUILT_IN_COPYSIGNF128X:
    4820            0 :           if (call_expr_nargs (_p1) == 2)
    4821              :     {
    4822            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    4823            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    4824            0 :               if (real_onep (_q30))
    4825              :                 {
    4826            0 :                   if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    4827              :                     {
    4828            0 :                       {
    4829            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4830            0 :                         tree res = generic_simplify_180 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF128X);
    4831            0 :                         if (res) return res;
    4832              :                       }
    4833              :                     }
    4834              :                 }
    4835              :             }
    4836              :           break;
    4837            0 :         case CFN_BUILT_IN_COPYSIGNF128:
    4838            0 :           if (call_expr_nargs (_p1) == 2)
    4839              :     {
    4840            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    4841            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    4842            0 :               if (real_onep (_q30))
    4843              :                 {
    4844            0 :                   if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    4845              :                     {
    4846            0 :                       {
    4847            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4848            0 :                         tree res = generic_simplify_180 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF128);
    4849            0 :                         if (res) return res;
    4850              :                       }
    4851              :                     }
    4852              :                 }
    4853              :             }
    4854              :           break;
    4855            0 :         case CFN_BUILT_IN_COPYSIGNF32X:
    4856            0 :           if (call_expr_nargs (_p1) == 2)
    4857              :     {
    4858            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    4859            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    4860            0 :               if (real_onep (_q30))
    4861              :                 {
    4862            0 :                   if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    4863              :                     {
    4864            0 :                       {
    4865            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4866            0 :                         tree res = generic_simplify_180 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF32X);
    4867            0 :                         if (res) return res;
    4868              :                       }
    4869              :                     }
    4870              :                 }
    4871              :             }
    4872              :           break;
    4873            0 :         case CFN_BUILT_IN_COPYSIGNF64X:
    4874            0 :           if (call_expr_nargs (_p1) == 2)
    4875              :     {
    4876            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    4877            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    4878            0 :               if (real_onep (_q30))
    4879              :                 {
    4880            0 :                   if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    4881              :                     {
    4882            0 :                       {
    4883            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4884            0 :                         tree res = generic_simplify_180 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF64X);
    4885            0 :                         if (res) return res;
    4886              :                       }
    4887              :                     }
    4888              :                 }
    4889              :             }
    4890              :           break;
    4891           18 :         case CFN_BUILT_IN_COPYSIGN:
    4892           18 :           if (call_expr_nargs (_p1) == 2)
    4893              :     {
    4894           18 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    4895           18 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    4896           18 :               if (real_onep (_q30))
    4897              :                 {
    4898           14 :                   if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    4899              :                     {
    4900            0 :                       {
    4901            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4902            0 :                         tree res = generic_simplify_180 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGN);
    4903            0 :                         if (res) return res;
    4904              :                       }
    4905              :                     }
    4906              :                 }
    4907              :             }
    4908              :           break;
    4909           14 :         case CFN_BUILT_IN_COPYSIGNF:
    4910           14 :           if (call_expr_nargs (_p1) == 2)
    4911              :     {
    4912           14 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    4913           14 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    4914           14 :               if (real_onep (_q30))
    4915              :                 {
    4916           12 :                   if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    4917              :                     {
    4918            0 :                       {
    4919            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4920            0 :                         tree res = generic_simplify_180 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF);
    4921            0 :                         if (res) return res;
    4922              :                       }
    4923              :                     }
    4924              :                 }
    4925              :             }
    4926              :           break;
    4927            0 :         case CFN_BUILT_IN_COPYSIGNL:
    4928            0 :           if (call_expr_nargs (_p1) == 2)
    4929              :     {
    4930            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    4931            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    4932            0 :               if (real_onep (_q30))
    4933              :                 {
    4934            0 :                   if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    4935              :                     {
    4936            0 :                       {
    4937            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4938            0 :                         tree res = generic_simplify_180 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNL);
    4939            0 :                         if (res) return res;
    4940              :                       }
    4941              :                     }
    4942              :                 }
    4943              :             }
    4944              :           break;
    4945            0 :         case CFN_COPYSIGN:
    4946            0 :           if (call_expr_nargs (_p1) == 2)
    4947              :     {
    4948            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    4949            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    4950            0 :               if (real_onep (_q30))
    4951              :                 {
    4952            0 :                   if ((_q31 == _p0 && ! TREE_SIDE_EFFECTS (_q31)) || (operand_equal_p (_q31, _p0, 0) && types_match (_q31, _p0)))
    4953              :                     {
    4954            0 :                       {
    4955            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    4956            0 :                         tree res = generic_simplify_180 (loc, type, _p0, _p1, captures, CFN_COPYSIGN);
    4957            0 :                         if (res) return res;
    4958              :                       }
    4959              :                     }
    4960              :                 }
    4961              :             }
    4962              :           break;
    4963              :         default:;
    4964              :         }
    4965              :       break;
    4966     72578427 :     default:;
    4967              :     }
    4968     72578427 :   switch (TREE_CODE (_p0))
    4969              :     {
    4970      2746529 :     case CALL_EXPR:
    4971      2746529 :       switch (get_call_combined_fn (_p0))
    4972              :         {
    4973            1 :         case CFN_BUILT_IN_COPYSIGNF16:
    4974            1 :           if (call_expr_nargs (_p0) == 2)
    4975              :     {
    4976            1 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    4977            1 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    4978            1 :               if (real_onep (_q20))
    4979              :                 {
    4980            1 :                   if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    4981              :                     {
    4982            0 :                       {
    4983            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _q21 };
    4984            0 :                         tree res = generic_simplify_181 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF16);
    4985            0 :                         if (res) return res;
    4986              :                       }
    4987              :                     }
    4988            1 :                   switch (TREE_CODE (_q21))
    4989              :                     {
    4990            0 :                     case NEGATE_EXPR:
    4991            0 :                       {
    4992            0 :                         tree _q40 = TREE_OPERAND (_q21, 0);
    4993            0 :                         if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    4994              :                           {
    4995            0 :                             {
    4996            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
    4997            0 :                               tree res = generic_simplify_182 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF16);
    4998            0 :                               if (res) return res;
    4999              :                             }
    5000              :                           }
    5001              :                         break;
    5002              :                       }
    5003              :                     default:;
    5004              :                     }
    5005              :                 }
    5006              :             }
    5007              :           break;
    5008            0 :         case CFN_BUILT_IN_COPYSIGNF32:
    5009            0 :           if (call_expr_nargs (_p0) == 2)
    5010              :     {
    5011            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    5012            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    5013            0 :               if (real_onep (_q20))
    5014              :                 {
    5015            0 :                   if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5016              :                     {
    5017            0 :                       {
    5018            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _q21 };
    5019            0 :                         tree res = generic_simplify_181 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF32);
    5020            0 :                         if (res) return res;
    5021              :                       }
    5022              :                     }
    5023            0 :                   switch (TREE_CODE (_q21))
    5024              :                     {
    5025            0 :                     case NEGATE_EXPR:
    5026            0 :                       {
    5027            0 :                         tree _q40 = TREE_OPERAND (_q21, 0);
    5028            0 :                         if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    5029              :                           {
    5030            0 :                             {
    5031            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
    5032            0 :                               tree res = generic_simplify_182 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF32);
    5033            0 :                               if (res) return res;
    5034              :                             }
    5035              :                           }
    5036              :                         break;
    5037              :                       }
    5038              :                     default:;
    5039              :                     }
    5040              :                 }
    5041              :             }
    5042              :           break;
    5043            0 :         case CFN_BUILT_IN_COPYSIGNF64:
    5044            0 :           if (call_expr_nargs (_p0) == 2)
    5045              :     {
    5046            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    5047            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    5048            0 :               if (real_onep (_q20))
    5049              :                 {
    5050            0 :                   if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5051              :                     {
    5052            0 :                       {
    5053            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _q21 };
    5054            0 :                         tree res = generic_simplify_181 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF64);
    5055            0 :                         if (res) return res;
    5056              :                       }
    5057              :                     }
    5058            0 :                   switch (TREE_CODE (_q21))
    5059              :                     {
    5060            0 :                     case NEGATE_EXPR:
    5061            0 :                       {
    5062            0 :                         tree _q40 = TREE_OPERAND (_q21, 0);
    5063            0 :                         if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    5064              :                           {
    5065            0 :                             {
    5066            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
    5067            0 :                               tree res = generic_simplify_182 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF64);
    5068            0 :                               if (res) return res;
    5069              :                             }
    5070              :                           }
    5071              :                         break;
    5072              :                       }
    5073              :                     default:;
    5074              :                     }
    5075              :                 }
    5076              :             }
    5077              :           break;
    5078            0 :         case CFN_BUILT_IN_COPYSIGNF128X:
    5079            0 :           if (call_expr_nargs (_p0) == 2)
    5080              :     {
    5081            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    5082            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    5083            0 :               if (real_onep (_q20))
    5084              :                 {
    5085            0 :                   if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5086              :                     {
    5087            0 :                       {
    5088            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _q21 };
    5089            0 :                         tree res = generic_simplify_181 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF128X);
    5090            0 :                         if (res) return res;
    5091              :                       }
    5092              :                     }
    5093            0 :                   switch (TREE_CODE (_q21))
    5094              :                     {
    5095            0 :                     case NEGATE_EXPR:
    5096            0 :                       {
    5097            0 :                         tree _q40 = TREE_OPERAND (_q21, 0);
    5098            0 :                         if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    5099              :                           {
    5100            0 :                             {
    5101            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
    5102            0 :                               tree res = generic_simplify_182 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF128X);
    5103            0 :                               if (res) return res;
    5104              :                             }
    5105              :                           }
    5106              :                         break;
    5107              :                       }
    5108              :                     default:;
    5109              :                     }
    5110              :                 }
    5111              :             }
    5112              :           break;
    5113            8 :         case CFN_BUILT_IN_COPYSIGNF128:
    5114            8 :           if (call_expr_nargs (_p0) == 2)
    5115              :     {
    5116            8 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    5117            8 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    5118            8 :               if (real_onep (_q20))
    5119              :                 {
    5120            0 :                   if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5121              :                     {
    5122            0 :                       {
    5123            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _q21 };
    5124            0 :                         tree res = generic_simplify_181 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF128);
    5125            0 :                         if (res) return res;
    5126              :                       }
    5127              :                     }
    5128            0 :                   switch (TREE_CODE (_q21))
    5129              :                     {
    5130            0 :                     case NEGATE_EXPR:
    5131            0 :                       {
    5132            0 :                         tree _q40 = TREE_OPERAND (_q21, 0);
    5133            0 :                         if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    5134              :                           {
    5135            0 :                             {
    5136            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
    5137            0 :                               tree res = generic_simplify_182 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF128);
    5138            0 :                               if (res) return res;
    5139              :                             }
    5140              :                           }
    5141              :                         break;
    5142              :                       }
    5143              :                     default:;
    5144              :                     }
    5145              :                 }
    5146              :             }
    5147              :           break;
    5148            0 :         case CFN_BUILT_IN_COPYSIGNF32X:
    5149            0 :           if (call_expr_nargs (_p0) == 2)
    5150              :     {
    5151            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    5152            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    5153            0 :               if (real_onep (_q20))
    5154              :                 {
    5155            0 :                   if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5156              :                     {
    5157            0 :                       {
    5158            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _q21 };
    5159            0 :                         tree res = generic_simplify_181 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF32X);
    5160            0 :                         if (res) return res;
    5161              :                       }
    5162              :                     }
    5163            0 :                   switch (TREE_CODE (_q21))
    5164              :                     {
    5165            0 :                     case NEGATE_EXPR:
    5166            0 :                       {
    5167            0 :                         tree _q40 = TREE_OPERAND (_q21, 0);
    5168            0 :                         if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    5169              :                           {
    5170            0 :                             {
    5171            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
    5172            0 :                               tree res = generic_simplify_182 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF32X);
    5173            0 :                               if (res) return res;
    5174              :                             }
    5175              :                           }
    5176              :                         break;
    5177              :                       }
    5178              :                     default:;
    5179              :                     }
    5180              :                 }
    5181              :             }
    5182              :           break;
    5183            0 :         case CFN_BUILT_IN_COPYSIGNF64X:
    5184            0 :           if (call_expr_nargs (_p0) == 2)
    5185              :     {
    5186            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    5187            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    5188            0 :               if (real_onep (_q20))
    5189              :                 {
    5190            0 :                   if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5191              :                     {
    5192            0 :                       {
    5193            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _q21 };
    5194            0 :                         tree res = generic_simplify_181 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF64X);
    5195            0 :                         if (res) return res;
    5196              :                       }
    5197              :                     }
    5198            0 :                   switch (TREE_CODE (_q21))
    5199              :                     {
    5200            0 :                     case NEGATE_EXPR:
    5201            0 :                       {
    5202            0 :                         tree _q40 = TREE_OPERAND (_q21, 0);
    5203            0 :                         if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    5204              :                           {
    5205            0 :                             {
    5206            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
    5207            0 :                               tree res = generic_simplify_182 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF64X);
    5208            0 :                               if (res) return res;
    5209              :                             }
    5210              :                           }
    5211              :                         break;
    5212              :                       }
    5213              :                     default:;
    5214              :                     }
    5215              :                 }
    5216              :             }
    5217              :           break;
    5218           18 :         case CFN_BUILT_IN_COPYSIGN:
    5219           18 :           if (call_expr_nargs (_p0) == 2)
    5220              :     {
    5221           18 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    5222           18 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    5223           18 :               if (real_onep (_q20))
    5224              :                 {
    5225            3 :                   if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5226              :                     {
    5227            0 :                       {
    5228            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _q21 };
    5229            0 :                         tree res = generic_simplify_181 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGN);
    5230            0 :                         if (res) return res;
    5231              :                       }
    5232              :                     }
    5233            3 :                   switch (TREE_CODE (_q21))
    5234              :                     {
    5235            0 :                     case NEGATE_EXPR:
    5236            0 :                       {
    5237            0 :                         tree _q40 = TREE_OPERAND (_q21, 0);
    5238            0 :                         if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    5239              :                           {
    5240            0 :                             {
    5241            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
    5242            0 :                               tree res = generic_simplify_182 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGN);
    5243            0 :                               if (res) return res;
    5244              :                             }
    5245              :                           }
    5246              :                         break;
    5247              :                       }
    5248              :                     default:;
    5249              :                     }
    5250              :                 }
    5251              :             }
    5252              :           break;
    5253           36 :         case CFN_BUILT_IN_COPYSIGNF:
    5254           36 :           if (call_expr_nargs (_p0) == 2)
    5255              :     {
    5256           36 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    5257           36 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    5258           36 :               if (real_onep (_q20))
    5259              :                 {
    5260           12 :                   if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5261              :                     {
    5262            4 :                       {
    5263            4 :                         tree captures[1] ATTRIBUTE_UNUSED = { _q21 };
    5264            4 :                         tree res = generic_simplify_181 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF);
    5265            4 :                         if (res) return res;
    5266              :                       }
    5267              :                     }
    5268           12 :                   switch (TREE_CODE (_q21))
    5269              :                     {
    5270            0 :                     case NEGATE_EXPR:
    5271            0 :                       {
    5272            0 :                         tree _q40 = TREE_OPERAND (_q21, 0);
    5273            0 :                         if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    5274              :                           {
    5275            0 :                             {
    5276            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
    5277            0 :                               tree res = generic_simplify_182 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF);
    5278            0 :                               if (res) return res;
    5279              :                             }
    5280              :                           }
    5281              :                         break;
    5282              :                       }
    5283              :                     default:;
    5284              :                     }
    5285              :                 }
    5286              :             }
    5287              :           break;
    5288            8 :         case CFN_BUILT_IN_COPYSIGNL:
    5289            8 :           if (call_expr_nargs (_p0) == 2)
    5290              :     {
    5291            8 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    5292            8 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    5293            8 :               if (real_onep (_q20))
    5294              :                 {
    5295            0 :                   if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5296              :                     {
    5297            0 :                       {
    5298            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _q21 };
    5299            0 :                         tree res = generic_simplify_181 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNL);
    5300            0 :                         if (res) return res;
    5301              :                       }
    5302              :                     }
    5303            0 :                   switch (TREE_CODE (_q21))
    5304              :                     {
    5305            0 :                     case NEGATE_EXPR:
    5306            0 :                       {
    5307            0 :                         tree _q40 = TREE_OPERAND (_q21, 0);
    5308            0 :                         if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    5309              :                           {
    5310            0 :                             {
    5311            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
    5312            0 :                               tree res = generic_simplify_182 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNL);
    5313            0 :                               if (res) return res;
    5314              :                             }
    5315              :                           }
    5316              :                         break;
    5317              :                       }
    5318              :                     default:;
    5319              :                     }
    5320              :                 }
    5321              :             }
    5322              :           break;
    5323            0 :         case CFN_COPYSIGN:
    5324            0 :           if (call_expr_nargs (_p0) == 2)
    5325              :     {
    5326            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    5327            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    5328            0 :               if (real_onep (_q20))
    5329              :                 {
    5330            0 :                   if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5331              :                     {
    5332            0 :                       {
    5333            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _q21 };
    5334            0 :                         tree res = generic_simplify_181 (loc, type, _p0, _p1, captures, CFN_COPYSIGN);
    5335            0 :                         if (res) return res;
    5336              :                       }
    5337              :                     }
    5338            0 :                   switch (TREE_CODE (_q21))
    5339              :                     {
    5340            0 :                     case NEGATE_EXPR:
    5341            0 :                       {
    5342            0 :                         tree _q40 = TREE_OPERAND (_q21, 0);
    5343            0 :                         if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    5344              :                           {
    5345            0 :                             {
    5346            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
    5347            0 :                               tree res = generic_simplify_182 (loc, type, _p0, _p1, captures, CFN_COPYSIGN);
    5348            0 :                               if (res) return res;
    5349              :                             }
    5350              :                           }
    5351              :                         break;
    5352              :                       }
    5353              :                     default:;
    5354              :                     }
    5355              :                 }
    5356              :             }
    5357              :           break;
    5358              :         default:;
    5359              :         }
    5360              :       break;
    5361     72578427 :     default:;
    5362              :     }
    5363     72578427 :   switch (TREE_CODE (_p1))
    5364              :     {
    5365       897094 :     case CALL_EXPR:
    5366       897094 :       switch (get_call_combined_fn (_p1))
    5367              :         {
    5368           20 :         case CFN_BUILT_IN_COPYSIGNF16:
    5369           20 :           if (call_expr_nargs (_p1) == 2)
    5370              :     {
    5371           20 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    5372           20 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    5373           20 :               if (real_onep (_q30))
    5374              :                 {
    5375           20 :                   switch (TREE_CODE (_q31))
    5376              :                     {
    5377            0 :                     case NEGATE_EXPR:
    5378            0 :                       {
    5379            0 :                         tree _q50 = TREE_OPERAND (_q31, 0);
    5380            0 :                         if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    5381              :                           {
    5382            0 :                             {
    5383            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5384            0 :                               tree res = generic_simplify_183 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF16);
    5385            0 :                               if (res) return res;
    5386              :                             }
    5387              :                           }
    5388              :                         break;
    5389              :                       }
    5390              :                     default:;
    5391              :                     }
    5392              :                 }
    5393              :             }
    5394              :           break;
    5395            0 :         case CFN_BUILT_IN_COPYSIGNF32:
    5396            0 :           if (call_expr_nargs (_p1) == 2)
    5397              :     {
    5398            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    5399            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    5400            0 :               if (real_onep (_q30))
    5401              :                 {
    5402            0 :                   switch (TREE_CODE (_q31))
    5403              :                     {
    5404            0 :                     case NEGATE_EXPR:
    5405            0 :                       {
    5406            0 :                         tree _q50 = TREE_OPERAND (_q31, 0);
    5407            0 :                         if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    5408              :                           {
    5409            0 :                             {
    5410            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5411            0 :                               tree res = generic_simplify_183 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF32);
    5412            0 :                               if (res) return res;
    5413              :                             }
    5414              :                           }
    5415              :                         break;
    5416              :                       }
    5417              :                     default:;
    5418              :                     }
    5419              :                 }
    5420              :             }
    5421              :           break;
    5422            0 :         case CFN_BUILT_IN_COPYSIGNF64:
    5423            0 :           if (call_expr_nargs (_p1) == 2)
    5424              :     {
    5425            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    5426            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    5427            0 :               if (real_onep (_q30))
    5428              :                 {
    5429            0 :                   switch (TREE_CODE (_q31))
    5430              :                     {
    5431            0 :                     case NEGATE_EXPR:
    5432            0 :                       {
    5433            0 :                         tree _q50 = TREE_OPERAND (_q31, 0);
    5434            0 :                         if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    5435              :                           {
    5436            0 :                             {
    5437            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5438            0 :                               tree res = generic_simplify_183 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF64);
    5439            0 :                               if (res) return res;
    5440              :                             }
    5441              :                           }
    5442              :                         break;
    5443              :                       }
    5444              :                     default:;
    5445              :                     }
    5446              :                 }
    5447              :             }
    5448              :           break;
    5449            0 :         case CFN_BUILT_IN_COPYSIGNF128X:
    5450            0 :           if (call_expr_nargs (_p1) == 2)
    5451              :     {
    5452            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    5453            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    5454            0 :               if (real_onep (_q30))
    5455              :                 {
    5456            0 :                   switch (TREE_CODE (_q31))
    5457              :                     {
    5458            0 :                     case NEGATE_EXPR:
    5459            0 :                       {
    5460            0 :                         tree _q50 = TREE_OPERAND (_q31, 0);
    5461            0 :                         if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    5462              :                           {
    5463            0 :                             {
    5464            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5465            0 :                               tree res = generic_simplify_183 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF128X);
    5466            0 :                               if (res) return res;
    5467              :                             }
    5468              :                           }
    5469              :                         break;
    5470              :                       }
    5471              :                     default:;
    5472              :                     }
    5473              :                 }
    5474              :             }
    5475              :           break;
    5476            0 :         case CFN_BUILT_IN_COPYSIGNF128:
    5477            0 :           if (call_expr_nargs (_p1) == 2)
    5478              :     {
    5479            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    5480            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    5481            0 :               if (real_onep (_q30))
    5482              :                 {
    5483            0 :                   switch (TREE_CODE (_q31))
    5484              :                     {
    5485            0 :                     case NEGATE_EXPR:
    5486            0 :                       {
    5487            0 :                         tree _q50 = TREE_OPERAND (_q31, 0);
    5488            0 :                         if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    5489              :                           {
    5490            0 :                             {
    5491            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5492            0 :                               tree res = generic_simplify_183 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF128);
    5493            0 :                               if (res) return res;
    5494              :                             }
    5495              :                           }
    5496              :                         break;
    5497              :                       }
    5498              :                     default:;
    5499              :                     }
    5500              :                 }
    5501              :             }
    5502              :           break;
    5503            0 :         case CFN_BUILT_IN_COPYSIGNF32X:
    5504            0 :           if (call_expr_nargs (_p1) == 2)
    5505              :     {
    5506            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    5507            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    5508            0 :               if (real_onep (_q30))
    5509              :                 {
    5510            0 :                   switch (TREE_CODE (_q31))
    5511              :                     {
    5512            0 :                     case NEGATE_EXPR:
    5513            0 :                       {
    5514            0 :                         tree _q50 = TREE_OPERAND (_q31, 0);
    5515            0 :                         if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    5516              :                           {
    5517            0 :                             {
    5518            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5519            0 :                               tree res = generic_simplify_183 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF32X);
    5520            0 :                               if (res) return res;
    5521              :                             }
    5522              :                           }
    5523              :                         break;
    5524              :                       }
    5525              :                     default:;
    5526              :                     }
    5527              :                 }
    5528              :             }
    5529              :           break;
    5530            0 :         case CFN_BUILT_IN_COPYSIGNF64X:
    5531            0 :           if (call_expr_nargs (_p1) == 2)
    5532              :     {
    5533            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    5534            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    5535            0 :               if (real_onep (_q30))
    5536              :                 {
    5537            0 :                   switch (TREE_CODE (_q31))
    5538              :                     {
    5539            0 :                     case NEGATE_EXPR:
    5540            0 :                       {
    5541            0 :                         tree _q50 = TREE_OPERAND (_q31, 0);
    5542            0 :                         if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    5543              :                           {
    5544            0 :                             {
    5545            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5546            0 :                               tree res = generic_simplify_183 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF64X);
    5547            0 :                               if (res) return res;
    5548              :                             }
    5549              :                           }
    5550              :                         break;
    5551              :                       }
    5552              :                     default:;
    5553              :                     }
    5554              :                 }
    5555              :             }
    5556              :           break;
    5557           18 :         case CFN_BUILT_IN_COPYSIGN:
    5558           18 :           if (call_expr_nargs (_p1) == 2)
    5559              :     {
    5560           18 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    5561           18 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    5562           18 :               if (real_onep (_q30))
    5563              :                 {
    5564           14 :                   switch (TREE_CODE (_q31))
    5565              :                     {
    5566            0 :                     case NEGATE_EXPR:
    5567            0 :                       {
    5568            0 :                         tree _q50 = TREE_OPERAND (_q31, 0);
    5569            0 :                         if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    5570              :                           {
    5571            0 :                             {
    5572            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5573            0 :                               tree res = generic_simplify_183 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGN);
    5574            0 :                               if (res) return res;
    5575              :                             }
    5576              :                           }
    5577              :                         break;
    5578              :                       }
    5579              :                     default:;
    5580              :                     }
    5581              :                 }
    5582              :             }
    5583              :           break;
    5584           14 :         case CFN_BUILT_IN_COPYSIGNF:
    5585           14 :           if (call_expr_nargs (_p1) == 2)
    5586              :     {
    5587           14 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    5588           14 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    5589           14 :               if (real_onep (_q30))
    5590              :                 {
    5591           12 :                   switch (TREE_CODE (_q31))
    5592              :                     {
    5593            0 :                     case NEGATE_EXPR:
    5594            0 :                       {
    5595            0 :                         tree _q50 = TREE_OPERAND (_q31, 0);
    5596            0 :                         if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    5597              :                           {
    5598            0 :                             {
    5599            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5600            0 :                               tree res = generic_simplify_183 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF);
    5601            0 :                               if (res) return res;
    5602              :                             }
    5603              :                           }
    5604              :                         break;
    5605              :                       }
    5606              :                     default:;
    5607              :                     }
    5608              :                 }
    5609              :             }
    5610              :           break;
    5611            0 :         case CFN_BUILT_IN_COPYSIGNL:
    5612            0 :           if (call_expr_nargs (_p1) == 2)
    5613              :     {
    5614            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    5615            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    5616            0 :               if (real_onep (_q30))
    5617              :                 {
    5618            0 :                   switch (TREE_CODE (_q31))
    5619              :                     {
    5620            0 :                     case NEGATE_EXPR:
    5621            0 :                       {
    5622            0 :                         tree _q50 = TREE_OPERAND (_q31, 0);
    5623            0 :                         if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    5624              :                           {
    5625            0 :                             {
    5626            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5627            0 :                               tree res = generic_simplify_183 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNL);
    5628            0 :                               if (res) return res;
    5629              :                             }
    5630              :                           }
    5631              :                         break;
    5632              :                       }
    5633              :                     default:;
    5634              :                     }
    5635              :                 }
    5636              :             }
    5637              :           break;
    5638            0 :         case CFN_COPYSIGN:
    5639            0 :           if (call_expr_nargs (_p1) == 2)
    5640              :     {
    5641            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
    5642            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
    5643            0 :               if (real_onep (_q30))
    5644              :                 {
    5645            0 :                   switch (TREE_CODE (_q31))
    5646              :                     {
    5647            0 :                     case NEGATE_EXPR:
    5648            0 :                       {
    5649            0 :                         tree _q50 = TREE_OPERAND (_q31, 0);
    5650            0 :                         if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    5651              :                           {
    5652            0 :                             {
    5653            0 :                               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5654            0 :                               tree res = generic_simplify_183 (loc, type, _p0, _p1, captures, CFN_COPYSIGN);
    5655            0 :                               if (res) return res;
    5656              :                             }
    5657              :                           }
    5658              :                         break;
    5659              :                       }
    5660              :                     default:;
    5661              :                     }
    5662              :                 }
    5663              :             }
    5664              :           break;
    5665              :         default:;
    5666              :         }
    5667              :       break;
    5668     72578427 :     default:;
    5669              :     }
    5670     72578427 : if (integer_onep (_p1))
    5671              :   {
    5672      3566457 :     {
    5673      3566457 :       tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    5674      3566457 :       tree res = generic_simplify_184 (loc, type, _p0, _p1, captures, MULT_EXPR);
    5675      3566457 :       if (res) return res;
    5676              :     }
    5677              :   }
    5678     69011970 :   switch (TREE_CODE (_p0))
    5679              :     {
    5680      5860514 :     case MULT_EXPR:
    5681      5860514 :       {
    5682      5860514 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5683      5860514 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5684      5860514 :         switch (TREE_CODE (_q21))
    5685              :           {
    5686      1161103 :           case INTEGER_CST:
    5687      1161103 :             {
    5688      1161103 :               switch (TREE_CODE (_p1))
    5689              :                 {
    5690       991630 :                 case INTEGER_CST:
    5691       991630 :                   {
    5692       991630 :                     {
    5693       991630 :                       tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    5694       991630 :                       {
    5695       991630 :  wi::overflow_type overflow;
    5696       991630 :  wide_int mul = wi::mul (wi::to_wide (captures[1]), wi::to_wide (captures[2]),
    5697      1983260 :  TYPE_SIGN (type), &overflow);
    5698       991630 :                           if (!overflow || TYPE_OVERFLOW_WRAPS (type)
    5699              : )
    5700              :                             {
    5701       991600 :                               if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1424;
    5702       991600 :                               if (TREE_SIDE_EFFECTS (captures[2])) goto next_after_fail1424;
    5703       991600 :                               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1424;
    5704       991600 :                               {
    5705       991600 :                                 tree res_op0;
    5706       991600 :                                 res_op0 = captures[0];
    5707       991600 :                                 tree res_op1;
    5708       991600 :                                 res_op1 =  wide_int_to_tree (type, mul);
    5709       991600 :                                 tree _r;
    5710       991600 :                                 _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    5711       991600 :                                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 973, __FILE__, __LINE__, true);
    5712       991600 :                                 return _r;
    5713              :                               }
    5714           30 : next_after_fail1424:;
    5715              :                             }
    5716       991600 :                       }
    5717              :                     }
    5718           30 :                     break;
    5719              :                   }
    5720              :                 default:;
    5721              :                 }
    5722              :               break;
    5723              :             }
    5724              :           default:;
    5725              :           }
    5726              :         break;
    5727              :       }
    5728      7646000 :     case PLUS_EXPR:
    5729      7646000 :       {
    5730      7646000 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5731      7646000 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5732      7646000 :         switch (TREE_CODE (_q20))
    5733              :           {
    5734      1145950 :           case MULT_EXPR:
    5735      1145950 :             {
    5736      1145950 :               tree _q30 = TREE_OPERAND (_q20, 0);
    5737      1145950 :               tree _q31 = TREE_OPERAND (_q20, 1);
    5738      1145950 :               switch (TREE_CODE (_q31))
    5739              :                 {
    5740       301435 :                 case INTEGER_CST:
    5741       301435 :                   {
    5742       301435 :                     switch (TREE_CODE (_q21))
    5743              :                       {
    5744        35439 :                       case INTEGER_CST:
    5745        35439 :                         {
    5746        35439 :                           switch (TREE_CODE (_p1))
    5747              :                             {
    5748        11991 :                             case INTEGER_CST:
    5749        11991 :                               {
    5750        11991 :                                 {
    5751        11991 :                                   tree captures[6] ATTRIBUTE_UNUSED = { _p0, _q20, _q30, _q31, _q21, _p1 };
    5752        11991 :                                   {
    5753        11991 :  bool overflowed = true;
    5754        11991 :  wi::overflow_type ovf1, ovf2;
    5755        11991 :  wide_int mul = wi::mul (wi::to_wide (captures[3]), wi::to_wide (captures[5]),
    5756        23982 :  TYPE_SIGN (type), &ovf1);
    5757        11991 :  wide_int add = wi::mul (wi::to_wide (captures[4]), wi::to_wide (captures[5]),
    5758        23982 :  TYPE_SIGN (type), &ovf2);
    5759        11991 :  if (TYPE_OVERFLOW_UNDEFINED (type))
    5760              :  {
    5761              :  }
    5762              :  else
    5763         4000 :  overflowed = false;
    5764         4000 :                                       if (!overflowed
    5765              : )
    5766              :                                         {
    5767         4000 :                                           if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1425;
    5768         4000 :                                           if (TREE_SIDE_EFFECTS (captures[4])) goto next_after_fail1425;
    5769         4000 :                                           if (TREE_SIDE_EFFECTS (captures[5])) goto next_after_fail1425;
    5770         4000 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1425;
    5771         4000 :                                           {
    5772         4000 :                                             tree res_op0;
    5773         4000 :                                             {
    5774         4000 :                                               tree _o1[2], _r1;
    5775         4000 :                                               _o1[0] = captures[2];
    5776         4000 :                                               _o1[1] =  wide_int_to_tree (type, mul);
    5777         4000 :                                               _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    5778         4000 :                                               res_op0 = _r1;
    5779              :                                             }
    5780         4000 :                                             tree res_op1;
    5781         4000 :                                             res_op1 =  wide_int_to_tree (type, add);
    5782         4000 :                                             tree _r;
    5783         4000 :                                             _r = fold_build2_loc (loc, PLUS_EXPR, type, res_op0, res_op1);
    5784         4000 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 974, __FILE__, __LINE__, true);
    5785         4000 :                                             return _r;
    5786              :                                           }
    5787         7991 : next_after_fail1425:;
    5788              :                                         }
    5789        11991 :                                   }
    5790              :                                 }
    5791         7991 :                                 break;
    5792              :                               }
    5793              :                             default:;
    5794              :                             }
    5795              :                           break;
    5796              :                         }
    5797              :                       default:;
    5798              :                       }
    5799              :                     break;
    5800              :                   }
    5801              :                 default:;
    5802              :                 }
    5803              :               break;
    5804              :             }
    5805              :           default:;
    5806              :           }
    5807              :         break;
    5808              :       }
    5809        77981 :     case TRUNC_DIV_EXPR:
    5810        77981 :       {
    5811        77981 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5812        77981 :         tree _q21 = TREE_OPERAND (_p0, 1);
    5813        77981 :         if (integer_pow2p (_q21))
    5814              :           {
    5815        56143 :             if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q21, 0) && types_match (_p1, _q21)))
    5816              :               {
    5817        37131 :                 {
    5818        37131 :                   tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    5819        37131 :                   if (INTEGRAL_TYPE_P (TREE_TYPE (captures[0])) && TYPE_UNSIGNED (TREE_TYPE (captures[0]))
    5820              : )
    5821              :                     {
    5822        37067 :                       if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1426;
    5823        37067 :                       {
    5824        37067 :                         tree res_op0;
    5825        37067 :                         res_op0 = captures[0];
    5826        37067 :                         tree res_op1;
    5827        37067 :                         {
    5828        37067 :                           tree _o1[1], _r1;
    5829        37067 :                           _o1[0] = captures[1];
    5830        37067 :                           _r1 = fold_build1_loc (loc, NEGATE_EXPR, TREE_TYPE (_o1[0]), _o1[0]);
    5831        37067 :                           res_op1 = _r1;
    5832              :                         }
    5833        37067 :                         tree _r;
    5834        37067 :                         _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    5835        37067 :                         if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 975, __FILE__, __LINE__, true);
    5836        37067 :                         return _r;
    5837              :                       }
    5838            0 : next_after_fail1426:;
    5839              :                     }
    5840              :                 }
    5841              :               }
    5842              :           }
    5843              :         break;
    5844              :       }
    5845          260 :     case ABS_EXPR:
    5846          260 :       {
    5847          260 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5848          260 :         if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    5849              :           {
    5850            2 :             {
    5851            2 :               tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
    5852            2 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1427;
    5853            2 :               {
    5854            2 :                 if (! tree_invariant_p (captures[1])) goto next_after_fail1427;
    5855            0 :                 tree res_op0;
    5856            0 :                 res_op0 = unshare_expr (captures[1]);
    5857            0 :                 tree res_op1;
    5858            0 :                 res_op1 = captures[1];
    5859            0 :                 tree _r;
    5860            0 :                 _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    5861            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 976, __FILE__, __LINE__, true);
    5862            0 :                 return _r;
    5863              :               }
    5864            2 : next_after_fail1427:;
    5865              :             }
    5866              :           }
    5867              :         break;
    5868              :       }
    5869            0 :     case ABSU_EXPR:
    5870            0 :       {
    5871            0 :         tree _q20 = TREE_OPERAND (_p0, 0);
    5872            0 :         if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    5873              :           {
    5874            0 :             {
    5875            0 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20 };
    5876            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1428;
    5877            0 :               {
    5878            0 :                 tree res_op0;
    5879            0 :                 {
    5880            0 :                   tree _o1[1], _r1;
    5881            0 :                   _o1[0] = captures[1];
    5882            0 :                   if (TREE_TYPE (_o1[0]) != type)
    5883              :                     {
    5884            0 :                       _r1 = fold_build1_loc (loc, NOP_EXPR, type, _o1[0]);
    5885              :                     }
    5886              :                   else
    5887              :                     _r1 = _o1[0];
    5888            0 :                   captures[2] = _r1;
    5889              :                 }
    5890            0 :                 res_op0 = unshare_expr (captures[2]);
    5891            0 :                 tree res_op1;
    5892            0 :                 res_op1 = captures[2];
    5893            0 :                 tree _r;
    5894            0 :                 _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    5895            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 977, __FILE__, __LINE__, true);
    5896            0 :                 return _r;
    5897              :               }
    5898            0 : next_after_fail1428:;
    5899              :             }
    5900              :           }
    5901              :         break;
    5902              :       }
    5903      2514167 :     case CALL_EXPR:
    5904      2514167 :       switch (get_call_combined_fn (_p0))
    5905              :         {
    5906            1 :         case CFN_BUILT_IN_COPYSIGNF16:
    5907            1 :           if (call_expr_nargs (_p0) == 2)
    5908              :     {
    5909            1 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    5910            1 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    5911            1 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    5912              :                 {
    5913            0 :                   {
    5914            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    5915            0 :                     tree res = generic_simplify_185 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF16);
    5916            0 :                     if (res) return res;
    5917              :                   }
    5918              :                 }
    5919              :             }
    5920              :           break;
    5921            0 :         case CFN_BUILT_IN_COPYSIGNF32:
    5922            0 :           if (call_expr_nargs (_p0) == 2)
    5923              :     {
    5924            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    5925            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    5926            0 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    5927              :                 {
    5928            0 :                   {
    5929            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    5930            0 :                     tree res = generic_simplify_185 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF32);
    5931            0 :                     if (res) return res;
    5932              :                   }
    5933              :                 }
    5934              :             }
    5935              :           break;
    5936            0 :         case CFN_BUILT_IN_COPYSIGNF64:
    5937            0 :           if (call_expr_nargs (_p0) == 2)
    5938              :     {
    5939            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    5940            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    5941            0 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    5942              :                 {
    5943            0 :                   {
    5944            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    5945            0 :                     tree res = generic_simplify_185 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF64);
    5946            0 :                     if (res) return res;
    5947              :                   }
    5948              :                 }
    5949              :             }
    5950              :           break;
    5951            0 :         case CFN_BUILT_IN_COPYSIGNF128X:
    5952            0 :           if (call_expr_nargs (_p0) == 2)
    5953              :     {
    5954            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    5955            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    5956            0 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    5957              :                 {
    5958            0 :                   {
    5959            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    5960            0 :                     tree res = generic_simplify_185 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF128X);
    5961            0 :                     if (res) return res;
    5962              :                   }
    5963              :                 }
    5964              :             }
    5965              :           break;
    5966            8 :         case CFN_BUILT_IN_COPYSIGNF128:
    5967            8 :           if (call_expr_nargs (_p0) == 2)
    5968              :     {
    5969            8 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    5970            8 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    5971            8 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    5972              :                 {
    5973            0 :                   {
    5974            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    5975            0 :                     tree res = generic_simplify_185 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF128);
    5976            0 :                     if (res) return res;
    5977              :                   }
    5978              :                 }
    5979              :             }
    5980              :           break;
    5981            0 :         case CFN_BUILT_IN_COPYSIGNF32X:
    5982            0 :           if (call_expr_nargs (_p0) == 2)
    5983              :     {
    5984            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    5985            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    5986            0 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    5987              :                 {
    5988            0 :                   {
    5989            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    5990            0 :                     tree res = generic_simplify_185 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF32X);
    5991            0 :                     if (res) return res;
    5992              :                   }
    5993              :                 }
    5994              :             }
    5995              :           break;
    5996            0 :         case CFN_BUILT_IN_COPYSIGNF64X:
    5997            0 :           if (call_expr_nargs (_p0) == 2)
    5998              :     {
    5999            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    6000            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    6001            0 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    6002              :                 {
    6003            0 :                   {
    6004            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    6005            0 :                     tree res = generic_simplify_185 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF64X);
    6006            0 :                     if (res) return res;
    6007              :                   }
    6008              :                 }
    6009              :             }
    6010              :           break;
    6011           18 :         case CFN_BUILT_IN_COPYSIGN:
    6012           18 :           if (call_expr_nargs (_p0) == 2)
    6013              :     {
    6014           18 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    6015           18 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    6016           18 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    6017              :                 {
    6018            0 :                   {
    6019            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    6020            0 :                     tree res = generic_simplify_185 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGN);
    6021            0 :                     if (res) return res;
    6022              :                   }
    6023              :                 }
    6024              :             }
    6025              :           break;
    6026           36 :         case CFN_BUILT_IN_COPYSIGNF:
    6027           36 :           if (call_expr_nargs (_p0) == 2)
    6028              :     {
    6029           36 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    6030           36 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    6031           36 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    6032              :                 {
    6033            0 :                   {
    6034            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    6035            0 :                     tree res = generic_simplify_185 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNF);
    6036            0 :                     if (res) return res;
    6037              :                   }
    6038              :                 }
    6039              :             }
    6040              :           break;
    6041            8 :         case CFN_BUILT_IN_COPYSIGNL:
    6042            8 :           if (call_expr_nargs (_p0) == 2)
    6043              :     {
    6044            8 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    6045            8 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    6046            8 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    6047              :                 {
    6048            0 :                   {
    6049            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    6050            0 :                     tree res = generic_simplify_185 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_COPYSIGNL);
    6051            0 :                     if (res) return res;
    6052              :                   }
    6053              :                 }
    6054              :             }
    6055              :           break;
    6056            0 :         case CFN_COPYSIGN:
    6057            0 :           if (call_expr_nargs (_p0) == 2)
    6058              :     {
    6059            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    6060            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    6061            0 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    6062              :                 {
    6063            0 :                   {
    6064            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _q21 };
    6065            0 :                     tree res = generic_simplify_185 (loc, type, _p0, _p1, captures, CFN_COPYSIGN);
    6066            0 :                     if (res) return res;
    6067              :                   }
    6068              :                 }
    6069              :             }
    6070              :           break;
    6071              :         default:;
    6072              :         }
    6073              :       break;
    6074     67979303 :     default:;
    6075              :     }
    6076     67979303 :   switch (TREE_CODE (_p1))
    6077              :     {
    6078      7384248 :     CASE_CONVERT:
    6079      7384248 :       {
    6080      7384248 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6081      7384248 :         switch (TREE_CODE (_q30))
    6082              :           {
    6083            0 :           case LSHIFT_EXPR:
    6084            0 :             {
    6085            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    6086            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    6087            0 :               if (integer_onep (_q40))
    6088              :                 {
    6089            0 :                   {
    6090            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q40, _q41 };
    6091            0 :                     tree res = generic_simplify_186 (loc, type, _p0, _p1, captures);
    6092            0 :                     if (res) return res;
    6093              :                   }
    6094              :                 }
    6095              :               break;
    6096              :             }
    6097              :           default:;
    6098              :           }
    6099              :         break;
    6100              :       }
    6101     67979303 :     default:;
    6102              :     }
    6103     67979303 :   switch (TREE_CODE (_p0))
    6104              :     {
    6105     32367917 :     CASE_CONVERT:
    6106     32367917 :       {
    6107     32367917 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6108     32367917 :         switch (TREE_CODE (_q20))
    6109              :           {
    6110           20 :           case LSHIFT_EXPR:
    6111           20 :             {
    6112           20 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6113           20 :               tree _q31 = TREE_OPERAND (_q20, 1);
    6114           20 :               if (integer_onep (_q30))
    6115              :                 {
    6116            1 :                   {
    6117            1 :                     tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q30, _q31 };
    6118            1 :                     tree res = generic_simplify_186 (loc, type, _p0, _p1, captures);
    6119            1 :                     if (res) return res;
    6120              :                   }
    6121              :                 }
    6122              :               break;
    6123              :             }
    6124            1 :           case EQ_EXPR:
    6125            1 :             {
    6126            1 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6127            1 :               tree _q31 = TREE_OPERAND (_q20, 1);
    6128            1 :               if (integer_zerop (_q31))
    6129              :                 {
    6130            1 :                   if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    6131              :                     {
    6132            0 :                       {
    6133            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _q30 };
    6134            0 :                         tree res = generic_simplify_187 (loc, type, _p0, _p1, captures);
    6135            0 :                         if (res) return res;
    6136              :                       }
    6137              :                     }
    6138              :                 }
    6139              :               break;
    6140              :             }
    6141              :           default:;
    6142              :           }
    6143              :         break;
    6144              :       }
    6145     67979303 :     default:;
    6146              :     }
    6147     67979303 :   switch (TREE_CODE (_p1))
    6148              :     {
    6149          826 :     case LSHIFT_EXPR:
    6150          826 :       {
    6151          826 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6152          826 :         tree _q31 = TREE_OPERAND (_p1, 1);
    6153          826 :         if (integer_onep (_q30))
    6154              :           {
    6155          147 :             {
    6156          147 :               tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
    6157          147 :               tree res = generic_simplify_186 (loc, type, _p0, _p1, captures);
    6158          147 :               if (res) return res;
    6159              :             }
    6160              :           }
    6161              :         break;
    6162              :       }
    6163     67979156 :     default:;
    6164              :     }
    6165     67979156 :   switch (TREE_CODE (_p0))
    6166              :     {
    6167         4229 :     case LSHIFT_EXPR:
    6168         4229 :       {
    6169         4229 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6170         4229 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6171         4229 :         if (integer_onep (_q20))
    6172              :           {
    6173         4007 :             {
    6174         4007 :               tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q21 };
    6175         4007 :               tree res = generic_simplify_186 (loc, type, _p0, _p1, captures);
    6176         4007 :               if (res) return res;
    6177              :             }
    6178              :           }
    6179              :         break;
    6180              :       }
    6181     67975149 :     default:;
    6182              :     }
    6183     67975149 :   switch (TREE_CODE (_p1))
    6184              :     {
    6185      7383825 :     CASE_CONVERT:
    6186      7383825 :       {
    6187      7383825 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6188      7383825 :         switch (TREE_CODE (_q30))
    6189              :           {
    6190            0 :           case EQ_EXPR:
    6191            0 :             {
    6192            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    6193            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    6194            0 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    6195              :                 {
    6196            0 :                   if (integer_zerop (_q41))
    6197              :                     {
    6198            0 :                       {
    6199            0 :                         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    6200            0 :                         tree res = generic_simplify_188 (loc, type, _p0, _p1, captures);
    6201            0 :                         if (res) return res;
    6202              :                       }
    6203              :                     }
    6204              :                 }
    6205              :               break;
    6206              :             }
    6207              :           default:;
    6208              :           }
    6209              :         break;
    6210              :       }
    6211            0 :     case EQ_EXPR:
    6212            0 :       {
    6213            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6214            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
    6215            0 :         if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
    6216              :           {
    6217            0 :             if (integer_zerop (_q31))
    6218              :               {
    6219            0 :                 {
    6220            0 :                   tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    6221            0 :                   tree res = generic_simplify_188 (loc, type, _p0, _p1, captures);
    6222            0 :                   if (res) return res;
    6223              :                 }
    6224              :               }
    6225              :           }
    6226              :         break;
    6227              :       }
    6228     67975149 :     default:;
    6229              :     }
    6230     67975149 :   switch (TREE_CODE (_p0))
    6231              :     {
    6232          183 :     case EQ_EXPR:
    6233          183 :       {
    6234          183 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6235          183 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6236          183 :         if (integer_zerop (_q21))
    6237              :           {
    6238           59 :             if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    6239              :               {
    6240            3 :                 {
    6241            3 :                   tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    6242            3 :                   tree res = generic_simplify_187 (loc, type, _p0, _p1, captures);
    6243            3 :                   if (res) return res;
    6244              :                 }
    6245              :               }
    6246              :           }
    6247              :         break;
    6248              :       }
    6249     67975146 :     default:;
    6250              :     }
    6251     67975146 :   switch (TREE_CODE (_p1))
    6252              :     {
    6253            0 :     case VEC_COND_EXPR:
    6254            0 :       {
    6255            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6256            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
    6257            0 :         tree _q32 = TREE_OPERAND (_p1, 2);
    6258            0 :         switch (TREE_CODE (_q30))
    6259              :           {
    6260            0 :           case EQ_EXPR:
    6261            0 :             {
    6262            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    6263            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    6264            0 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    6265              :                 {
    6266            0 :                   if (integer_zerop (_q41))
    6267              :                     {
    6268            0 :                       if (integer_zerop (_q32))
    6269              :                         {
    6270            0 :                           {
    6271            0 :                             tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q31 };
    6272            0 :                             if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1429;
    6273            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1429;
    6274            0 :                             {
    6275            0 :                               tree _r;
    6276            0 :                               _r =  build_zero_cst (type);
    6277            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 978, __FILE__, __LINE__, true);
    6278            0 :                               return _r;
    6279              :                             }
    6280            0 : next_after_fail1429:;
    6281              :                           }
    6282              :                         }
    6283              :                     }
    6284              :                 }
    6285              :               break;
    6286              :             }
    6287              :           default:;
    6288              :           }
    6289              :         break;
    6290              :       }
    6291     67975146 :     default:;
    6292              :     }
    6293     67975146 :   switch (TREE_CODE (_p0))
    6294              :     {
    6295           37 :     case VEC_COND_EXPR:
    6296           37 :       {
    6297           37 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6298           37 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6299           37 :         tree _q22 = TREE_OPERAND (_p0, 2);
    6300           37 :         switch (TREE_CODE (_q20))
    6301              :           {
    6302            1 :           case EQ_EXPR:
    6303            1 :             {
    6304            1 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6305            1 :               tree _q31 = TREE_OPERAND (_q20, 1);
    6306            1 :               if (integer_zerop (_q31))
    6307              :                 {
    6308            1 :                   if (integer_zerop (_q22))
    6309              :                     {
    6310            1 :                       if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    6311              :                         {
    6312            1 :                           {
    6313            1 :                             tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q21 };
    6314            1 :                             if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1430;
    6315            1 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1430;
    6316            1 :                             {
    6317            1 :                               tree _r;
    6318            1 :                               _r =  build_zero_cst (type);
    6319            1 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 978, __FILE__, __LINE__, true);
    6320            1 :                               return _r;
    6321              :                             }
    6322            0 : next_after_fail1430:;
    6323              :                           }
    6324              :                         }
    6325              :                     }
    6326              :                 }
    6327              :               break;
    6328              :             }
    6329            0 :           case NE_EXPR:
    6330            0 :             {
    6331            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    6332            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    6333            0 :               if (integer_zerop (_q31))
    6334              :                 {
    6335            0 :                   if (integer_zerop (_q21))
    6336              :                     {
    6337            0 :                       if ((_p1 == _q30 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q30, 0) && types_match (_p1, _q30)))
    6338              :                         {
    6339            0 :                           {
    6340            0 :                             tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q22 };
    6341            0 :                             if (TREE_SIDE_EFFECTS (_p0)) goto next_after_fail1431;
    6342            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1431;
    6343            0 :                             {
    6344            0 :                               tree _r;
    6345            0 :                               _r =  build_zero_cst (type);
    6346            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 979, __FILE__, __LINE__, true);
    6347            0 :                               return _r;
    6348              :                             }
    6349            0 : next_after_fail1431:;
    6350              :                           }
    6351              :                         }
    6352              :                     }
    6353              :                 }
    6354              :               break;
    6355              :             }
    6356              :           default:;
    6357              :           }
    6358              :         break;
    6359              :       }
    6360     67975145 :     default:;
    6361              :     }
    6362     67975145 :   switch (TREE_CODE (_p1))
    6363              :     {
    6364            0 :     case VEC_COND_EXPR:
    6365            0 :       {
    6366            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    6367            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
    6368            0 :         tree _q32 = TREE_OPERAND (_p1, 2);
    6369            0 :         switch (TREE_CODE (_q30))
    6370              :           {
    6371            0 :           case NE_EXPR:
    6372            0 :             {
    6373            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    6374            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    6375            0 :               if ((_q40 == _p0 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _p0, 0) && types_match (_q40, _p0)))
    6376              :                 {
    6377            0 :                   if (integer_zerop (_q41))
    6378              :                     {
    6379            0 :                       if (integer_zerop (_q31))
    6380              :                         {
    6381            0 :                           {
    6382            0 :                             tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q32 };
    6383            0 :                             if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1432;
    6384            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1432;
    6385            0 :                             {
    6386            0 :                               tree _r;
    6387            0 :                               _r =  build_zero_cst (type);
    6388            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 979, __FILE__, __LINE__, true);
    6389            0 :                               return _r;
    6390              :                             }
    6391            0 : next_after_fail1432:;
    6392              :                           }
    6393              :                         }
    6394              :                     }
    6395              :                 }
    6396              :               break;
    6397              :             }
    6398              :           default:;
    6399              :           }
    6400              :         break;
    6401              :       }
    6402     67975145 :     default:;
    6403              :     }
    6404     67975145 :   switch (TREE_CODE (_p0))
    6405              :     {
    6406       772634 :     case RDIV_EXPR:
    6407       772634 :       {
    6408       772634 :         tree _q20 = TREE_OPERAND (_p0, 0);
    6409       772634 :         tree _q21 = TREE_OPERAND (_p0, 1);
    6410       772634 :         switch (TREE_CODE (_q20))
    6411              :           {
    6412        58237 :           case REAL_CST:
    6413        58237 :             {
    6414        58237 :               switch (TREE_CODE (_p1))
    6415              :                 {
    6416            1 :                 case REAL_CST:
    6417            1 :                   {
    6418            1 :                     {
    6419            1 :                       tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    6420            1 :                       if (flag_associative_math
    6421            1 :  && single_use (captures[0])
    6422              : )
    6423              :                         {
    6424            1 :                           {
    6425            1 :  tree tem = const_binop (MULT_EXPR, type, captures[1], captures[3]);
    6426            1 :                               if (tem
    6427              : )
    6428              :                                 {
    6429            1 :                                   if (TREE_SIDE_EFFECTS (captures[1])) goto next_after_fail1433;
    6430            1 :                                   if (TREE_SIDE_EFFECTS (captures[3])) goto next_after_fail1433;
    6431            1 :                                   if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1433;
    6432            1 :                                   {
    6433            1 :                                     tree res_op0;
    6434            1 :                                     res_op0 =  tem;
    6435            1 :                                     tree res_op1;
    6436            1 :                                     res_op1 = captures[2];
    6437            1 :                                     tree _r;
    6438            1 :                                     _r = fold_build2_loc (loc, RDIV_EXPR, type, res_op0, res_op1);
    6439            1 :                                     if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 980, __FILE__, __LINE__, true);
    6440            1 :                                     return _r;
    6441              :                                   }
    6442            0 : next_after_fail1433:;
    6443              :                                 }
    6444              :                           }
    6445              :                         }
    6446              :                     }
    6447            0 :                     break;
    6448              :                   }
    6449              :                 default:;
    6450              :                 }
    6451              :               break;
    6452              :             }
    6453              :           default:;
    6454              :           }
    6455              :         break;
    6456              :       }
    6457     67975144 :     default:;
    6458              :     }
    6459     67975144 : {
    6460     67975144 :   tree _p0_pops[1];
    6461     67975144 :   if (tree_nop_convert (_p0, _p0_pops))
    6462              :     {
    6463     23397126 :       tree _q20 = _p0_pops[0];
    6464     23397126 :       switch (TREE_CODE (_q20))
    6465              :         {
    6466            4 :         case BIT_IOR_EXPR:
    6467            4 :           {
    6468            4 :             tree _q30 = TREE_OPERAND (_q20, 0);
    6469            4 :             tree _q31 = TREE_OPERAND (_q20, 1);
    6470            4 :             switch (TREE_CODE (_q30))
    6471              :               {
    6472            4 :               case NEGATE_EXPR:
    6473            4 :                 {
    6474            4 :                   tree _q40 = TREE_OPERAND (_q30, 0);
    6475            4 :                   switch (TREE_CODE (_q40))
    6476              :                     {
    6477            0 :                     CASE_CONVERT:
    6478            0 :                       {
    6479            0 :                         tree _q50 = TREE_OPERAND (_q40, 0);
    6480            0 :                         switch (TREE_CODE (_q50))
    6481              :                           {
    6482            0 :                           case LT_EXPR:
    6483            0 :                             {
    6484            0 :                               tree _q60 = TREE_OPERAND (_q50, 0);
    6485            0 :                               tree _q61 = TREE_OPERAND (_q50, 1);
    6486            0 :                               if (integer_zerop (_q61))
    6487              :                                 {
    6488            0 :                                   if (integer_onep (_q31))
    6489              :                                     {
    6490            0 :                                       {
    6491            0 :                                         tree _p1_pops[1];
    6492            0 :                                         if (tree_nop_convert (_p1, _p1_pops))
    6493              :                                           {
    6494            0 :                                             tree _q100 = _p1_pops[0];
    6495            0 :                                             if ((_q100 == _q60 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q60, 0) && types_match (_q100, _q60)))
    6496              :                                               {
    6497            0 :                                                 {
    6498            0 :                                                   tree captures[1] ATTRIBUTE_UNUSED = { _q60 };
    6499            0 :                                                   tree res = generic_simplify_189 (loc, type, _p0, _p1, captures);
    6500            0 :                                                   if (res) return res;
    6501              :                                                 }
    6502              :                                               }
    6503              :                                           }
    6504              :                                       }
    6505            0 :                                       if ((_p1 == _q60 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q60, 0) && types_match (_p1, _q60)))
    6506              :                                         {
    6507            0 :                                           {
    6508            0 :                                             tree captures[1] ATTRIBUTE_UNUSED = { _q60 };
    6509            0 :                                             tree res = generic_simplify_189 (loc, type, _p0, _p1, captures);
    6510            0 :                                             if (res) return res;
    6511              :                                           }
    6512              :                                         }
    6513              :                                     }
    6514              :                                 }
    6515              :                               break;
    6516              :                             }
    6517              :                           default:;
    6518              :                           }
    6519              :                         break;
    6520              :                       }
    6521            4 :                     case LT_EXPR:
    6522            4 :                       {
    6523            4 :                         tree _q50 = TREE_OPERAND (_q40, 0);
    6524            4 :                         tree _q51 = TREE_OPERAND (_q40, 1);
    6525            4 :                         if (integer_zerop (_q51))
    6526              :                           {
    6527            4 :                             if (integer_onep (_q31))
    6528              :                               {
    6529            4 :                                 {
    6530            4 :                                   tree _p1_pops[1];
    6531            4 :                                   if (tree_nop_convert (_p1, _p1_pops))
    6532              :                                     {
    6533            4 :                                       tree _q90 = _p1_pops[0];
    6534            4 :                                       if ((_q90 == _q50 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q50, 0) && types_match (_q90, _q50)))
    6535              :                                         {
    6536            4 :                                           {
    6537            4 :                                             tree captures[1] ATTRIBUTE_UNUSED = { _q50 };
    6538            4 :                                             tree res = generic_simplify_189 (loc, type, _p0, _p1, captures);
    6539            4 :                                             if (res) return res;
    6540              :                                           }
    6541              :                                         }
    6542              :                                     }
    6543              :                                 }
    6544            0 :                                 if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50)))
    6545              :                                   {
    6546            0 :                                     {
    6547            0 :                                       tree captures[1] ATTRIBUTE_UNUSED = { _q50 };
    6548            0 :                                       tree res = generic_simplify_189 (loc, type, _p0, _p1, captures);
    6549            0 :                                       if (res) return res;
    6550              :                                     }
    6551              :                                   }
    6552              :                               }
    6553              :                           }
    6554              :                         break;
    6555              :                       }
    6556              :                     default:;
    6557              :                     }
    6558              :                   break;
    6559              :                 }
    6560            0 :               default:;
    6561              :               }
    6562            0 :           {
    6563            0 :             tree _q30_pops[1];
    6564            0 :             if (tree_nop_convert (_q30, _q30_pops))
    6565              :               {
    6566            0 :                 tree _q40 = _q30_pops[0];
    6567            0 :                 switch (TREE_CODE (_q40))
    6568              :                   {
    6569            0 :                   case NEGATE_EXPR:
    6570            0 :                     {
    6571            0 :                       tree _q50 = TREE_OPERAND (_q40, 0);
    6572            0 :                       switch (TREE_CODE (_q50))
    6573              :                         {
    6574            0 :                         CASE_CONVERT:
    6575            0 :                           {
    6576            0 :                             tree _q60 = TREE_OPERAND (_q50, 0);
    6577            0 :                             switch (TREE_CODE (_q60))
    6578              :                               {
    6579            0 :                               case LT_EXPR:
    6580            0 :                                 {
    6581            0 :                                   tree _q70 = TREE_OPERAND (_q60, 0);
    6582            0 :                                   tree _q71 = TREE_OPERAND (_q60, 1);
    6583            0 :                                   if (integer_zerop (_q71))
    6584              :                                     {
    6585            0 :                                       if (integer_onep (_q31))
    6586              :                                         {
    6587            0 :                                           {
    6588            0 :                                             tree _p1_pops[1];
    6589            0 :                                             if (tree_nop_convert (_p1, _p1_pops))
    6590              :                                               {
    6591            0 :                                                 tree _q110 = _p1_pops[0];
    6592            0 :                                                 if ((_q110 == _q70 && ! TREE_SIDE_EFFECTS (_q110)) || (operand_equal_p (_q110, _q70, 0) && types_match (_q110, _q70)))
    6593              :                                                   {
    6594            0 :                                                     {
    6595            0 :                                                       tree captures[1] ATTRIBUTE_UNUSED = { _q70 };
    6596            0 :                                                       tree res = generic_simplify_189 (loc, type, _p0, _p1, captures);
    6597            0 :                                                       if (res) return res;
    6598              :                                                     }
    6599              :                                                   }
    6600              :                                               }
    6601              :                                           }
    6602            0 :                                           if ((_p1 == _q70 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q70, 0) && types_match (_p1, _q70)))
    6603              :                                             {
    6604            0 :                                               {
    6605            0 :                                                 tree captures[1] ATTRIBUTE_UNUSED = { _q70 };
    6606            0 :                                                 tree res = generic_simplify_189 (loc, type, _p0, _p1, captures);
    6607            0 :                                                 if (res) return res;
    6608              :                                               }
    6609              :                                             }
    6610              :                                         }
    6611              :                                     }
    6612              :                                   break;
    6613              :                                 }
    6614              :                               default:;
    6615              :                               }
    6616              :                             break;
    6617              :                           }
    6618            0 :                         case LT_EXPR:
    6619            0 :                           {
    6620            0 :                             tree _q60 = TREE_OPERAND (_q50, 0);
    6621            0 :                             tree _q61 = TREE_OPERAND (_q50, 1);
    6622            0 :                             if (integer_zerop (_q61))
    6623              :                               {
    6624            0 :                                 if (integer_onep (_q31))
    6625              :                                   {
    6626            0 :                                     {
    6627            0 :                                       tree _p1_pops[1];
    6628            0 :                                       if (tree_nop_convert (_p1, _p1_pops))
    6629              :                                         {
    6630            0 :                                           tree _q100 = _p1_pops[0];
    6631            0 :                                           if ((_q100 == _q60 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q60, 0) && types_match (_q100, _q60)))
    6632              :                                             {
    6633            0 :                                               {
    6634            0 :                                                 tree captures[1] ATTRIBUTE_UNUSED = { _q60 };
    6635            0 :                                                 tree res = generic_simplify_189 (loc, type, _p0, _p1, captures);
    6636            0 :                                                 if (res) return res;
    6637              :                                               }
    6638              :                                             }
    6639              :                                         }
    6640              :                                     }
    6641            0 :                                     if ((_p1 == _q60 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q60, 0) && types_match (_p1, _q60)))
    6642              :                                       {
    6643            0 :                                         {
    6644            0 :                                           tree captures[1] ATTRIBUTE_UNUSED = { _q60 };
    6645            0 :                                           tree res = generic_simplify_189 (loc, type, _p0, _p1, captures);
    6646            0 :                                           if (res) return res;
    6647              :                                         }
    6648              :                                       }
    6649              :                                   }
    6650              :                               }
    6651              :                             break;
    6652              :                           }
    6653              :                         default:;
    6654              :                         }
    6655              :                       break;
    6656              :                     }
    6657              :                   default:;
    6658              :                   }
    6659              :               }
    6660              :           }
    6661            0 :             break;
    6662              :           }
    6663     23397122 :         default:;
    6664              :         }
    6665     23397122 :       switch (TREE_CODE (_p1))
    6666              :         {
    6667            0 :         case BIT_IOR_EXPR:
    6668            0 :           {
    6669            0 :             tree _q40 = TREE_OPERAND (_p1, 0);
    6670            0 :             tree _q41 = TREE_OPERAND (_p1, 1);
    6671            0 :             switch (TREE_CODE (_q40))
    6672              :               {
    6673            0 :               case NEGATE_EXPR:
    6674            0 :                 {
    6675            0 :                   tree _q50 = TREE_OPERAND (_q40, 0);
    6676            0 :                   switch (TREE_CODE (_q50))
    6677              :                     {
    6678            0 :                     CASE_CONVERT:
    6679            0 :                       {
    6680            0 :                         tree _q60 = TREE_OPERAND (_q50, 0);
    6681            0 :                         switch (TREE_CODE (_q60))
    6682              :                           {
    6683            0 :                           case LT_EXPR:
    6684            0 :                             {
    6685            0 :                               tree _q70 = TREE_OPERAND (_q60, 0);
    6686            0 :                               tree _q71 = TREE_OPERAND (_q60, 1);
    6687            0 :                               if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
    6688              :                                 {
    6689            0 :                                   if (integer_zerop (_q71))
    6690              :                                     {
    6691            0 :                                       if (integer_onep (_q41))
    6692              :                                         {
    6693            0 :                                           {
    6694            0 :                                             tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    6695            0 :                                             tree res = generic_simplify_190 (loc, type, _p0, _p1, captures);
    6696            0 :                                             if (res) return res;
    6697              :                                           }
    6698              :                                         }
    6699              :                                     }
    6700              :                                 }
    6701              :                               break;
    6702              :                             }
    6703              :                           default:;
    6704              :                           }
    6705              :                         break;
    6706              :                       }
    6707            0 :                     case LT_EXPR:
    6708            0 :                       {
    6709            0 :                         tree _q60 = TREE_OPERAND (_q50, 0);
    6710            0 :                         tree _q61 = TREE_OPERAND (_q50, 1);
    6711            0 :                         if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    6712              :                           {
    6713            0 :                             if (integer_zerop (_q61))
    6714              :                               {
    6715            0 :                                 if (integer_onep (_q41))
    6716              :                                   {
    6717            0 :                                     {
    6718            0 :                                       tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    6719            0 :                                       tree res = generic_simplify_190 (loc, type, _p0, _p1, captures);
    6720            0 :                                       if (res) return res;
    6721              :                                     }
    6722              :                                   }
    6723              :                               }
    6724              :                           }
    6725              :                         break;
    6726              :                       }
    6727              :                     default:;
    6728              :                     }
    6729              :                   break;
    6730              :                 }
    6731            0 :               default:;
    6732              :               }
    6733            0 :           {
    6734            0 :             tree _q40_pops[1];
    6735            0 :             if (tree_nop_convert (_q40, _q40_pops))
    6736              :               {
    6737            0 :                 tree _q50 = _q40_pops[0];
    6738            0 :                 switch (TREE_CODE (_q50))
    6739              :                   {
    6740            0 :                   case NEGATE_EXPR:
    6741            0 :                     {
    6742            0 :                       tree _q60 = TREE_OPERAND (_q50, 0);
    6743            0 :                       switch (TREE_CODE (_q60))
    6744              :                         {
    6745            0 :                         CASE_CONVERT:
    6746            0 :                           {
    6747            0 :                             tree _q70 = TREE_OPERAND (_q60, 0);
    6748            0 :                             switch (TREE_CODE (_q70))
    6749              :                               {
    6750            0 :                               case LT_EXPR:
    6751            0 :                                 {
    6752            0 :                                   tree _q80 = TREE_OPERAND (_q70, 0);
    6753            0 :                                   tree _q81 = TREE_OPERAND (_q70, 1);
    6754            0 :                                   if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
    6755              :                                     {
    6756            0 :                                       if (integer_zerop (_q81))
    6757              :                                         {
    6758            0 :                                           if (integer_onep (_q41))
    6759              :                                             {
    6760            0 :                                               {
    6761            0 :                                                 tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    6762            0 :                                                 tree res = generic_simplify_190 (loc, type, _p0, _p1, captures);
    6763            0 :                                                 if (res) return res;
    6764              :                                               }
    6765              :                                             }
    6766              :                                         }
    6767              :                                     }
    6768              :                                   break;
    6769              :                                 }
    6770              :                               default:;
    6771              :                               }
    6772              :                             break;
    6773              :                           }
    6774            0 :                         case LT_EXPR:
    6775            0 :                           {
    6776            0 :                             tree _q70 = TREE_OPERAND (_q60, 0);
    6777            0 :                             tree _q71 = TREE_OPERAND (_q60, 1);
    6778            0 :                             if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
    6779              :                               {
    6780            0 :                                 if (integer_zerop (_q71))
    6781              :                                   {
    6782            0 :                                     if (integer_onep (_q41))
    6783              :                                       {
    6784            0 :                                         {
    6785            0 :                                           tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    6786            0 :                                           tree res = generic_simplify_190 (loc, type, _p0, _p1, captures);
    6787            0 :                                           if (res) return res;
    6788              :                                         }
    6789              :                                       }
    6790              :                                   }
    6791              :                               }
    6792              :                             break;
    6793              :                           }
    6794              :                         default:;
    6795              :                         }
    6796              :                       break;
    6797              :                     }
    6798              :                   default:;
    6799              :                   }
    6800              :               }
    6801              :           }
    6802            0 :             break;
    6803              :           }
    6804     23397122 :         default:;
    6805              :         }
    6806     23397122 :     {
    6807     23397122 :       tree _p1_pops[1];
    6808     23397122 :       if (tree_nop_convert (_p1, _p1_pops))
    6809              :         {
    6810      2503921 :           tree _q40 = _p1_pops[0];
    6811      2503921 :           switch (TREE_CODE (_q40))
    6812              :             {
    6813            0 :             case BIT_IOR_EXPR:
    6814            0 :               {
    6815            0 :                 tree _q50 = TREE_OPERAND (_q40, 0);
    6816            0 :                 tree _q51 = TREE_OPERAND (_q40, 1);
    6817            0 :                 switch (TREE_CODE (_q50))
    6818              :                   {
    6819            0 :                   case NEGATE_EXPR:
    6820            0 :                     {
    6821            0 :                       tree _q60 = TREE_OPERAND (_q50, 0);
    6822            0 :                       switch (TREE_CODE (_q60))
    6823              :                         {
    6824            0 :                         CASE_CONVERT:
    6825            0 :                           {
    6826            0 :                             tree _q70 = TREE_OPERAND (_q60, 0);
    6827            0 :                             switch (TREE_CODE (_q70))
    6828              :                               {
    6829            0 :                               case LT_EXPR:
    6830            0 :                                 {
    6831            0 :                                   tree _q80 = TREE_OPERAND (_q70, 0);
    6832            0 :                                   tree _q81 = TREE_OPERAND (_q70, 1);
    6833            0 :                                   if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
    6834              :                                     {
    6835            0 :                                       if (integer_zerop (_q81))
    6836              :                                         {
    6837            0 :                                           if (integer_onep (_q51))
    6838              :                                             {
    6839            0 :                                               {
    6840            0 :                                                 tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    6841            0 :                                                 tree res = generic_simplify_190 (loc, type, _p0, _p1, captures);
    6842            0 :                                                 if (res) return res;
    6843              :                                               }
    6844              :                                             }
    6845              :                                         }
    6846              :                                     }
    6847              :                                   break;
    6848              :                                 }
    6849              :                               default:;
    6850              :                               }
    6851              :                             break;
    6852              :                           }
    6853            0 :                         case LT_EXPR:
    6854            0 :                           {
    6855            0 :                             tree _q70 = TREE_OPERAND (_q60, 0);
    6856            0 :                             tree _q71 = TREE_OPERAND (_q60, 1);
    6857            0 :                             if ((_q70 == _q20 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _q20, 0) && types_match (_q70, _q20)))
    6858              :                               {
    6859            0 :                                 if (integer_zerop (_q71))
    6860              :                                   {
    6861            0 :                                     if (integer_onep (_q51))
    6862              :                                       {
    6863            0 :                                         {
    6864            0 :                                           tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    6865            0 :                                           tree res = generic_simplify_190 (loc, type, _p0, _p1, captures);
    6866            0 :                                           if (res) return res;
    6867              :                                         }
    6868              :                                       }
    6869              :                                   }
    6870              :                               }
    6871              :                             break;
    6872              :                           }
    6873              :                         default:;
    6874              :                         }
    6875              :                       break;
    6876              :                     }
    6877            0 :                   default:;
    6878              :                   }
    6879            0 :               {
    6880            0 :                 tree _q50_pops[1];
    6881            0 :                 if (tree_nop_convert (_q50, _q50_pops))
    6882              :                   {
    6883            0 :                     tree _q60 = _q50_pops[0];
    6884            0 :                     switch (TREE_CODE (_q60))
    6885              :                       {
    6886            0 :                       case NEGATE_EXPR:
    6887            0 :                         {
    6888            0 :                           tree _q70 = TREE_OPERAND (_q60, 0);
    6889            0 :                           switch (TREE_CODE (_q70))
    6890              :                             {
    6891            0 :                             CASE_CONVERT:
    6892            0 :                               {
    6893            0 :                                 tree _q80 = TREE_OPERAND (_q70, 0);
    6894            0 :                                 switch (TREE_CODE (_q80))
    6895              :                                   {
    6896            0 :                                   case LT_EXPR:
    6897            0 :                                     {
    6898            0 :                                       tree _q90 = TREE_OPERAND (_q80, 0);
    6899            0 :                                       tree _q91 = TREE_OPERAND (_q80, 1);
    6900            0 :                                       if ((_q90 == _q20 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q20, 0) && types_match (_q90, _q20)))
    6901              :                                         {
    6902            0 :                                           if (integer_zerop (_q91))
    6903              :                                             {
    6904            0 :                                               if (integer_onep (_q51))
    6905              :                                                 {
    6906            0 :                                                   {
    6907            0 :                                                     tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    6908            0 :                                                     tree res = generic_simplify_190 (loc, type, _p0, _p1, captures);
    6909            0 :                                                     if (res) return res;
    6910              :                                                   }
    6911              :                                                 }
    6912              :                                             }
    6913              :                                         }
    6914              :                                       break;
    6915              :                                     }
    6916              :                                   default:;
    6917              :                                   }
    6918              :                                 break;
    6919              :                               }
    6920            0 :                             case LT_EXPR:
    6921            0 :                               {
    6922            0 :                                 tree _q80 = TREE_OPERAND (_q70, 0);
    6923            0 :                                 tree _q81 = TREE_OPERAND (_q70, 1);
    6924            0 :                                 if ((_q80 == _q20 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q20, 0) && types_match (_q80, _q20)))
    6925              :                                   {
    6926            0 :                                     if (integer_zerop (_q81))
    6927              :                                       {
    6928            0 :                                         if (integer_onep (_q51))
    6929              :                                           {
    6930            0 :                                             {
    6931            0 :                                               tree captures[1] ATTRIBUTE_UNUSED = { _q20 };
    6932            0 :                                               tree res = generic_simplify_190 (loc, type, _p0, _p1, captures);
    6933            0 :                                               if (res) return res;
    6934              :                                             }
    6935              :                                           }
    6936              :                                       }
    6937              :                                   }
    6938              :                                 break;
    6939              :                               }
    6940              :                             default:;
    6941              :                             }
    6942              :                           break;
    6943              :                         }
    6944              :                       default:;
    6945              :                       }
    6946              :                   }
    6947              :               }
    6948            0 :                 break;
    6949              :               }
    6950              :             default:;
    6951              :             }
    6952              :         }
    6953              :     }
    6954              :     }
    6955              : }
    6956     67975140 :   {
    6957     67975140 :     tree _p1_pops[1];
    6958     67975140 :     if (tree_nop_convert (_p1, _p1_pops))
    6959              :       {
    6960      7287473 :         tree _q30 = _p1_pops[0];
    6961      7287473 :         switch (TREE_CODE (_q30))
    6962              :           {
    6963            0 :           case BIT_IOR_EXPR:
    6964            0 :             {
    6965            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    6966            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    6967            0 :               switch (TREE_CODE (_q40))
    6968              :                 {
    6969            0 :                 case NEGATE_EXPR:
    6970            0 :                   {
    6971            0 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    6972            0 :                     switch (TREE_CODE (_q50))
    6973              :                       {
    6974            0 :                       CASE_CONVERT:
    6975            0 :                         {
    6976            0 :                           tree _q60 = TREE_OPERAND (_q50, 0);
    6977            0 :                           switch (TREE_CODE (_q60))
    6978              :                             {
    6979            0 :                             case LT_EXPR:
    6980            0 :                               {
    6981            0 :                                 tree _q70 = TREE_OPERAND (_q60, 0);
    6982            0 :                                 tree _q71 = TREE_OPERAND (_q60, 1);
    6983            0 :                                 if ((_q70 == _p0 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p0, 0) && types_match (_q70, _p0)))
    6984              :                                   {
    6985            0 :                                     if (integer_zerop (_q71))
    6986              :                                       {
    6987            0 :                                         if (integer_onep (_q41))
    6988              :                                           {
    6989            0 :                                             {
    6990            0 :                                               tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    6991            0 :                                               tree res = generic_simplify_190 (loc, type, _p0, _p1, captures);
    6992            0 :                                               if (res) return res;
    6993              :                                             }
    6994              :                                           }
    6995              :                                       }
    6996              :                                   }
    6997              :                                 break;
    6998              :                               }
    6999              :                             default:;
    7000              :                             }
    7001              :                           break;
    7002              :                         }
    7003              :                       default:;
    7004              :                       }
    7005              :                     break;
    7006              :                   }
    7007            0 :                 default:;
    7008              :                 }
    7009            0 :             {
    7010            0 :               tree _q40_pops[1];
    7011            0 :               if (tree_nop_convert (_q40, _q40_pops))
    7012              :                 {
    7013            0 :                   tree _q50 = _q40_pops[0];
    7014            0 :                   switch (TREE_CODE (_q50))
    7015              :                     {
    7016            0 :                     case NEGATE_EXPR:
    7017            0 :                       {
    7018            0 :                         tree _q60 = TREE_OPERAND (_q50, 0);
    7019            0 :                         switch (TREE_CODE (_q60))
    7020              :                           {
    7021            0 :                           CASE_CONVERT:
    7022            0 :                             {
    7023            0 :                               tree _q70 = TREE_OPERAND (_q60, 0);
    7024            0 :                               switch (TREE_CODE (_q70))
    7025              :                                 {
    7026            0 :                                 case LT_EXPR:
    7027            0 :                                   {
    7028            0 :                                     tree _q80 = TREE_OPERAND (_q70, 0);
    7029            0 :                                     tree _q81 = TREE_OPERAND (_q70, 1);
    7030            0 :                                     if ((_q80 == _p0 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _p0, 0) && types_match (_q80, _p0)))
    7031              :                                       {
    7032            0 :                                         if (integer_zerop (_q81))
    7033              :                                           {
    7034            0 :                                             if (integer_onep (_q41))
    7035              :                                               {
    7036            0 :                                                 {
    7037            0 :                                                   tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    7038            0 :                                                   tree res = generic_simplify_190 (loc, type, _p0, _p1, captures);
    7039            0 :                                                   if (res) return res;
    7040              :                                                 }
    7041              :                                               }
    7042              :                                           }
    7043              :                                       }
    7044              :                                     break;
    7045              :                                   }
    7046              :                                 default:;
    7047              :                                 }
    7048              :                               break;
    7049              :                             }
    7050              :                           default:;
    7051              :                           }
    7052              :                         break;
    7053              :                       }
    7054              :                     default:;
    7055              :                     }
    7056              :                 }
    7057              :             }
    7058            0 :               break;
    7059              :             }
    7060              :           default:;
    7061              :           }
    7062              :       }
    7063              :   }
    7064     67975140 :   switch (TREE_CODE (_p0))
    7065              :     {
    7066          299 :     case BIT_IOR_EXPR:
    7067          299 :       {
    7068          299 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7069          299 :         tree _q21 = TREE_OPERAND (_p0, 1);
    7070          299 :         switch (TREE_CODE (_q20))
    7071              :           {
    7072            1 :           case NEGATE_EXPR:
    7073            1 :             {
    7074            1 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7075            1 :               switch (TREE_CODE (_q30))
    7076              :                 {
    7077            0 :                 CASE_CONVERT:
    7078            0 :                   {
    7079            0 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    7080            0 :                     switch (TREE_CODE (_q40))
    7081              :                       {
    7082            0 :                       case LT_EXPR:
    7083            0 :                         {
    7084            0 :                           tree _q50 = TREE_OPERAND (_q40, 0);
    7085            0 :                           tree _q51 = TREE_OPERAND (_q40, 1);
    7086            0 :                           if (integer_zerop (_q51))
    7087              :                             {
    7088            0 :                               if (integer_onep (_q21))
    7089              :                                 {
    7090            0 :                                   {
    7091            0 :                                     tree _p1_pops[1];
    7092            0 :                                     if (tree_nop_convert (_p1, _p1_pops))
    7093              :                                       {
    7094            0 :                                         tree _q90 = _p1_pops[0];
    7095            0 :                                         if ((_q90 == _q50 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q50, 0) && types_match (_q90, _q50)))
    7096              :                                           {
    7097            0 :                                             {
    7098            0 :                                               tree captures[1] ATTRIBUTE_UNUSED = { _q50 };
    7099            0 :                                               tree res = generic_simplify_189 (loc, type, _p0, _p1, captures);
    7100            0 :                                               if (res) return res;
    7101              :                                             }
    7102              :                                           }
    7103              :                                       }
    7104              :                                   }
    7105            0 :                                   if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50)))
    7106              :                                     {
    7107            0 :                                       {
    7108            0 :                                         tree captures[1] ATTRIBUTE_UNUSED = { _q50 };
    7109            0 :                                         tree res = generic_simplify_189 (loc, type, _p0, _p1, captures);
    7110            0 :                                         if (res) return res;
    7111              :                                       }
    7112              :                                     }
    7113              :                                 }
    7114              :                             }
    7115              :                           break;
    7116              :                         }
    7117              :                       default:;
    7118              :                       }
    7119              :                     break;
    7120              :                   }
    7121            1 :                 case LT_EXPR:
    7122            1 :                   {
    7123            1 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    7124            1 :                     tree _q41 = TREE_OPERAND (_q30, 1);
    7125            1 :                     if (integer_zerop (_q41))
    7126              :                       {
    7127            1 :                         if (integer_onep (_q21))
    7128              :                           {
    7129            1 :                             {
    7130            1 :                               tree _p1_pops[1];
    7131            1 :                               if (tree_nop_convert (_p1, _p1_pops))
    7132              :                                 {
    7133            0 :                                   tree _q80 = _p1_pops[0];
    7134            0 :                                   if ((_q80 == _q40 && ! TREE_SIDE_EFFECTS (_q80)) || (operand_equal_p (_q80, _q40, 0) && types_match (_q80, _q40)))
    7135              :                                     {
    7136            0 :                                       {
    7137            0 :                                         tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
    7138            0 :                                         tree res = generic_simplify_189 (loc, type, _p0, _p1, captures);
    7139            0 :                                         if (res) return res;
    7140              :                                       }
    7141              :                                     }
    7142              :                                 }
    7143              :                             }
    7144            1 :                             if ((_p1 == _q40 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q40, 0) && types_match (_p1, _q40)))
    7145              :                               {
    7146            1 :                                 {
    7147            1 :                                   tree captures[1] ATTRIBUTE_UNUSED = { _q40 };
    7148            1 :                                   tree res = generic_simplify_189 (loc, type, _p0, _p1, captures);
    7149            1 :                                   if (res) return res;
    7150              :                                 }
    7151              :                               }
    7152              :                           }
    7153              :                       }
    7154              :                     break;
    7155              :                   }
    7156              :                 default:;
    7157              :                 }
    7158              :               break;
    7159              :             }
    7160          298 :           default:;
    7161              :           }
    7162          298 :       {
    7163          298 :         tree _q20_pops[1];
    7164          298 :         if (tree_nop_convert (_q20, _q20_pops))
    7165              :           {
    7166            1 :             tree _q30 = _q20_pops[0];
    7167            1 :             switch (TREE_CODE (_q30))
    7168              :               {
    7169            1 :               case NEGATE_EXPR:
    7170            1 :                 {
    7171            1 :                   tree _q40 = TREE_OPERAND (_q30, 0);
    7172            1 :                   switch (TREE_CODE (_q40))
    7173              :                     {
    7174            0 :                     CASE_CONVERT:
    7175            0 :                       {
    7176            0 :                         tree _q50 = TREE_OPERAND (_q40, 0);
    7177            0 :                         switch (TREE_CODE (_q50))
    7178              :                           {
    7179            0 :                           case LT_EXPR:
    7180            0 :                             {
    7181            0 :                               tree _q60 = TREE_OPERAND (_q50, 0);
    7182            0 :                               tree _q61 = TREE_OPERAND (_q50, 1);
    7183            0 :                               if (integer_zerop (_q61))
    7184              :                                 {
    7185            0 :                                   if (integer_onep (_q21))
    7186              :                                     {
    7187            0 :                                       {
    7188            0 :                                         tree _p1_pops[1];
    7189            0 :                                         if (tree_nop_convert (_p1, _p1_pops))
    7190              :                                           {
    7191            0 :                                             tree _q100 = _p1_pops[0];
    7192            0 :                                             if ((_q100 == _q60 && ! TREE_SIDE_EFFECTS (_q100)) || (operand_equal_p (_q100, _q60, 0) && types_match (_q100, _q60)))
    7193              :                                               {
    7194            0 :                                                 {
    7195            0 :                                                   tree captures[1] ATTRIBUTE_UNUSED = { _q60 };
    7196            0 :                                                   tree res = generic_simplify_189 (loc, type, _p0, _p1, captures);
    7197            0 :                                                   if (res) return res;
    7198              :                                                 }
    7199              :                                               }
    7200              :                                           }
    7201              :                                       }
    7202            0 :                                       if ((_p1 == _q60 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q60, 0) && types_match (_p1, _q60)))
    7203              :                                         {
    7204            0 :                                           {
    7205            0 :                                             tree captures[1] ATTRIBUTE_UNUSED = { _q60 };
    7206            0 :                                             tree res = generic_simplify_189 (loc, type, _p0, _p1, captures);
    7207            0 :                                             if (res) return res;
    7208              :                                           }
    7209              :                                         }
    7210              :                                     }
    7211              :                                 }
    7212              :                               break;
    7213              :                             }
    7214              :                           default:;
    7215              :                           }
    7216              :                         break;
    7217              :                       }
    7218            1 :                     case LT_EXPR:
    7219            1 :                       {
    7220            1 :                         tree _q50 = TREE_OPERAND (_q40, 0);
    7221            1 :                         tree _q51 = TREE_OPERAND (_q40, 1);
    7222            1 :                         if (integer_zerop (_q51))
    7223              :                           {
    7224            1 :                             if (integer_onep (_q21))
    7225              :                               {
    7226            1 :                                 {
    7227            1 :                                   tree _p1_pops[1];
    7228            1 :                                   if (tree_nop_convert (_p1, _p1_pops))
    7229              :                                     {
    7230            1 :                                       tree _q90 = _p1_pops[0];
    7231            1 :                                       if ((_q90 == _q50 && ! TREE_SIDE_EFFECTS (_q90)) || (operand_equal_p (_q90, _q50, 0) && types_match (_q90, _q50)))
    7232              :                                         {
    7233            1 :                                           {
    7234            1 :                                             tree captures[1] ATTRIBUTE_UNUSED = { _q50 };
    7235            1 :                                             tree res = generic_simplify_189 (loc, type, _p0, _p1, captures);
    7236            1 :                                             if (res) return res;
    7237              :                                           }
    7238              :                                         }
    7239              :                                     }
    7240              :                                 }
    7241            0 :                                 if ((_p1 == _q50 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q50, 0) && types_match (_p1, _q50)))
    7242              :                                   {
    7243            0 :                                     {
    7244            0 :                                       tree captures[1] ATTRIBUTE_UNUSED = { _q50 };
    7245            0 :                                       tree res = generic_simplify_189 (loc, type, _p0, _p1, captures);
    7246            0 :                                       if (res) return res;
    7247              :                                     }
    7248              :                                   }
    7249              :                               }
    7250              :                           }
    7251              :                         break;
    7252              :                       }
    7253              :                     default:;
    7254              :                     }
    7255              :                   break;
    7256              :                 }
    7257              :               default:;
    7258              :               }
    7259              :           }
    7260              :       }
    7261          297 :         break;
    7262              :       }
    7263     67975138 :     default:;
    7264              :     }
    7265     67975138 :   switch (TREE_CODE (_p1))
    7266              :     {
    7267            1 :     case BIT_IOR_EXPR:
    7268            1 :       {
    7269            1 :         tree _q30 = TREE_OPERAND (_p1, 0);
    7270            1 :         tree _q31 = TREE_OPERAND (_p1, 1);
    7271            1 :         switch (TREE_CODE (_q30))
    7272              :           {
    7273            0 :           case NEGATE_EXPR:
    7274            0 :             {
    7275            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    7276            0 :               switch (TREE_CODE (_q40))
    7277              :                 {
    7278            0 :                 CASE_CONVERT:
    7279            0 :                   {
    7280            0 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    7281            0 :                     switch (TREE_CODE (_q50))
    7282              :                       {
    7283            0 :                       case LT_EXPR:
    7284            0 :                         {
    7285            0 :                           tree _q60 = TREE_OPERAND (_q50, 0);
    7286            0 :                           tree _q61 = TREE_OPERAND (_q50, 1);
    7287            0 :                           if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
    7288              :                             {
    7289            0 :                               if (integer_zerop (_q61))
    7290              :                                 {
    7291            0 :                                   if (integer_onep (_q31))
    7292              :                                     {
    7293            0 :                                       {
    7294            0 :                                         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    7295            0 :                                         tree res = generic_simplify_190 (loc, type, _p0, _p1, captures);
    7296            0 :                                         if (res) return res;
    7297              :                                       }
    7298              :                                     }
    7299              :                                 }
    7300              :                             }
    7301              :                           break;
    7302              :                         }
    7303              :                       default:;
    7304              :                       }
    7305              :                     break;
    7306              :                   }
    7307            0 :                 case LT_EXPR:
    7308            0 :                   {
    7309            0 :                     tree _q50 = TREE_OPERAND (_q40, 0);
    7310            0 :                     tree _q51 = TREE_OPERAND (_q40, 1);
    7311            0 :                     if ((_q50 == _p0 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _p0, 0) && types_match (_q50, _p0)))
    7312              :                       {
    7313            0 :                         if (integer_zerop (_q51))
    7314              :                           {
    7315            0 :                             if (integer_onep (_q31))
    7316              :                               {
    7317            0 :                                 {
    7318            0 :                                   tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    7319            0 :                                   tree res = generic_simplify_190 (loc, type, _p0, _p1, captures);
    7320            0 :                                   if (res) return res;
    7321              :                                 }
    7322              :                               }
    7323              :                           }
    7324              :                       }
    7325              :                     break;
    7326              :                   }
    7327              :                 default:;
    7328              :                 }
    7329              :               break;
    7330              :             }
    7331            1 :           default:;
    7332              :           }
    7333            1 :       {
    7334            1 :         tree _q30_pops[1];
    7335            1 :         if (tree_nop_convert (_q30, _q30_pops))
    7336              :           {
    7337            0 :             tree _q40 = _q30_pops[0];
    7338            0 :             switch (TREE_CODE (_q40))
    7339              :               {
    7340            0 :               case NEGATE_EXPR:
    7341            0 :                 {
    7342            0 :                   tree _q50 = TREE_OPERAND (_q40, 0);
    7343            0 :                   switch (TREE_CODE (_q50))
    7344              :                     {
    7345            0 :                     CASE_CONVERT:
    7346            0 :                       {
    7347            0 :                         tree _q60 = TREE_OPERAND (_q50, 0);
    7348            0 :                         switch (TREE_CODE (_q60))
    7349              :                           {
    7350            0 :                           case LT_EXPR:
    7351            0 :                             {
    7352            0 :                               tree _q70 = TREE_OPERAND (_q60, 0);
    7353            0 :                               tree _q71 = TREE_OPERAND (_q60, 1);
    7354            0 :                               if ((_q70 == _p0 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p0, 0) && types_match (_q70, _p0)))
    7355              :                                 {
    7356            0 :                                   if (integer_zerop (_q71))
    7357              :                                     {
    7358            0 :                                       if (integer_onep (_q31))
    7359              :                                         {
    7360            0 :                                           {
    7361            0 :                                             tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    7362            0 :                                             tree res = generic_simplify_190 (loc, type, _p0, _p1, captures);
    7363            0 :                                             if (res) return res;
    7364              :                                           }
    7365              :                                         }
    7366              :                                     }
    7367              :                                 }
    7368              :                               break;
    7369              :                             }
    7370              :                           default:;
    7371              :                           }
    7372              :                         break;
    7373              :                       }
    7374            0 :                     case LT_EXPR:
    7375            0 :                       {
    7376            0 :                         tree _q60 = TREE_OPERAND (_q50, 0);
    7377            0 :                         tree _q61 = TREE_OPERAND (_q50, 1);
    7378            0 :                         if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
    7379              :                           {
    7380            0 :                             if (integer_zerop (_q61))
    7381              :                               {
    7382            0 :                                 if (integer_onep (_q31))
    7383              :                                   {
    7384            0 :                                     {
    7385            0 :                                       tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    7386            0 :                                       tree res = generic_simplify_190 (loc, type, _p0, _p1, captures);
    7387            0 :                                       if (res) return res;
    7388              :                                     }
    7389              :                                   }
    7390              :                               }
    7391              :                           }
    7392              :                         break;
    7393              :                       }
    7394              :                     default:;
    7395              :                     }
    7396              :                   break;
    7397              :                 }
    7398              :               default:;
    7399              :               }
    7400              :           }
    7401              :       }
    7402            1 :         break;
    7403              :       }
    7404     67975138 :     default:;
    7405              :     }
    7406     67975138 : {
    7407     67975138 :   tree _p1_pops[1];
    7408     67975138 :   if (tree_nop_convert (_p1, _p1_pops))
    7409              :     {
    7410      7287472 :       tree _q30 = _p1_pops[0];
    7411      7287472 :       switch (TREE_CODE (_q30))
    7412              :         {
    7413            0 :         case BIT_IOR_EXPR:
    7414            0 :           {
    7415            0 :             tree _q40 = TREE_OPERAND (_q30, 0);
    7416            0 :             tree _q41 = TREE_OPERAND (_q30, 1);
    7417            0 :             switch (TREE_CODE (_q40))
    7418              :               {
    7419            0 :               case NEGATE_EXPR:
    7420            0 :                 {
    7421            0 :                   tree _q50 = TREE_OPERAND (_q40, 0);
    7422            0 :                   switch (TREE_CODE (_q50))
    7423              :                     {
    7424            0 :                     case LT_EXPR:
    7425            0 :                       {
    7426            0 :                         tree _q60 = TREE_OPERAND (_q50, 0);
    7427            0 :                         tree _q61 = TREE_OPERAND (_q50, 1);
    7428            0 :                         if ((_q60 == _p0 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _p0, 0) && types_match (_q60, _p0)))
    7429              :                           {
    7430            0 :                             if (integer_zerop (_q61))
    7431              :                               {
    7432            0 :                                 if (integer_onep (_q41))
    7433              :                                   {
    7434            0 :                                     {
    7435            0 :                                       tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    7436            0 :                                       tree res = generic_simplify_190 (loc, type, _p0, _p1, captures);
    7437            0 :                                       if (res) return res;
    7438              :                                     }
    7439              :                                   }
    7440              :                               }
    7441              :                           }
    7442              :                         break;
    7443              :                       }
    7444              :                     default:;
    7445              :                     }
    7446              :                   break;
    7447              :                 }
    7448            0 :               default:;
    7449              :               }
    7450            0 :           {
    7451            0 :             tree _q40_pops[1];
    7452            0 :             if (tree_nop_convert (_q40, _q40_pops))
    7453              :               {
    7454            0 :                 tree _q50 = _q40_pops[0];
    7455            0 :                 switch (TREE_CODE (_q50))
    7456              :                   {
    7457            0 :                   case NEGATE_EXPR:
    7458            0 :                     {
    7459            0 :                       tree _q60 = TREE_OPERAND (_q50, 0);
    7460            0 :                       switch (TREE_CODE (_q60))
    7461              :                         {
    7462            0 :                         case LT_EXPR:
    7463            0 :                           {
    7464            0 :                             tree _q70 = TREE_OPERAND (_q60, 0);
    7465            0 :                             tree _q71 = TREE_OPERAND (_q60, 1);
    7466            0 :                             if ((_q70 == _p0 && ! TREE_SIDE_EFFECTS (_q70)) || (operand_equal_p (_q70, _p0, 0) && types_match (_q70, _p0)))
    7467              :                               {
    7468            0 :                                 if (integer_zerop (_q71))
    7469              :                                   {
    7470            0 :                                     if (integer_onep (_q41))
    7471              :                                       {
    7472            0 :                                         {
    7473            0 :                                           tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    7474            0 :                                           tree res = generic_simplify_190 (loc, type, _p0, _p1, captures);
    7475            0 :                                           if (res) return res;
    7476              :                                         }
    7477              :                                       }
    7478              :                                   }
    7479              :                               }
    7480              :                             break;
    7481              :                           }
    7482              :                         default:;
    7483              :                         }
    7484              :                       break;
    7485              :                     }
    7486              :                   default:;
    7487              :                   }
    7488              :               }
    7489              :           }
    7490            0 :             break;
    7491              :           }
    7492              :         default:;
    7493              :         }
    7494              :     }
    7495              : }
    7496     67975138 :   switch (TREE_CODE (_p0))
    7497              :     {
    7498     32367781 :     CASE_CONVERT:
    7499     32367781 :       {
    7500     32367781 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7501     32367781 :         switch (TREE_CODE (_q20))
    7502              :           {
    7503         6285 :           case NEGATE_EXPR:
    7504         6285 :             {
    7505         6285 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7506         6285 :               switch (TREE_CODE (_p1))
    7507              :                 {
    7508          465 :                 CASE_CONVERT:
    7509          465 :                   {
    7510          465 :                     tree _q50 = TREE_OPERAND (_p1, 0);
    7511          465 :                     if (tree_negate_expr_p (_q50))
    7512              :                       {
    7513            0 :                         {
    7514            0 :                           tree captures[2] ATTRIBUTE_UNUSED = { _q30, _q50 };
    7515            0 :                           tree res = generic_simplify_191 (loc, type, _p0, _p1, captures);
    7516            0 :                           if (res) return res;
    7517              :                         }
    7518              :                       }
    7519              :                     break;
    7520              :                   }
    7521         6285 :                 default:;
    7522              :                 }
    7523         6285 :             if (tree_negate_expr_p (_p1))
    7524              :               {
    7525         3463 :                 {
    7526         3463 :                   tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p1 };
    7527         3463 :                   tree res = generic_simplify_191 (loc, type, _p0, _p1, captures);
    7528         3463 :                   if (res) return res;
    7529              :                 }
    7530              :               }
    7531              :               break;
    7532              :             }
    7533            4 :           case LT_EXPR:
    7534            4 :             {
    7535            4 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7536            4 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7537            4 :               {
    7538            4 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1 };
    7539            4 :                 tree res = generic_simplify_192 (loc, type, _p0, _p1, captures, LT_EXPR);
    7540            4 :                 if (res) return res;
    7541              :               }
    7542            4 :               break;
    7543              :             }
    7544            6 :           case LE_EXPR:
    7545            6 :             {
    7546            6 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7547            6 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7548            6 :               {
    7549            6 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1 };
    7550            6 :                 tree res = generic_simplify_192 (loc, type, _p0, _p1, captures, LE_EXPR);
    7551            6 :                 if (res) return res;
    7552              :               }
    7553            6 :               break;
    7554              :             }
    7555            1 :           case EQ_EXPR:
    7556            1 :             {
    7557            1 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7558            1 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7559            1 :               {
    7560            1 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1 };
    7561            1 :                 tree res = generic_simplify_192 (loc, type, _p0, _p1, captures, EQ_EXPR);
    7562            1 :                 if (res) return res;
    7563              :               }
    7564            1 :               break;
    7565              :             }
    7566         1157 :           case NE_EXPR:
    7567         1157 :             {
    7568         1157 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7569         1157 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7570         1157 :               {
    7571         1157 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1 };
    7572         1157 :                 tree res = generic_simplify_192 (loc, type, _p0, _p1, captures, NE_EXPR);
    7573         1157 :                 if (res) return res;
    7574              :               }
    7575         1157 :               break;
    7576              :             }
    7577           19 :           case GE_EXPR:
    7578           19 :             {
    7579           19 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7580           19 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7581           19 :               {
    7582           19 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1 };
    7583           19 :                 tree res = generic_simplify_192 (loc, type, _p0, _p1, captures, GE_EXPR);
    7584           19 :                 if (res) return res;
    7585              :               }
    7586           19 :               break;
    7587              :             }
    7588           19 :           case GT_EXPR:
    7589           19 :             {
    7590           19 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7591           19 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7592           19 :               {
    7593           19 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1 };
    7594           19 :                 tree res = generic_simplify_192 (loc, type, _p0, _p1, captures, GT_EXPR);
    7595           19 :                 if (res) return res;
    7596              :               }
    7597           19 :               break;
    7598              :             }
    7599            0 :           case UNORDERED_EXPR:
    7600            0 :             {
    7601            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7602            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7603            0 :               {
    7604            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1 };
    7605            0 :                 tree res = generic_simplify_192 (loc, type, _p0, _p1, captures, UNORDERED_EXPR);
    7606            0 :                 if (res) return res;
    7607              :               }
    7608            0 :               break;
    7609              :             }
    7610            0 :           case ORDERED_EXPR:
    7611            0 :             {
    7612            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7613            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7614            0 :               {
    7615            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1 };
    7616            0 :                 tree res = generic_simplify_192 (loc, type, _p0, _p1, captures, ORDERED_EXPR);
    7617            0 :                 if (res) return res;
    7618              :               }
    7619            0 :               break;
    7620              :             }
    7621            0 :           case UNLT_EXPR:
    7622            0 :             {
    7623            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7624            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7625            0 :               {
    7626            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1 };
    7627            0 :                 tree res = generic_simplify_192 (loc, type, _p0, _p1, captures, UNLT_EXPR);
    7628            0 :                 if (res) return res;
    7629              :               }
    7630            0 :               break;
    7631              :             }
    7632            0 :           case UNLE_EXPR:
    7633            0 :             {
    7634            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7635            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7636            0 :               {
    7637            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1 };
    7638            0 :                 tree res = generic_simplify_192 (loc, type, _p0, _p1, captures, UNLE_EXPR);
    7639            0 :                 if (res) return res;
    7640              :               }
    7641            0 :               break;
    7642              :             }
    7643            0 :           case UNGT_EXPR:
    7644            0 :             {
    7645            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7646            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7647            0 :               {
    7648            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1 };
    7649            0 :                 tree res = generic_simplify_192 (loc, type, _p0, _p1, captures, UNGT_EXPR);
    7650            0 :                 if (res) return res;
    7651              :               }
    7652            0 :               break;
    7653              :             }
    7654            0 :           case UNGE_EXPR:
    7655            0 :             {
    7656            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7657            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7658            0 :               {
    7659            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1 };
    7660            0 :                 tree res = generic_simplify_192 (loc, type, _p0, _p1, captures, UNGE_EXPR);
    7661            0 :                 if (res) return res;
    7662              :               }
    7663            0 :               break;
    7664              :             }
    7665            0 :           case UNEQ_EXPR:
    7666            0 :             {
    7667            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7668            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7669            0 :               {
    7670            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1 };
    7671            0 :                 tree res = generic_simplify_192 (loc, type, _p0, _p1, captures, UNEQ_EXPR);
    7672            0 :                 if (res) return res;
    7673              :               }
    7674            0 :               break;
    7675              :             }
    7676            0 :           case LTGT_EXPR:
    7677            0 :             {
    7678            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    7679            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    7680            0 :               {
    7681            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q30, _q31, _p1 };
    7682            0 :                 tree res = generic_simplify_192 (loc, type, _p0, _p1, captures, LTGT_EXPR);
    7683            0 :                 if (res) return res;
    7684              :               }
    7685            0 :               break;
    7686              :             }
    7687     32366957 :           default:;
    7688              :           }
    7689     32366957 :       if (tree_negate_expr_p (_q20))
    7690              :         {
    7691        21925 :           switch (TREE_CODE (_p1))
    7692              :             {
    7693         2634 :             CASE_CONVERT:
    7694         2634 :               {
    7695         2634 :                 tree _q40 = TREE_OPERAND (_p1, 0);
    7696         2634 :                 switch (TREE_CODE (_q40))
    7697              :                   {
    7698            0 :                   case NEGATE_EXPR:
    7699            0 :                     {
    7700            0 :                       tree _q50 = TREE_OPERAND (_q40, 0);
    7701            0 :                       {
    7702            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q50, _q20 };
    7703            0 :                         tree res = generic_simplify_191 (loc, type, _p0, _p1, captures);
    7704            0 :                         if (res) return res;
    7705              :                       }
    7706            0 :                       break;
    7707              :                     }
    7708              :                   default:;
    7709              :                   }
    7710              :                 break;
    7711              :               }
    7712            6 :             case NEGATE_EXPR:
    7713            6 :               {
    7714            6 :                 tree _q40 = TREE_OPERAND (_p1, 0);
    7715            6 :                 {
    7716            6 :                   tree captures[2] ATTRIBUTE_UNUSED = { _q40, _q20 };
    7717            6 :                   tree res = generic_simplify_191 (loc, type, _p0, _p1, captures);
    7718            6 :                   if (res) return res;
    7719              :                 }
    7720            0 :                 break;
    7721              :               }
    7722              :             default:;
    7723              :             }
    7724              :         }
    7725              :         break;
    7726              :       }
    7727       441337 :     case NEGATE_EXPR:
    7728       441337 :       {
    7729       441337 :         tree _q20 = TREE_OPERAND (_p0, 0);
    7730       441337 :         switch (TREE_CODE (_p1))
    7731              :           {
    7732       155474 :           CASE_CONVERT:
    7733       155474 :             {
    7734       155474 :               tree _q40 = TREE_OPERAND (_p1, 0);
    7735       155474 :               if (tree_negate_expr_p (_q40))
    7736              :                 {
    7737            0 :                   {
    7738            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q40 };
    7739            0 :                     tree res = generic_simplify_191 (loc, type, _p0, _p1, captures);
    7740            0 :                     if (res) return res;
    7741              :                   }
    7742              :                 }
    7743              :               break;
    7744              :             }
    7745       441337 :           default:;
    7746              :           }
    7747       441337 :       if (tree_negate_expr_p (_p1))
    7748              :         {
    7749        34027 :           {
    7750        34027 :             tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    7751        34027 :             tree res = generic_simplify_191 (loc, type, _p0, _p1, captures);
    7752        34027 :             if (res) return res;
    7753              :           }
    7754              :         }
    7755       407310 :         if (tree_zero_one_valued_p (_q20))
    7756              :           {
    7757          529 :             if (tree_zero_one_valued_p (_p1))
    7758              :               {
    7759          521 :                 {
    7760          521 :                   tree captures[2] ATTRIBUTE_UNUSED = { _q20, _p1 };
    7761          521 :                   tree res = generic_simplify_193 (loc, type, _p0, _p1, captures);
    7762          521 :                   if (res) return res;
    7763              :                 }
    7764              :               }
    7765              :           }
    7766              :         break;
    7767              :       }
    7768     67939760 :     default:;
    7769              :     }
    7770     67939760 : if (tree_negate_expr_p (_p0))
    7771              :   {
    7772       717447 :     switch (TREE_CODE (_p1))
    7773              :       {
    7774       160145 :       CASE_CONVERT:
    7775       160145 :         {
    7776       160145 :           tree _q30 = TREE_OPERAND (_p1, 0);
    7777       160145 :           switch (TREE_CODE (_q30))
    7778              :             {
    7779            0 :             case NEGATE_EXPR:
    7780            0 :               {
    7781            0 :                 tree _q40 = TREE_OPERAND (_q30, 0);
    7782            0 :                 {
    7783            0 :                   tree captures[2] ATTRIBUTE_UNUSED = { _q40, _p0 };
    7784            0 :                   tree res = generic_simplify_191 (loc, type, _p0, _p1, captures);
    7785            0 :                   if (res) return res;
    7786              :                 }
    7787            0 :                 break;
    7788              :               }
    7789              :             default:;
    7790              :             }
    7791              :           break;
    7792              :         }
    7793            6 :       case NEGATE_EXPR:
    7794            6 :         {
    7795            6 :           tree _q30 = TREE_OPERAND (_p1, 0);
    7796            6 :           {
    7797            6 :             tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
    7798            6 :             tree res = generic_simplify_191 (loc, type, _p0, _p1, captures);
    7799            6 :             if (res) return res;
    7800              :           }
    7801            0 :           break;
    7802              :         }
    7803              :       default:;
    7804              :       }
    7805              :   }
    7806     67939754 : if (tree_zero_one_valued_p (_p0))
    7807              :   {
    7808       187996 :     switch (TREE_CODE (_p1))
    7809              :       {
    7810           24 :       case NEGATE_EXPR:
    7811           24 :         {
    7812           24 :           tree _q30 = TREE_OPERAND (_p1, 0);
    7813           24 :           if (tree_zero_one_valued_p (_q30))
    7814              :             {
    7815           24 :               {
    7816           24 :                 tree captures[2] ATTRIBUTE_UNUSED = { _q30, _p0 };
    7817           24 :                 tree res = generic_simplify_193 (loc, type, _p0, _p1, captures);
    7818           24 :                 if (res) return res;
    7819              :               }
    7820              :             }
    7821              :           break;
    7822              :         }
    7823       187972 :       default:;
    7824              :       }
    7825       187972 :   if (tree_zero_one_valued_p (_p1))
    7826              :     {
    7827        13034 :       {
    7828        13034 :         tree captures[2] ATTRIBUTE_UNUSED = { _p0, _p1 };
    7829        13034 :         if (INTEGRAL_TYPE_P (type)
    7830              : )
    7831              :           {
    7832        13034 :             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1434;
    7833        13034 :             {
    7834        13034 :               tree res_op0;
    7835        13034 :               res_op0 = captures[0];
    7836        13034 :               tree res_op1;
    7837        13034 :               res_op1 = captures[1];
    7838        13034 :               tree _r;
    7839        13034 :               _r = fold_build2_loc (loc, BIT_AND_EXPR, type, res_op0, res_op1);
    7840        13034 :               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 981, __FILE__, __LINE__, true);
    7841        13034 :               return _r;
    7842              :             }
    7843            0 : next_after_fail1434:;
    7844              :           }
    7845              :       }
    7846              :     }
    7847              :   }
    7848     67926696 :   switch (TREE_CODE (_p1))
    7849              :     {
    7850      7370789 :     CASE_CONVERT:
    7851      7370789 :       {
    7852      7370789 :         tree _q30 = TREE_OPERAND (_p1, 0);
    7853      7370789 :         switch (TREE_CODE (_q30))
    7854              :           {
    7855            0 :           case LT_EXPR:
    7856            0 :             {
    7857            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    7858            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    7859            0 :               {
    7860            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p0 };
    7861            0 :                 tree res = generic_simplify_194 (loc, type, _p0, _p1, captures, LT_EXPR);
    7862            0 :                 if (res) return res;
    7863              :               }
    7864            0 :               break;
    7865              :             }
    7866            0 :           case LE_EXPR:
    7867            0 :             {
    7868            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    7869            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    7870            0 :               {
    7871            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p0 };
    7872            0 :                 tree res = generic_simplify_194 (loc, type, _p0, _p1, captures, LE_EXPR);
    7873            0 :                 if (res) return res;
    7874              :               }
    7875            0 :               break;
    7876              :             }
    7877            0 :           case EQ_EXPR:
    7878            0 :             {
    7879            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    7880            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    7881            0 :               {
    7882            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p0 };
    7883            0 :                 tree res = generic_simplify_194 (loc, type, _p0, _p1, captures, EQ_EXPR);
    7884            0 :                 if (res) return res;
    7885              :               }
    7886            0 :               break;
    7887              :             }
    7888            0 :           case NE_EXPR:
    7889            0 :             {
    7890            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    7891            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    7892            0 :               {
    7893            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p0 };
    7894            0 :                 tree res = generic_simplify_194 (loc, type, _p0, _p1, captures, NE_EXPR);
    7895            0 :                 if (res) return res;
    7896              :               }
    7897            0 :               break;
    7898              :             }
    7899            0 :           case GE_EXPR:
    7900            0 :             {
    7901            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    7902            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    7903            0 :               {
    7904            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p0 };
    7905            0 :                 tree res = generic_simplify_194 (loc, type, _p0, _p1, captures, GE_EXPR);
    7906            0 :                 if (res) return res;
    7907              :               }
    7908            0 :               break;
    7909              :             }
    7910            0 :           case GT_EXPR:
    7911            0 :             {
    7912            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    7913            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    7914            0 :               {
    7915            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p0 };
    7916            0 :                 tree res = generic_simplify_194 (loc, type, _p0, _p1, captures, GT_EXPR);
    7917            0 :                 if (res) return res;
    7918              :               }
    7919            0 :               break;
    7920              :             }
    7921            0 :           case UNORDERED_EXPR:
    7922            0 :             {
    7923            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    7924            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    7925            0 :               {
    7926            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p0 };
    7927            0 :                 tree res = generic_simplify_194 (loc, type, _p0, _p1, captures, UNORDERED_EXPR);
    7928            0 :                 if (res) return res;
    7929              :               }
    7930            0 :               break;
    7931              :             }
    7932            0 :           case ORDERED_EXPR:
    7933            0 :             {
    7934            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    7935            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    7936            0 :               {
    7937            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p0 };
    7938            0 :                 tree res = generic_simplify_194 (loc, type, _p0, _p1, captures, ORDERED_EXPR);
    7939            0 :                 if (res) return res;
    7940              :               }
    7941            0 :               break;
    7942              :             }
    7943            0 :           case UNLT_EXPR:
    7944            0 :             {
    7945            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    7946            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    7947            0 :               {
    7948            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p0 };
    7949            0 :                 tree res = generic_simplify_194 (loc, type, _p0, _p1, captures, UNLT_EXPR);
    7950            0 :                 if (res) return res;
    7951              :               }
    7952            0 :               break;
    7953              :             }
    7954            0 :           case UNLE_EXPR:
    7955            0 :             {
    7956            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    7957            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    7958            0 :               {
    7959            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p0 };
    7960            0 :                 tree res = generic_simplify_194 (loc, type, _p0, _p1, captures, UNLE_EXPR);
    7961            0 :                 if (res) return res;
    7962              :               }
    7963            0 :               break;
    7964              :             }
    7965            0 :           case UNGT_EXPR:
    7966            0 :             {
    7967            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    7968            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    7969            0 :               {
    7970            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p0 };
    7971            0 :                 tree res = generic_simplify_194 (loc, type, _p0, _p1, captures, UNGT_EXPR);
    7972            0 :                 if (res) return res;
    7973              :               }
    7974            0 :               break;
    7975              :             }
    7976            0 :           case UNGE_EXPR:
    7977            0 :             {
    7978            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    7979            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    7980            0 :               {
    7981            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p0 };
    7982            0 :                 tree res = generic_simplify_194 (loc, type, _p0, _p1, captures, UNGE_EXPR);
    7983            0 :                 if (res) return res;
    7984              :               }
    7985            0 :               break;
    7986              :             }
    7987            0 :           case UNEQ_EXPR:
    7988            0 :             {
    7989            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    7990            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    7991            0 :               {
    7992            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p0 };
    7993            0 :                 tree res = generic_simplify_194 (loc, type, _p0, _p1, captures, UNEQ_EXPR);
    7994            0 :                 if (res) return res;
    7995              :               }
    7996            0 :               break;
    7997              :             }
    7998            0 :           case LTGT_EXPR:
    7999            0 :             {
    8000            0 :               tree _q40 = TREE_OPERAND (_q30, 0);
    8001            0 :               tree _q41 = TREE_OPERAND (_q30, 1);
    8002            0 :               {
    8003            0 :                 tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q40, _q41, _p0 };
    8004            0 :                 tree res = generic_simplify_194 (loc, type, _p0, _p1, captures, LTGT_EXPR);
    8005            0 :                 if (res) return res;
    8006              :               }
    8007            0 :               break;
    8008              :             }
    8009              :           default:;
    8010              :           }
    8011              :         break;
    8012              :       }
    8013     67926696 :     default:;
    8014              :     }
    8015     67926696 :   switch (TREE_CODE (_p0))
    8016              :     {
    8017            3 :     case MIN_EXPR:
    8018            3 :       {
    8019            3 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8020            3 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8021            3 :         switch (TREE_CODE (_p1))
    8022              :           {
    8023            0 :           case MAX_EXPR:
    8024            0 :             {
    8025            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    8026            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    8027            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    8028              :                 {
    8029            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    8030              :                     {
    8031            0 :                       {
    8032            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    8033            0 :                         if (!HONOR_NANS (captures[0])
    8034              : )
    8035              :                           {
    8036            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1435;
    8037            0 :                             {
    8038            0 :                               tree res_op0;
    8039            0 :                               res_op0 = captures[0];
    8040            0 :                               tree res_op1;
    8041            0 :                               res_op1 = captures[1];
    8042            0 :                               tree _r;
    8043            0 :                               _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    8044            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
    8045            0 :                               return _r;
    8046              :                             }
    8047            0 : next_after_fail1435:;
    8048              :                           }
    8049              :                       }
    8050              :                     }
    8051              :                 }
    8052            0 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    8053              :                 {
    8054            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    8055              :                     {
    8056            0 :                       {
    8057            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q21, _q20 };
    8058            0 :                         if (!HONOR_NANS (captures[0])
    8059              : )
    8060              :                           {
    8061            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1436;
    8062            0 :                             {
    8063            0 :                               tree res_op0;
    8064            0 :                               res_op0 = captures[0];
    8065            0 :                               tree res_op1;
    8066            0 :                               res_op1 = captures[1];
    8067            0 :                               tree _r;
    8068            0 :                               _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    8069            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
    8070            0 :                               return _r;
    8071              :                             }
    8072            0 : next_after_fail1436:;
    8073              :                           }
    8074              :                       }
    8075              :                     }
    8076              :                 }
    8077              :               break;
    8078              :             }
    8079              :           default:;
    8080              :           }
    8081              :         break;
    8082              :       }
    8083          146 :     case MAX_EXPR:
    8084          146 :       {
    8085          146 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8086          146 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8087          146 :         switch (TREE_CODE (_p1))
    8088              :           {
    8089            0 :           case MIN_EXPR:
    8090            0 :             {
    8091            0 :               tree _q50 = TREE_OPERAND (_p1, 0);
    8092            0 :               tree _q51 = TREE_OPERAND (_p1, 1);
    8093            0 :               if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
    8094              :                 {
    8095            0 :                   if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
    8096              :                     {
    8097            0 :                       {
    8098            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    8099            0 :                         if (!HONOR_NANS (captures[0])
    8100              : )
    8101              :                           {
    8102            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1437;
    8103            0 :                             {
    8104            0 :                               tree res_op0;
    8105            0 :                               res_op0 = captures[0];
    8106            0 :                               tree res_op1;
    8107            0 :                               res_op1 = captures[1];
    8108            0 :                               tree _r;
    8109            0 :                               _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    8110            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
    8111            0 :                               return _r;
    8112              :                             }
    8113            0 : next_after_fail1437:;
    8114              :                           }
    8115              :                       }
    8116              :                     }
    8117              :                 }
    8118            0 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q21, 0) && types_match (_q50, _q21)))
    8119              :                 {
    8120            0 :                   if ((_q51 == _q20 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q20, 0) && types_match (_q51, _q20)))
    8121              :                     {
    8122            0 :                       {
    8123            0 :                         tree captures[2] ATTRIBUTE_UNUSED = { _q20, _q21 };
    8124            0 :                         if (!HONOR_NANS (captures[0])
    8125              : )
    8126              :                           {
    8127            0 :                             if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1438;
    8128            0 :                             {
    8129            0 :                               tree res_op0;
    8130            0 :                               res_op0 = captures[0];
    8131            0 :                               tree res_op1;
    8132            0 :                               res_op1 = captures[1];
    8133            0 :                               tree _r;
    8134            0 :                               _r = fold_build2_loc (loc, MULT_EXPR, type, res_op0, res_op1);
    8135            0 :                               if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 897, __FILE__, __LINE__, true);
    8136            0 :                               return _r;
    8137              :                             }
    8138            0 : next_after_fail1438:;
    8139              :                           }
    8140              :                       }
    8141              :                     }
    8142              :                 }
    8143              :               break;
    8144              :             }
    8145              :           default:;
    8146              :           }
    8147              :         break;
    8148              :       }
    8149     32353920 :     CASE_CONVERT:
    8150     32353920 :       {
    8151     32353920 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8152     32353920 :         switch (TREE_CODE (_q20))
    8153              :           {
    8154           82 :           case BIT_AND_EXPR:
    8155           82 :             {
    8156           82 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8157           82 :               tree _q31 = TREE_OPERAND (_q20, 1);
    8158           82 :               switch (TREE_CODE (_q30))
    8159              :                 {
    8160            0 :                 CASE_CONVERT:
    8161            0 :                   {
    8162            0 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    8163            0 :                     switch (TREE_CODE (_q40))
    8164              :                       {
    8165            0 :                       case RSHIFT_EXPR:
    8166            0 :                         {
    8167            0 :                           tree _q50 = TREE_OPERAND (_q40, 0);
    8168            0 :                           tree _q51 = TREE_OPERAND (_q40, 1);
    8169            0 :                           switch (TREE_CODE (_q51))
    8170              :                             {
    8171            0 :                             case INTEGER_CST:
    8172            0 :                               {
    8173            0 :                                 switch (TREE_CODE (_q31))
    8174              :                                   {
    8175            0 :                                   case INTEGER_CST:
    8176            0 :                                     {
    8177            0 :                                       switch (TREE_CODE (_p1))
    8178              :                                         {
    8179            0 :                                         case INTEGER_CST:
    8180            0 :                                           {
    8181            0 :                                             {
    8182            0 :                                               tree captures[4] ATTRIBUTE_UNUSED = { _q50, _q51, _q31, _p1 };
    8183            0 :                                               tree res = generic_simplify_195 (loc, type, _p0, _p1, captures);
    8184            0 :                                               if (res) return res;
    8185              :                                             }
    8186            0 :                                             break;
    8187              :                                           }
    8188              :                                         default:;
    8189              :                                         }
    8190              :                                       break;
    8191              :                                     }
    8192              :                                   default:;
    8193              :                                   }
    8194              :                                 break;
    8195              :                               }
    8196              :                             default:;
    8197              :                             }
    8198              :                           break;
    8199              :                         }
    8200              :                       default:;
    8201              :                       }
    8202              :                     break;
    8203              :                   }
    8204              :                 default:;
    8205              :                 }
    8206              :               break;
    8207              :             }
    8208        31498 :           case EXACT_DIV_EXPR:
    8209        31498 :             {
    8210        31498 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8211        31498 :               tree _q31 = TREE_OPERAND (_q20, 1);
    8212        31498 :               switch (TREE_CODE (_p1))
    8213              :                 {
    8214            0 :                 CASE_CONVERT:
    8215            0 :                   {
    8216            0 :                     tree _q60 = TREE_OPERAND (_p1, 0);
    8217            0 :                     if ((_q60 == _q31 && ! TREE_SIDE_EFFECTS (_q60)) || operand_equal_p (_q60, _q31, 0))
    8218              :                       {
    8219            0 :                         {
    8220            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q31 };
    8221            0 :                           tree res = generic_simplify_196 (loc, type, _p0, _p1, captures);
    8222            0 :                           if (res) return res;
    8223              :                         }
    8224              :                       }
    8225              :                     break;
    8226              :                   }
    8227        31498 :                 default:;
    8228              :                 }
    8229        31498 :               if ((_p1 == _q31 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q31, 0))
    8230              :                 {
    8231        21357 :                   {
    8232        21357 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _q31 };
    8233        21357 :                     tree res = generic_simplify_196 (loc, type, _p0, _p1, captures);
    8234        21357 :                     if (res) return res;
    8235              :                   }
    8236              :                 }
    8237        10141 :               switch (TREE_CODE (_q31))
    8238              :                 {
    8239        10141 :                 case INTEGER_CST:
    8240        10141 :                   {
    8241        10141 :                     if (poly_int_tree_p (_p1))
    8242              :                       {
    8243        10141 :                         {
    8244        10141 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q30, _q31, _p1 };
    8245        10141 :                           tree res = generic_simplify_197 (loc, type, _p0, _p1, captures);
    8246        10141 :                           if (res) return res;
    8247              :                         }
    8248              :                       }
    8249              :                     break;
    8250              :                   }
    8251              :                 default:;
    8252              :                 }
    8253              :               break;
    8254              :             }
    8255      1389006 :           case PLUS_EXPR:
    8256      1389006 :             {
    8257      1389006 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8258      1389006 :               tree _q31 = TREE_OPERAND (_q20, 1);
    8259      1389006 :               switch (TREE_CODE (_q30))
    8260              :                 {
    8261       174100 :                 CASE_CONVERT:
    8262       174100 :                   {
    8263       174100 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    8264       174100 :                     switch (TREE_CODE (_q40))
    8265              :                       {
    8266            0 :                       case EXACT_DIV_EXPR:
    8267            0 :                         {
    8268            0 :                           tree _q50 = TREE_OPERAND (_q40, 0);
    8269            0 :                           tree _q51 = TREE_OPERAND (_q40, 1);
    8270            0 :                           switch (TREE_CODE (_q51))
    8271              :                             {
    8272            0 :                             case INTEGER_CST:
    8273            0 :                               {
    8274            0 :                                 if (poly_int_tree_p (_q31))
    8275              :                                   {
    8276            0 :                                     if (poly_int_tree_p (_p1))
    8277              :                                       {
    8278            0 :                                         {
    8279            0 :                                           tree captures[4] ATTRIBUTE_UNUSED = { _q50, _q51, _q31, _p1 };
    8280            0 :                                           tree res = generic_simplify_198 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    8281            0 :                                           if (res) return res;
    8282              :                                         }
    8283              :                                       }
    8284              :                                   }
    8285              :                                 break;
    8286              :                               }
    8287              :                             default:;
    8288              :                             }
    8289              :                           break;
    8290              :                         }
    8291              :                       default:;
    8292              :                       }
    8293              :                     break;
    8294              :                   }
    8295          112 :                 case EXACT_DIV_EXPR:
    8296          112 :                   {
    8297          112 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    8298          112 :                     tree _q41 = TREE_OPERAND (_q30, 1);
    8299          112 :                     switch (TREE_CODE (_q41))
    8300              :                       {
    8301          112 :                       case INTEGER_CST:
    8302          112 :                         {
    8303          112 :                           if (poly_int_tree_p (_q31))
    8304              :                             {
    8305          112 :                               if (poly_int_tree_p (_p1))
    8306              :                                 {
    8307          112 :                                   {
    8308          112 :                                     tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q41, _q31, _p1 };
    8309          112 :                                     tree res = generic_simplify_198 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    8310          112 :                                     if (res) return res;
    8311              :                                   }
    8312              :                                 }
    8313              :                             }
    8314              :                           break;
    8315              :                         }
    8316              :                       default:;
    8317              :                       }
    8318              :                     break;
    8319              :                   }
    8320              :                 default:;
    8321              :                 }
    8322              :               break;
    8323              :             }
    8324        98470 :           case MINUS_EXPR:
    8325        98470 :             {
    8326        98470 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8327        98470 :               tree _q31 = TREE_OPERAND (_q20, 1);
    8328        98470 :               switch (TREE_CODE (_q30))
    8329              :                 {
    8330        20969 :                 CASE_CONVERT:
    8331        20969 :                   {
    8332        20969 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    8333        20969 :                     switch (TREE_CODE (_q40))
    8334              :                       {
    8335            0 :                       case EXACT_DIV_EXPR:
    8336            0 :                         {
    8337            0 :                           tree _q50 = TREE_OPERAND (_q40, 0);
    8338            0 :                           tree _q51 = TREE_OPERAND (_q40, 1);
    8339            0 :                           switch (TREE_CODE (_q51))
    8340              :                             {
    8341            0 :                             case INTEGER_CST:
    8342            0 :                               {
    8343            0 :                                 if (poly_int_tree_p (_q31))
    8344              :                                   {
    8345            0 :                                     if (poly_int_tree_p (_p1))
    8346              :                                       {
    8347            0 :                                         {
    8348            0 :                                           tree captures[4] ATTRIBUTE_UNUSED = { _q50, _q51, _q31, _p1 };
    8349            0 :                                           tree res = generic_simplify_198 (loc, type, _p0, _p1, captures, MINUS_EXPR);
    8350            0 :                                           if (res) return res;
    8351              :                                         }
    8352              :                                       }
    8353              :                                   }
    8354              :                                 break;
    8355              :                               }
    8356              :                             default:;
    8357              :                             }
    8358              :                           break;
    8359              :                         }
    8360              :                       default:;
    8361              :                       }
    8362              :                     break;
    8363              :                   }
    8364            0 :                 case EXACT_DIV_EXPR:
    8365            0 :                   {
    8366            0 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    8367            0 :                     tree _q41 = TREE_OPERAND (_q30, 1);
    8368            0 :                     switch (TREE_CODE (_q41))
    8369              :                       {
    8370            0 :                       case INTEGER_CST:
    8371            0 :                         {
    8372            0 :                           if (poly_int_tree_p (_q31))
    8373              :                             {
    8374            0 :                               if (poly_int_tree_p (_p1))
    8375              :                                 {
    8376            0 :                                   {
    8377            0 :                                     tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q41, _q31, _p1 };
    8378            0 :                                     tree res = generic_simplify_198 (loc, type, _p0, _p1, captures, MINUS_EXPR);
    8379            0 :                                     if (res) return res;
    8380              :                                   }
    8381              :                                 }
    8382              :                             }
    8383              :                           break;
    8384              :                         }
    8385              :                       default:;
    8386              :                       }
    8387              :                     break;
    8388              :                   }
    8389              :                 default:;
    8390              :                 }
    8391              :               break;
    8392              :             }
    8393              :           default:;
    8394              :           }
    8395              :         break;
    8396              :       }
    8397        59425 :     case BIT_AND_EXPR:
    8398        59425 :       {
    8399        59425 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8400        59425 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8401        59425 :         switch (TREE_CODE (_q20))
    8402              :           {
    8403          275 :           case RSHIFT_EXPR:
    8404          275 :             {
    8405          275 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8406          275 :               tree _q31 = TREE_OPERAND (_q20, 1);
    8407          275 :               switch (TREE_CODE (_q31))
    8408              :                 {
    8409           14 :                 case INTEGER_CST:
    8410           14 :                   {
    8411           14 :                     switch (TREE_CODE (_q21))
    8412              :                       {
    8413           14 :                       case INTEGER_CST:
    8414           14 :                         {
    8415           14 :                           switch (TREE_CODE (_p1))
    8416              :                             {
    8417           14 :                             case INTEGER_CST:
    8418           14 :                               {
    8419           14 :                                 {
    8420           14 :                                   tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q21, _p1 };
    8421           14 :                                   tree res = generic_simplify_195 (loc, type, _p0, _p1, captures);
    8422           14 :                                   if (res) return res;
    8423              :                                 }
    8424            8 :                                 break;
    8425              :                               }
    8426              :                             default:;
    8427              :                             }
    8428              :                           break;
    8429              :                         }
    8430              :                       default:;
    8431              :                       }
    8432              :                     break;
    8433              :                   }
    8434              :                 default:;
    8435              :                 }
    8436              :               break;
    8437              :             }
    8438              :           default:;
    8439              :           }
    8440              :         break;
    8441              :       }
    8442       189555 :     case EXACT_DIV_EXPR:
    8443       189555 :       {
    8444       189555 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8445       189555 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8446       189555 :         switch (TREE_CODE (_p1))
    8447              :           {
    8448          114 :           CASE_CONVERT:
    8449          114 :             {
    8450          114 :               tree _q50 = TREE_OPERAND (_p1, 0);
    8451          114 :               if ((_q50 == _q21 && ! TREE_SIDE_EFFECTS (_q50)) || operand_equal_p (_q50, _q21, 0))
    8452              :                 {
    8453            0 :                   {
    8454            0 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q21 };
    8455            0 :                     tree res = generic_simplify_196 (loc, type, _p0, _p1, captures);
    8456            0 :                     if (res) return res;
    8457              :                   }
    8458              :                 }
    8459              :               break;
    8460              :             }
    8461       189555 :           default:;
    8462              :           }
    8463       189555 :         if ((_p1 == _q21 && ! TREE_SIDE_EFFECTS (_p1)) || operand_equal_p (_p1, _q21, 0))
    8464              :           {
    8465        20644 :             {
    8466        20644 :               tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _q21 };
    8467        20644 :               tree res = generic_simplify_196 (loc, type, _p0, _p1, captures);
    8468        20644 :               if (res) return res;
    8469              :             }
    8470              :           }
    8471       168911 :         switch (TREE_CODE (_q21))
    8472              :           {
    8473       168911 :           case INTEGER_CST:
    8474       168911 :             {
    8475       168911 :               if (poly_int_tree_p (_p1))
    8476              :                 {
    8477       168797 :                   {
    8478       168797 :                     tree captures[3] ATTRIBUTE_UNUSED = { _q20, _q21, _p1 };
    8479       168797 :                     tree res = generic_simplify_197 (loc, type, _p0, _p1, captures);
    8480       168797 :                     if (res) return res;
    8481              :                   }
    8482              :                 }
    8483              :               break;
    8484              :             }
    8485              :           default:;
    8486              :           }
    8487              :         break;
    8488              :       }
    8489      7641991 :     case PLUS_EXPR:
    8490      7641991 :       {
    8491      7641991 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8492      7641991 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8493      7641991 :         switch (TREE_CODE (_q20))
    8494              :           {
    8495      3733788 :           CASE_CONVERT:
    8496      3733788 :             {
    8497      3733788 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8498      3733788 :               switch (TREE_CODE (_q30))
    8499              :                 {
    8500         5446 :                 case EXACT_DIV_EXPR:
    8501         5446 :                   {
    8502         5446 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    8503         5446 :                     tree _q41 = TREE_OPERAND (_q30, 1);
    8504         5446 :                     switch (TREE_CODE (_q41))
    8505              :                       {
    8506         5446 :                       case INTEGER_CST:
    8507         5446 :                         {
    8508         5446 :                           if (poly_int_tree_p (_q21))
    8509              :                             {
    8510         5446 :                               if (poly_int_tree_p (_p1))
    8511              :                                 {
    8512         5446 :                                   {
    8513         5446 :                                     tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q41, _q21, _p1 };
    8514         5446 :                                     tree res = generic_simplify_198 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    8515         5446 :                                     if (res) return res;
    8516              :                                   }
    8517              :                                 }
    8518              :                             }
    8519              :                           break;
    8520              :                         }
    8521              :                       default:;
    8522              :                       }
    8523              :                     break;
    8524              :                   }
    8525              :                 default:;
    8526              :                 }
    8527              :               break;
    8528              :             }
    8529            0 :           case EXACT_DIV_EXPR:
    8530            0 :             {
    8531            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8532            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    8533            0 :               switch (TREE_CODE (_q31))
    8534              :                 {
    8535            0 :                 case INTEGER_CST:
    8536            0 :                   {
    8537            0 :                     if (poly_int_tree_p (_q21))
    8538              :                       {
    8539            0 :                         if (poly_int_tree_p (_p1))
    8540              :                           {
    8541            0 :                             {
    8542            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q21, _p1 };
    8543            0 :                               tree res = generic_simplify_198 (loc, type, _p0, _p1, captures, PLUS_EXPR);
    8544            0 :                               if (res) return res;
    8545              :                             }
    8546              :                           }
    8547              :                       }
    8548              :                     break;
    8549              :                   }
    8550              :                 default:;
    8551              :                 }
    8552              :               break;
    8553              :             }
    8554              :           default:;
    8555              :           }
    8556              :         break;
    8557              :       }
    8558      1186984 :     case MINUS_EXPR:
    8559      1186984 :       {
    8560      1186984 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8561      1186984 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8562      1186984 :         switch (TREE_CODE (_q20))
    8563              :           {
    8564       305244 :           CASE_CONVERT:
    8565       305244 :             {
    8566       305244 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8567       305244 :               switch (TREE_CODE (_q30))
    8568              :                 {
    8569            0 :                 case EXACT_DIV_EXPR:
    8570            0 :                   {
    8571            0 :                     tree _q40 = TREE_OPERAND (_q30, 0);
    8572            0 :                     tree _q41 = TREE_OPERAND (_q30, 1);
    8573            0 :                     switch (TREE_CODE (_q41))
    8574              :                       {
    8575            0 :                       case INTEGER_CST:
    8576            0 :                         {
    8577            0 :                           if (poly_int_tree_p (_q21))
    8578              :                             {
    8579            0 :                               if (poly_int_tree_p (_p1))
    8580              :                                 {
    8581            0 :                                   {
    8582            0 :                                     tree captures[4] ATTRIBUTE_UNUSED = { _q40, _q41, _q21, _p1 };
    8583            0 :                                     tree res = generic_simplify_198 (loc, type, _p0, _p1, captures, MINUS_EXPR);
    8584            0 :                                     if (res) return res;
    8585              :                                   }
    8586              :                                 }
    8587              :                             }
    8588              :                           break;
    8589              :                         }
    8590              :                       default:;
    8591              :                       }
    8592              :                     break;
    8593              :                   }
    8594              :                 default:;
    8595              :                 }
    8596              :               break;
    8597              :             }
    8598            0 :           case EXACT_DIV_EXPR:
    8599            0 :             {
    8600            0 :               tree _q30 = TREE_OPERAND (_q20, 0);
    8601            0 :               tree _q31 = TREE_OPERAND (_q20, 1);
    8602            0 :               switch (TREE_CODE (_q31))
    8603              :                 {
    8604            0 :                 case INTEGER_CST:
    8605            0 :                   {
    8606            0 :                     if (poly_int_tree_p (_q21))
    8607              :                       {
    8608            0 :                         if (poly_int_tree_p (_p1))
    8609              :                           {
    8610            0 :                             {
    8611            0 :                               tree captures[4] ATTRIBUTE_UNUSED = { _q30, _q31, _q21, _p1 };
    8612            0 :                               tree res = generic_simplify_198 (loc, type, _p0, _p1, captures, MINUS_EXPR);
    8613            0 :                               if (res) return res;
    8614              :                             }
    8615              :                           }
    8616              :                       }
    8617              :                     break;
    8618              :                   }
    8619              :                 default:;
    8620              :                 }
    8621              :               break;
    8622              :             }
    8623              :           default:;
    8624              :           }
    8625              :         break;
    8626              :       }
    8627     67823834 :     default:;
    8628              :     }
    8629     67823834 :   if (integer_minus_onep (_p1))
    8630              :     {
    8631       462652 :       {
    8632       462652 :         tree captures[1] ATTRIBUTE_UNUSED = { _p0 };
    8633       462652 :         if (TREE_SIDE_EFFECTS (_p1)) goto next_after_fail1439;
    8634       462652 :         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1439;
    8635       462652 :         {
    8636       462652 :           tree res_op0;
    8637       462652 :           res_op0 = captures[0];
    8638       462652 :           tree _r;
    8639       462652 :           _r = fold_build1_loc (loc, NEGATE_EXPR, type, res_op0);
    8640       462652 :           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 982, __FILE__, __LINE__, true);
    8641       462652 :           return _r;
    8642              :         }
    8643              : next_after_fail1439:;
    8644              :       }
    8645              :     }
    8646     67361182 :   switch (TREE_CODE (_p0))
    8647              :     {
    8648      4867101 :     case MULT_EXPR:
    8649      4867101 :       {
    8650      4867101 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8651      4867101 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8652      4867101 :         switch (TREE_CODE (_q21))
    8653              :           {
    8654       169503 :           case INTEGER_CST:
    8655       169503 :             {
    8656       169503 :               {
    8657       169503 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1 };
    8658       169503 :                 tree res = generic_simplify_199 (loc, type, _p0, _p1, captures);
    8659       169503 :                 if (res) return res;
    8660              :               }
    8661           30 :               break;
    8662              :             }
    8663              :           default:;
    8664              :           }
    8665              :         break;
    8666              :       }
    8667     67191709 :     default:;
    8668              :     }
    8669     67191709 :   switch (TREE_CODE (_p1))
    8670              :     {
    8671        23582 :     case MULT_EXPR:
    8672        23582 :       {
    8673        23582 :         tree _q30 = TREE_OPERAND (_p1, 0);
    8674        23582 :         tree _q31 = TREE_OPERAND (_p1, 1);
    8675        23582 :         switch (TREE_CODE (_q31))
    8676              :           {
    8677        17190 :           case INTEGER_CST:
    8678        17190 :             {
    8679        17190 :               {
    8680        17190 :                 tree captures[4] ATTRIBUTE_UNUSED = { _p1, _q30, _q31, _p0 };
    8681        17190 :                 tree res = generic_simplify_199 (loc, type, _p0, _p1, captures);
    8682        17190 :                 if (res) return res;
    8683              :               }
    8684            0 :               break;
    8685              :             }
    8686              :           default:;
    8687              :           }
    8688              :         break;
    8689              :       }
    8690     67174519 :     default:;
    8691              :     }
    8692     67174519 :   switch (TREE_CODE (_p0))
    8693              :     {
    8694           36 :     case VEC_COND_EXPR:
    8695           36 :       {
    8696           36 :         tree _q20 = TREE_OPERAND (_p0, 0);
    8697           36 :         tree _q21 = TREE_OPERAND (_p0, 1);
    8698           36 :         tree _q22 = TREE_OPERAND (_p0, 2);
    8699           36 :         switch (TREE_CODE (_p1))
    8700              :           {
    8701            0 :           case VEC_COND_EXPR:
    8702            0 :             {
    8703            0 :               tree _q60 = TREE_OPERAND (_p1, 0);
    8704            0 :               tree _q61 = TREE_OPERAND (_p1, 1);
    8705            0 :               tree _q62 = TREE_OPERAND (_p1, 2);
    8706            0 :               if ((_q60 == _q20 && ! TREE_SIDE_EFFECTS (_q60)) || (operand_equal_p (_q60, _q20, 0) && types_match (_q60, _q20)))
    8707              :                 {
    8708            0 :                   {
    8709            0 :                     tree captures[7] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1, _q61, _q62 };
    8710            0 :                     if (VECTOR_TYPE_P (type)
    8711            0 :  && (TREE_CODE_CLASS (MULT_EXPR) != tcc_comparison
    8712              :  || types_match (type, TREE_TYPE (captures[2]))
    8713              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    8714              :  || (optimize_vectors_before_lowering_p ()
    8715              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    8716              : )
    8717              :                       {
    8718            0 :                         if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1440;
    8719            0 :                         {
    8720            0 :                           tree res_op0;
    8721            0 :                           res_op0 = captures[1];
    8722            0 :                           tree res_op1;
    8723            0 :                           {
    8724            0 :                             tree _o1[2], _r1;
    8725            0 :                             _o1[0] = captures[2];
    8726            0 :                             _o1[1] = captures[5];
    8727            0 :                             _r1 = fold_build2_loc (loc, MULT_EXPR, type, _o1[0], _o1[1]);
    8728            0 :                             if (EXPR_P (_r1))
    8729            0 :                               goto next_after_fail1440;
    8730            0 :                             res_op1 = _r1;
    8731              :                           }
    8732            0 :                           tree res_op2;
    8733            0 :                           {
    8734            0 :                             tree _o1[2], _r1;
    8735            0 :                             _o1[0] = captures[3];
    8736            0 :                             _o1[1] = captures[6];
    8737            0 :                             _r1 = fold_build2_loc (loc, MULT_EXPR, type, _o1[0], _o1[1]);
    8738            0 :                             if (EXPR_P (_r1))
    8739            0 :                               goto next_after_fail1440;
    8740            0 :                             res_op2 = _r1;
    8741              :                           }
    8742            0 :                           tree _r;
    8743            0 :                           _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    8744            0 :                           if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 898, __FILE__, __LINE__, true);
    8745            0 :                           return _r;
    8746              :                         }
    8747            0 : next_after_fail1440:;
    8748              :                       }
    8749              :                   }
    8750              :                 }
    8751              :               break;
    8752              :             }
    8753           36 :           default:;
    8754              :           }
    8755           36 :         {
    8756           36 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _q22, _p1 };
    8757           36 :           if (VECTOR_TYPE_P (type)
    8758           36 :  && (TREE_CODE_CLASS (MULT_EXPR) != tcc_comparison
    8759              :  || types_match (type, TREE_TYPE (captures[2]))
    8760              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[1]))
    8761              :  || (optimize_vectors_before_lowering_p ()
    8762              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[2]), TREE_TYPE (captures[1]))))
    8763              : )
    8764              :             {
    8765           36 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1441;
    8766           36 :               {
    8767           36 :                 if (! tree_invariant_p (captures[4])) goto next_after_fail1441;
    8768            0 :                 tree res_op0;
    8769            0 :                 res_op0 = captures[1];
    8770            0 :                 tree res_op1;
    8771            0 :                 {
    8772            0 :                   tree _o1[2], _r1;
    8773            0 :                   _o1[0] = captures[2];
    8774            0 :                   _o1[1] = unshare_expr (captures[4]);
    8775            0 :                   _r1 = fold_build2_loc (loc, MULT_EXPR, type, _o1[0], _o1[1]);
    8776            0 :                   if (EXPR_P (_r1))
    8777            0 :                     goto next_after_fail1441;
    8778            0 :                   res_op1 = _r1;
    8779              :                 }
    8780            0 :                 tree res_op2;
    8781            0 :                 {
    8782            0 :                   tree _o1[2], _r1;
    8783            0 :                   _o1[0] = captures[3];
    8784            0 :                   _o1[1] = captures[4];
    8785            0 :                   _r1 = fold_build2_loc (loc, MULT_EXPR, type, _o1[0], _o1[1]);
    8786            0 :                   if (EXPR_P (_r1))
    8787            0 :                     goto next_after_fail1441;
    8788            0 :                   res_op2 = _r1;
    8789              :                 }
    8790            0 :                 tree _r;
    8791            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    8792            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 900, __FILE__, __LINE__, true);
    8793            0 :                 return _r;
    8794              :               }
    8795           36 : next_after_fail1441:;
    8796              :             }
    8797              :         }
    8798           36 :         break;
    8799              :       }
    8800     67174519 :     default:;
    8801              :     }
    8802     67174519 :   switch (TREE_CODE (_p1))
    8803              :     {
    8804            0 :     case VEC_COND_EXPR:
    8805            0 :       {
    8806            0 :         tree _q30 = TREE_OPERAND (_p1, 0);
    8807            0 :         tree _q31 = TREE_OPERAND (_p1, 1);
    8808            0 :         tree _q32 = TREE_OPERAND (_p1, 2);
    8809            0 :         {
    8810            0 :           tree captures[5] ATTRIBUTE_UNUSED = { _p0, _p1, _q30, _q31, _q32 };
    8811            0 :           if (VECTOR_TYPE_P (type)
    8812            0 :  && (TREE_CODE_CLASS (MULT_EXPR) != tcc_comparison
    8813              :  || types_match (type, TREE_TYPE (captures[3]))
    8814              :  || expand_vec_cond_expr_p (type, TREE_TYPE (captures[2]))
    8815              :  || (optimize_vectors_before_lowering_p ()
    8816              :  && !expand_vec_cond_expr_p (TREE_TYPE (captures[3]), TREE_TYPE (captures[2]))))
    8817              : )
    8818              :             {
    8819            0 :               if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1442;
    8820            0 :               {
    8821            0 :                 if (! tree_invariant_p (captures[0])) goto next_after_fail1442;
    8822            0 :                 tree res_op0;
    8823            0 :                 res_op0 = captures[2];
    8824            0 :                 tree res_op1;
    8825            0 :                 {
    8826            0 :                   tree _o1[2], _r1;
    8827            0 :                   _o1[0] = unshare_expr (captures[0]);
    8828            0 :                   _o1[1] = captures[3];
    8829            0 :                   _r1 = fold_build2_loc (loc, MULT_EXPR, type, _o1[0], _o1[1]);
    8830            0 :                   if (EXPR_P (_r1))
    8831            0 :                     goto next_after_fail1442;
    8832            0 :                   res_op1 = _r1;
    8833              :                 }
    8834            0 :                 tree res_op2;
    8835            0 :                 {
    8836            0 :                   tree _o1[2], _r1;
    8837            0 :                   _o1[0] = captures[0];
    8838            0 :                   _o1[1] = captures[4];
    8839            0 :                   _r1 = fold_build2_loc (loc, MULT_EXPR, type, _o1[0], _o1[1]);
    8840            0 :                   if (EXPR_P (_r1))
    8841            0 :                     goto next_after_fail1442;
    8842            0 :                   res_op2 = _r1;
    8843              :                 }
    8844            0 :                 tree _r;
    8845            0 :                 _r = fold_build3_loc (loc, VEC_COND_EXPR, type, res_op0, res_op1, res_op2);
    8846            0 :                 if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 901, __FILE__, __LINE__, true);
    8847            0 :                 return _r;
    8848              :               }
    8849            0 : next_after_fail1442:;
    8850              :             }
    8851              :         }
    8852            0 :         break;
    8853              :       }
    8854     67174519 :     default:;
    8855              :     }
    8856     67174519 :   switch (TREE_CODE (_p0))
    8857              :     {
    8858         2576 :     case REAL_CST:
    8859         2576 :       {
    8860         2576 :         switch (TREE_CODE (_p1))
    8861              :           {
    8862            0 :           case CALL_EXPR:
    8863            0 :             switch (get_call_combined_fn (_p1))
    8864              :               {
    8865            0 :               case CFN_BUILT_IN_LDEXPF:
    8866            0 :                 if (call_expr_nargs (_p1) == 2)
    8867              :     {
    8868            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    8869            0 :                     tree _q31 = CALL_EXPR_ARG (_p1, 1);
    8870            0 :                     {
    8871            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
    8872            0 :                       tree res = generic_simplify_202 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LDEXPF);
    8873            0 :                       if (res) return res;
    8874              :                     }
    8875              :                   }
    8876              :                 break;
    8877            0 :               case CFN_BUILT_IN_LDEXPL:
    8878            0 :                 if (call_expr_nargs (_p1) == 2)
    8879              :     {
    8880            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    8881            0 :                     tree _q31 = CALL_EXPR_ARG (_p1, 1);
    8882            0 :                     {
    8883            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
    8884            0 :                       tree res = generic_simplify_202 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LDEXPL);
    8885            0 :                       if (res) return res;
    8886              :                     }
    8887              :                   }
    8888              :                 break;
    8889            0 :               case CFN_LDEXP:
    8890            0 :                 if (call_expr_nargs (_p1) == 2)
    8891              :     {
    8892            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    8893            0 :                     tree _q31 = CALL_EXPR_ARG (_p1, 1);
    8894            0 :                     {
    8895            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
    8896            0 :                       tree res = generic_simplify_202 (loc, type, _p0, _p1, captures, CFN_LDEXP);
    8897            0 :                       if (res) return res;
    8898              :                     }
    8899              :                   }
    8900              :                 break;
    8901            0 :               case CFN_BUILT_IN_LDEXP:
    8902            0 :                 if (call_expr_nargs (_p1) == 2)
    8903              :     {
    8904            0 :                     tree _q30 = CALL_EXPR_ARG (_p1, 0);
    8905            0 :                     tree _q31 = CALL_EXPR_ARG (_p1, 1);
    8906            0 :                     {
    8907            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
    8908            0 :                       tree res = generic_simplify_202 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LDEXP);
    8909            0 :                       if (res) return res;
    8910              :                     }
    8911              :                   }
    8912              :                 break;
    8913              :               default:;
    8914              :               }
    8915              :             break;
    8916              :           default:;
    8917              :           }
    8918              :         break;
    8919              :       }
    8920      2514167 :     case CALL_EXPR:
    8921      2514167 :       switch (get_call_combined_fn (_p0))
    8922              :         {
    8923           55 :         case CFN_BUILT_IN_SQRTF:
    8924           55 :           if (call_expr_nargs (_p0) == 1)
    8925              :     {
    8926           55 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8927           55 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    8928              :                 {
    8929            0 :                   {
    8930            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
    8931            0 :                     tree res = generic_simplify_200 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF);
    8932            0 :                     if (res) return res;
    8933              :                   }
    8934              :                 }
    8935           55 :               switch (TREE_CODE (_p1))
    8936              :                 {
    8937           13 :                 case CALL_EXPR:
    8938           13 :                   switch (get_call_combined_fn (_p1))
    8939              :                     {
    8940           13 :                     case CFN_BUILT_IN_SQRTF:
    8941           13 :                       if (call_expr_nargs (_p1) == 1)
    8942              :     {
    8943           13 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    8944           13 :                           {
    8945           13 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    8946           13 :                             if (flag_unsafe_math_optimizations
    8947              : )
    8948              :                               {
    8949           13 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1443;
    8950           13 :                                 {
    8951           13 :                                   tree res_op0;
    8952           13 :                                   {
    8953           13 :                                     tree _o1[2], _r1;
    8954           13 :                                     _o1[0] = captures[1];
    8955           13 :                                     _o1[1] = captures[3];
    8956           13 :                                     _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    8957           13 :                                     res_op0 = _r1;
    8958              :                                   }
    8959           13 :                                   tree _r;
    8960           13 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SQRTF, type, 1, res_op0);
    8961           13 :                                   if (!_r)
    8962            0 :                                     goto next_after_fail1443;
    8963           13 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 983, __FILE__, __LINE__, true);
    8964           13 :                                   return _r;
    8965              :                                 }
    8966            0 : next_after_fail1443:;
    8967              :                               }
    8968              :                           }
    8969              :                         }
    8970              :                       break;
    8971              :                     default:;
    8972              :                     }
    8973              :                   break;
    8974              :                 default:;
    8975              :                 }
    8976              :             }
    8977              :           break;
    8978           48 :         case CFN_BUILT_IN_SQRTL:
    8979           48 :           if (call_expr_nargs (_p0) == 1)
    8980              :     {
    8981           48 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    8982           48 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
    8983              :                 {
    8984            0 :                   {
    8985            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
    8986            0 :                     tree res = generic_simplify_200 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTL);
    8987            0 :                     if (res) return res;
    8988              :                   }
    8989              :                 }
    8990           48 :               switch (TREE_CODE (_p1))
    8991              :                 {
    8992           13 :                 case CALL_EXPR:
    8993           13 :                   switch (get_call_combined_fn (_p1))
    8994              :                     {
    8995           13 :                     case CFN_BUILT_IN_SQRTL:
    8996           13 :                       if (call_expr_nargs (_p1) == 1)
    8997              :     {
    8998           13 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    8999           13 :                           {
    9000           13 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    9001           13 :                             if (flag_unsafe_math_optimizations
    9002              : )
    9003              :                               {
    9004           13 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1444;
    9005           13 :                                 {
    9006           13 :                                   tree res_op0;
    9007           13 :                                   {
    9008           13 :                                     tree _o1[2], _r1;
    9009           13 :                                     _o1[0] = captures[1];
    9010           13 :                                     _o1[1] = captures[3];
    9011           13 :                                     _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9012           13 :                                     res_op0 = _r1;
    9013              :                                   }
    9014           13 :                                   tree _r;
    9015           13 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SQRTL, type, 1, res_op0);
    9016           13 :                                   if (!_r)
    9017            0 :                                     goto next_after_fail1444;
    9018           13 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 983, __FILE__, __LINE__, true);
    9019           13 :                                   return _r;
    9020              :                                 }
    9021            0 : next_after_fail1444:;
    9022              :                               }
    9023              :                           }
    9024              :                         }
    9025              :                       break;
    9026              :                     default:;
    9027              :                     }
    9028              :                   break;
    9029              :                 default:;
    9030              :                 }
    9031              :             }
    9032              :           break;
    9033          287 :         case CFN_BUILT_IN_EXP:
    9034          287 :           if (call_expr_nargs (_p0) == 1)
    9035              :     {
    9036          287 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9037          287 :               switch (TREE_CODE (_p1))
    9038              :                 {
    9039           81 :                 case CALL_EXPR:
    9040           81 :                   switch (get_call_combined_fn (_p1))
    9041              :                     {
    9042           31 :                     case CFN_BUILT_IN_EXP:
    9043           31 :                       if (call_expr_nargs (_p1) == 1)
    9044              :     {
    9045           31 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9046           31 :                           {
    9047           31 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    9048           31 :                             if (flag_unsafe_math_optimizations
    9049              : )
    9050              :                               {
    9051           27 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1445;
    9052           27 :                                 {
    9053           27 :                                   tree res_op0;
    9054           27 :                                   {
    9055           27 :                                     tree _o1[2], _r1;
    9056           27 :                                     _o1[0] = captures[1];
    9057           27 :                                     _o1[1] = captures[3];
    9058           27 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9059           27 :                                     res_op0 = _r1;
    9060              :                                   }
    9061           27 :                                   tree _r;
    9062           27 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP, type, 1, res_op0);
    9063           27 :                                   if (!_r)
    9064            0 :                                     goto next_after_fail1445;
    9065           27 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 984, __FILE__, __LINE__, true);
    9066           27 :                                   return _r;
    9067              :                                 }
    9068            4 : next_after_fail1445:;
    9069              :                               }
    9070              :                           }
    9071              :                         }
    9072              :                       break;
    9073            0 :                     case CFN_BUILT_IN_POW:
    9074            0 :                       if (call_expr_nargs (_p1) == 2)
    9075              :     {
    9076            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9077            0 :                           tree _q41 = CALL_EXPR_ARG (_p1, 1);
    9078            0 :                           switch (TREE_CODE (_q40))
    9079              :                             {
    9080            0 :                             case REAL_CST:
    9081            0 :                               {
    9082            0 :                                 {
    9083            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
    9084            0 :                                   if (flag_unsafe_math_optimizations
    9085              : )
    9086              :                                     {
    9087            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
    9088            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
    9089              : )
    9090              :                                         {
    9091            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1446;
    9092            0 :                                           {
    9093            0 :                                             tree res_op0;
    9094            0 :                                             {
    9095            0 :                                               tree _o1[2], _r1;
    9096            0 :                                               {
    9097            0 :                                                 tree _o2[2], _r2;
    9098            0 :                                                 {
    9099            0 :                                                   tree _o3[1], _r3;
    9100            0 :                                                   _o3[0] = captures[1];
    9101            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG, TREE_TYPE (_o3[0]), 1, _o3[0]);
    9102            0 :                                                   if (!_r3)
    9103            0 :                                                     goto next_after_fail1446;
    9104            0 :                                                   _o2[0] = _r3;
    9105              :                                                 }
    9106            0 :                                                 _o2[1] = captures[2];
    9107            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    9108            0 :                                                 _o1[0] = _r2;
    9109              :                                               }
    9110            0 :                                               _o1[1] = captures[4];
    9111            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9112            0 :                                               res_op0 = _r1;
    9113              :                                             }
    9114            0 :                                             tree _r;
    9115            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP, type, 1, res_op0);
    9116            0 :                                             if (!_r)
    9117            0 :                                               goto next_after_fail1446;
    9118            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 985, __FILE__, __LINE__, true);
    9119            0 :                                             return _r;
    9120              :                                           }
    9121            0 : next_after_fail1446:;
    9122              :                                         }
    9123              :                                     }
    9124              :                                 }
    9125            0 :                                 break;
    9126              :                               }
    9127              :                             default:;
    9128              :                             }
    9129              :                         }
    9130              :                       break;
    9131              :                     default:;
    9132              :                     }
    9133              :                   break;
    9134              :                 default:;
    9135              :                 }
    9136              :             }
    9137              :           break;
    9138          123 :         case CFN_BUILT_IN_POW:
    9139          123 :           if (call_expr_nargs (_p0) == 2)
    9140              :     {
    9141          123 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9142          123 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    9143          123 :               switch (TREE_CODE (_q20))
    9144              :                 {
    9145            1 :                 case REAL_CST:
    9146            1 :                   {
    9147            1 :                     switch (TREE_CODE (_p1))
    9148              :                       {
    9149            1 :                       case CALL_EXPR:
    9150            1 :                         switch (get_call_combined_fn (_p1))
    9151              :                           {
    9152            0 :                           case CFN_BUILT_IN_EXP:
    9153            0 :                             if (call_expr_nargs (_p1) == 1)
    9154              :     {
    9155            0 :                                 tree _q50 = CALL_EXPR_ARG (_p1, 0);
    9156            0 :                                 {
    9157            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
    9158            0 :                                   if (flag_unsafe_math_optimizations
    9159              : )
    9160              :                                     {
    9161            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
    9162            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
    9163              : )
    9164              :                                         {
    9165            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1447;
    9166            0 :                                           {
    9167            0 :                                             tree res_op0;
    9168            0 :                                             {
    9169            0 :                                               tree _o1[2], _r1;
    9170            0 :                                               {
    9171            0 :                                                 tree _o2[2], _r2;
    9172            0 :                                                 {
    9173            0 :                                                   tree _o3[1], _r3;
    9174            0 :                                                   _o3[0] = captures[1];
    9175            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG, TREE_TYPE (_o3[0]), 1, _o3[0]);
    9176            0 :                                                   if (!_r3)
    9177            0 :                                                     goto next_after_fail1447;
    9178            0 :                                                   _o2[0] = _r3;
    9179              :                                                 }
    9180            0 :                                                 _o2[1] = captures[2];
    9181            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    9182            0 :                                                 _o1[0] = _r2;
    9183              :                                               }
    9184            0 :                                               _o1[1] = captures[4];
    9185            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9186            0 :                                               res_op0 = _r1;
    9187              :                                             }
    9188            0 :                                             tree _r;
    9189            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP, type, 1, res_op0);
    9190            0 :                                             if (!_r)
    9191            0 :                                               goto next_after_fail1447;
    9192            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 985, __FILE__, __LINE__, true);
    9193            0 :                                             return _r;
    9194              :                                           }
    9195            0 : next_after_fail1447:;
    9196              :                                         }
    9197              :                                     }
    9198              :                                 }
    9199              :                               }
    9200              :                             break;
    9201            0 :                           case CFN_BUILT_IN_EXP2:
    9202            0 :                             if (call_expr_nargs (_p1) == 1)
    9203              :     {
    9204            0 :                                 tree _q50 = CALL_EXPR_ARG (_p1, 0);
    9205            0 :                                 {
    9206            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
    9207            0 :                                   if (flag_unsafe_math_optimizations
    9208              : )
    9209              :                                     {
    9210            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
    9211            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
    9212              : )
    9213              :                                         {
    9214            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1448;
    9215            0 :                                           {
    9216            0 :                                             tree res_op0;
    9217            0 :                                             {
    9218            0 :                                               tree _o1[2], _r1;
    9219            0 :                                               {
    9220            0 :                                                 tree _o2[2], _r2;
    9221            0 :                                                 {
    9222            0 :                                                   tree _o3[1], _r3;
    9223            0 :                                                   _o3[0] = captures[1];
    9224            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG2, TREE_TYPE (_o3[0]), 1, _o3[0]);
    9225            0 :                                                   if (!_r3)
    9226            0 :                                                     goto next_after_fail1448;
    9227            0 :                                                   _o2[0] = _r3;
    9228              :                                                 }
    9229            0 :                                                 _o2[1] = captures[2];
    9230            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    9231            0 :                                                 _o1[0] = _r2;
    9232              :                                               }
    9233            0 :                                               _o1[1] = captures[4];
    9234            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9235            0 :                                               res_op0 = _r1;
    9236              :                                             }
    9237            0 :                                             tree _r;
    9238            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2, type, 1, res_op0);
    9239            0 :                                             if (!_r)
    9240            0 :                                               goto next_after_fail1448;
    9241            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 985, __FILE__, __LINE__, true);
    9242            0 :                                             return _r;
    9243              :                                           }
    9244            0 : next_after_fail1448:;
    9245              :                                         }
    9246              :                                     }
    9247              :                                 }
    9248              :                               }
    9249              :                             break;
    9250            0 :                           case CFN_BUILT_IN_EXP10:
    9251            0 :                             if (call_expr_nargs (_p1) == 1)
    9252              :     {
    9253            0 :                                 tree _q50 = CALL_EXPR_ARG (_p1, 0);
    9254            0 :                                 {
    9255            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
    9256            0 :                                   if (flag_unsafe_math_optimizations
    9257              : )
    9258              :                                     {
    9259            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
    9260            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
    9261              : )
    9262              :                                         {
    9263            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1449;
    9264            0 :                                           {
    9265            0 :                                             tree res_op0;
    9266            0 :                                             {
    9267            0 :                                               tree _o1[2], _r1;
    9268            0 :                                               {
    9269            0 :                                                 tree _o2[2], _r2;
    9270            0 :                                                 {
    9271            0 :                                                   tree _o3[1], _r3;
    9272            0 :                                                   _o3[0] = captures[1];
    9273            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10, TREE_TYPE (_o3[0]), 1, _o3[0]);
    9274            0 :                                                   if (!_r3)
    9275            0 :                                                     goto next_after_fail1449;
    9276            0 :                                                   _o2[0] = _r3;
    9277              :                                                 }
    9278            0 :                                                 _o2[1] = captures[2];
    9279            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    9280            0 :                                                 _o1[0] = _r2;
    9281              :                                               }
    9282            0 :                                               _o1[1] = captures[4];
    9283            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9284            0 :                                               res_op0 = _r1;
    9285              :                                             }
    9286            0 :                                             tree _r;
    9287            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10, type, 1, res_op0);
    9288            0 :                                             if (!_r)
    9289            0 :                                               goto next_after_fail1449;
    9290            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 985, __FILE__, __LINE__, true);
    9291            0 :                                             return _r;
    9292              :                                           }
    9293            0 : next_after_fail1449:;
    9294              :                                         }
    9295              :                                     }
    9296              :                                 }
    9297              :                               }
    9298              :                             break;
    9299            0 :                           case CFN_BUILT_IN_POW10:
    9300            0 :                             if (call_expr_nargs (_p1) == 1)
    9301              :     {
    9302            0 :                                 tree _q50 = CALL_EXPR_ARG (_p1, 0);
    9303            0 :                                 {
    9304            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
    9305            0 :                                   if (flag_unsafe_math_optimizations
    9306              : )
    9307              :                                     {
    9308            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
    9309            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
    9310              : )
    9311              :                                         {
    9312            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1450;
    9313            0 :                                           {
    9314            0 :                                             tree res_op0;
    9315            0 :                                             {
    9316            0 :                                               tree _o1[2], _r1;
    9317            0 :                                               {
    9318            0 :                                                 tree _o2[2], _r2;
    9319            0 :                                                 {
    9320            0 :                                                   tree _o3[1], _r3;
    9321            0 :                                                   _o3[0] = captures[1];
    9322            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10, TREE_TYPE (_o3[0]), 1, _o3[0]);
    9323            0 :                                                   if (!_r3)
    9324            0 :                                                     goto next_after_fail1450;
    9325            0 :                                                   _o2[0] = _r3;
    9326              :                                                 }
    9327            0 :                                                 _o2[1] = captures[2];
    9328            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    9329            0 :                                                 _o1[0] = _r2;
    9330              :                                               }
    9331            0 :                                               _o1[1] = captures[4];
    9332            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9333            0 :                                               res_op0 = _r1;
    9334              :                                             }
    9335            0 :                                             tree _r;
    9336            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10, type, 1, res_op0);
    9337            0 :                                             if (!_r)
    9338            0 :                                               goto next_after_fail1450;
    9339            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 985, __FILE__, __LINE__, true);
    9340            0 :                                             return _r;
    9341              :                                           }
    9342            0 : next_after_fail1450:;
    9343              :                                         }
    9344              :                                     }
    9345              :                                 }
    9346              :                               }
    9347              :                             break;
    9348              :                           default:;
    9349              :                           }
    9350              :                         break;
    9351              :                       default:;
    9352              :                       }
    9353              :                     break;
    9354              :                   }
    9355          123 :                 default:;
    9356              :                 }
    9357          123 :               switch (TREE_CODE (_q21))
    9358              :                 {
    9359           12 :                 case REAL_CST:
    9360           12 :                   {
    9361           12 :                     if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
    9362              :                       {
    9363            8 :                         {
    9364            8 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
    9365            8 :                           tree res = generic_simplify_201 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POW);
    9366            8 :                           if (res) return res;
    9367              :                         }
    9368              :                       }
    9369              :                     break;
    9370              :                   }
    9371              :                 default:;
    9372              :                 }
    9373              :             }
    9374              :           break;
    9375           48 :         case CFN_BUILT_IN_EXP10F:
    9376           48 :           if (call_expr_nargs (_p0) == 1)
    9377              :     {
    9378           48 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9379           48 :               switch (TREE_CODE (_p1))
    9380              :                 {
    9381           24 :                 case CALL_EXPR:
    9382           24 :                   switch (get_call_combined_fn (_p1))
    9383              :                     {
    9384           24 :                     case CFN_BUILT_IN_EXP10F:
    9385           24 :                       if (call_expr_nargs (_p1) == 1)
    9386              :     {
    9387           24 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9388           24 :                           {
    9389           24 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    9390           24 :                             if (flag_unsafe_math_optimizations
    9391              : )
    9392              :                               {
    9393           24 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1451;
    9394           24 :                                 {
    9395           24 :                                   tree res_op0;
    9396           24 :                                   {
    9397           24 :                                     tree _o1[2], _r1;
    9398           24 :                                     _o1[0] = captures[1];
    9399           24 :                                     _o1[1] = captures[3];
    9400           24 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9401           24 :                                     res_op0 = _r1;
    9402              :                                   }
    9403           24 :                                   tree _r;
    9404           24 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10F, type, 1, res_op0);
    9405           24 :                                   if (!_r)
    9406            0 :                                     goto next_after_fail1451;
    9407           24 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 984, __FILE__, __LINE__, true);
    9408           24 :                                   return _r;
    9409              :                                 }
    9410            0 : next_after_fail1451:;
    9411              :                               }
    9412              :                           }
    9413              :                         }
    9414              :                       break;
    9415            0 :                     case CFN_BUILT_IN_POWF:
    9416            0 :                       if (call_expr_nargs (_p1) == 2)
    9417              :     {
    9418            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9419            0 :                           tree _q41 = CALL_EXPR_ARG (_p1, 1);
    9420            0 :                           switch (TREE_CODE (_q40))
    9421              :                             {
    9422            0 :                             case REAL_CST:
    9423            0 :                               {
    9424            0 :                                 {
    9425            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
    9426            0 :                                   if (flag_unsafe_math_optimizations
    9427              : )
    9428              :                                     {
    9429            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
    9430            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
    9431              : )
    9432              :                                         {
    9433            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1452;
    9434            0 :                                           {
    9435            0 :                                             tree res_op0;
    9436            0 :                                             {
    9437            0 :                                               tree _o1[2], _r1;
    9438            0 :                                               {
    9439            0 :                                                 tree _o2[2], _r2;
    9440            0 :                                                 {
    9441            0 :                                                   tree _o3[1], _r3;
    9442            0 :                                                   _o3[0] = captures[1];
    9443            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10F, TREE_TYPE (_o3[0]), 1, _o3[0]);
    9444            0 :                                                   if (!_r3)
    9445            0 :                                                     goto next_after_fail1452;
    9446            0 :                                                   _o2[0] = _r3;
    9447              :                                                 }
    9448            0 :                                                 _o2[1] = captures[2];
    9449            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    9450            0 :                                                 _o1[0] = _r2;
    9451              :                                               }
    9452            0 :                                               _o1[1] = captures[4];
    9453            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9454            0 :                                               res_op0 = _r1;
    9455              :                                             }
    9456            0 :                                             tree _r;
    9457            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10F, type, 1, res_op0);
    9458            0 :                                             if (!_r)
    9459            0 :                                               goto next_after_fail1452;
    9460            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 985, __FILE__, __LINE__, true);
    9461            0 :                                             return _r;
    9462              :                                           }
    9463            0 : next_after_fail1452:;
    9464              :                                         }
    9465              :                                     }
    9466              :                                 }
    9467            0 :                                 break;
    9468              :                               }
    9469              :                             default:;
    9470              :                             }
    9471              :                         }
    9472              :                       break;
    9473              :                     default:;
    9474              :                     }
    9475              :                   break;
    9476              :                 default:;
    9477              :                 }
    9478              :             }
    9479              :           break;
    9480           48 :         case CFN_BUILT_IN_EXP10L:
    9481           48 :           if (call_expr_nargs (_p0) == 1)
    9482              :     {
    9483           48 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9484           48 :               switch (TREE_CODE (_p1))
    9485              :                 {
    9486           24 :                 case CALL_EXPR:
    9487           24 :                   switch (get_call_combined_fn (_p1))
    9488              :                     {
    9489           24 :                     case CFN_BUILT_IN_EXP10L:
    9490           24 :                       if (call_expr_nargs (_p1) == 1)
    9491              :     {
    9492           24 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9493           24 :                           {
    9494           24 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    9495           24 :                             if (flag_unsafe_math_optimizations
    9496              : )
    9497              :                               {
    9498           24 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1453;
    9499           24 :                                 {
    9500           24 :                                   tree res_op0;
    9501           24 :                                   {
    9502           24 :                                     tree _o1[2], _r1;
    9503           24 :                                     _o1[0] = captures[1];
    9504           24 :                                     _o1[1] = captures[3];
    9505           24 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9506           24 :                                     res_op0 = _r1;
    9507              :                                   }
    9508           24 :                                   tree _r;
    9509           24 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10L, type, 1, res_op0);
    9510           24 :                                   if (!_r)
    9511            0 :                                     goto next_after_fail1453;
    9512           24 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 984, __FILE__, __LINE__, true);
    9513           24 :                                   return _r;
    9514              :                                 }
    9515            0 : next_after_fail1453:;
    9516              :                               }
    9517              :                           }
    9518              :                         }
    9519              :                       break;
    9520            0 :                     case CFN_BUILT_IN_POWL:
    9521            0 :                       if (call_expr_nargs (_p1) == 2)
    9522              :     {
    9523            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9524            0 :                           tree _q41 = CALL_EXPR_ARG (_p1, 1);
    9525            0 :                           switch (TREE_CODE (_q40))
    9526              :                             {
    9527            0 :                             case REAL_CST:
    9528            0 :                               {
    9529            0 :                                 {
    9530            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
    9531            0 :                                   if (flag_unsafe_math_optimizations
    9532              : )
    9533              :                                     {
    9534            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
    9535            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
    9536              : )
    9537              :                                         {
    9538            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1454;
    9539            0 :                                           {
    9540            0 :                                             tree res_op0;
    9541            0 :                                             {
    9542            0 :                                               tree _o1[2], _r1;
    9543            0 :                                               {
    9544            0 :                                                 tree _o2[2], _r2;
    9545            0 :                                                 {
    9546            0 :                                                   tree _o3[1], _r3;
    9547            0 :                                                   _o3[0] = captures[1];
    9548            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10L, TREE_TYPE (_o3[0]), 1, _o3[0]);
    9549            0 :                                                   if (!_r3)
    9550            0 :                                                     goto next_after_fail1454;
    9551            0 :                                                   _o2[0] = _r3;
    9552              :                                                 }
    9553            0 :                                                 _o2[1] = captures[2];
    9554            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    9555            0 :                                                 _o1[0] = _r2;
    9556              :                                               }
    9557            0 :                                               _o1[1] = captures[4];
    9558            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9559            0 :                                               res_op0 = _r1;
    9560              :                                             }
    9561            0 :                                             tree _r;
    9562            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10L, type, 1, res_op0);
    9563            0 :                                             if (!_r)
    9564            0 :                                               goto next_after_fail1454;
    9565            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 985, __FILE__, __LINE__, true);
    9566            0 :                                             return _r;
    9567              :                                           }
    9568            0 : next_after_fail1454:;
    9569              :                                         }
    9570              :                                     }
    9571              :                                 }
    9572            0 :                                 break;
    9573              :                               }
    9574              :                             default:;
    9575              :                             }
    9576              :                         }
    9577              :                       break;
    9578              :                     default:;
    9579              :                     }
    9580              :                   break;
    9581              :                 default:;
    9582              :                 }
    9583              :             }
    9584              :           break;
    9585           18 :         case CFN_BUILT_IN_CBRT:
    9586           18 :           if (call_expr_nargs (_p0) == 1)
    9587              :     {
    9588           18 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9589           18 :               switch (TREE_CODE (_p1))
    9590              :                 {
    9591           14 :                 case CALL_EXPR:
    9592           14 :                   switch (get_call_combined_fn (_p1))
    9593              :                     {
    9594           14 :                     case CFN_BUILT_IN_CBRT:
    9595           14 :                       if (call_expr_nargs (_p1) == 1)
    9596              :     {
    9597           14 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9598           14 :                           {
    9599           14 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    9600           14 :                             if (flag_unsafe_math_optimizations
    9601              : )
    9602              :                               {
    9603           12 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1455;
    9604           12 :                                 {
    9605           12 :                                   tree res_op0;
    9606           12 :                                   {
    9607           12 :                                     tree _o1[2], _r1;
    9608           12 :                                     _o1[0] = captures[1];
    9609           12 :                                     _o1[1] = captures[3];
    9610           12 :                                     _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9611           12 :                                     res_op0 = _r1;
    9612              :                                   }
    9613           12 :                                   tree _r;
    9614           12 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_CBRT, type, 1, res_op0);
    9615           12 :                                   if (!_r)
    9616            0 :                                     goto next_after_fail1455;
    9617           12 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 983, __FILE__, __LINE__, true);
    9618           12 :                                   return _r;
    9619              :                                 }
    9620            2 : next_after_fail1455:;
    9621              :                               }
    9622              :                           }
    9623              :                         }
    9624              :                       break;
    9625              :                     default:;
    9626              :                     }
    9627              :                   break;
    9628              :                 default:;
    9629              :                 }
    9630              :             }
    9631              :           break;
    9632           48 :         case CFN_BUILT_IN_EXP2:
    9633           48 :           if (call_expr_nargs (_p0) == 1)
    9634              :     {
    9635           48 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9636           48 :               switch (TREE_CODE (_p1))
    9637              :                 {
    9638           24 :                 case CALL_EXPR:
    9639           24 :                   switch (get_call_combined_fn (_p1))
    9640              :                     {
    9641            0 :                     case CFN_BUILT_IN_POW:
    9642            0 :                       if (call_expr_nargs (_p1) == 2)
    9643              :     {
    9644            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9645            0 :                           tree _q41 = CALL_EXPR_ARG (_p1, 1);
    9646            0 :                           switch (TREE_CODE (_q40))
    9647              :                             {
    9648            0 :                             case REAL_CST:
    9649            0 :                               {
    9650            0 :                                 {
    9651            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
    9652            0 :                                   if (flag_unsafe_math_optimizations
    9653              : )
    9654              :                                     {
    9655            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
    9656            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
    9657              : )
    9658              :                                         {
    9659            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1456;
    9660            0 :                                           {
    9661            0 :                                             tree res_op0;
    9662            0 :                                             {
    9663            0 :                                               tree _o1[2], _r1;
    9664            0 :                                               {
    9665            0 :                                                 tree _o2[2], _r2;
    9666            0 :                                                 {
    9667            0 :                                                   tree _o3[1], _r3;
    9668            0 :                                                   _o3[0] = captures[1];
    9669            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG2, TREE_TYPE (_o3[0]), 1, _o3[0]);
    9670            0 :                                                   if (!_r3)
    9671            0 :                                                     goto next_after_fail1456;
    9672            0 :                                                   _o2[0] = _r3;
    9673              :                                                 }
    9674            0 :                                                 _o2[1] = captures[2];
    9675            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    9676            0 :                                                 _o1[0] = _r2;
    9677              :                                               }
    9678            0 :                                               _o1[1] = captures[4];
    9679            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9680            0 :                                               res_op0 = _r1;
    9681              :                                             }
    9682            0 :                                             tree _r;
    9683            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2, type, 1, res_op0);
    9684            0 :                                             if (!_r)
    9685            0 :                                               goto next_after_fail1456;
    9686            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 985, __FILE__, __LINE__, true);
    9687            0 :                                             return _r;
    9688              :                                           }
    9689            0 : next_after_fail1456:;
    9690              :                                         }
    9691              :                                     }
    9692              :                                 }
    9693            0 :                                 break;
    9694              :                               }
    9695              :                             default:;
    9696              :                             }
    9697              :                         }
    9698              :                       break;
    9699           24 :                     case CFN_BUILT_IN_EXP2:
    9700           24 :                       if (call_expr_nargs (_p1) == 1)
    9701              :     {
    9702           24 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9703           24 :                           {
    9704           24 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    9705           24 :                             if (flag_unsafe_math_optimizations
    9706              : )
    9707              :                               {
    9708           24 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1457;
    9709           24 :                                 {
    9710           24 :                                   tree res_op0;
    9711           24 :                                   {
    9712           24 :                                     tree _o1[2], _r1;
    9713           24 :                                     _o1[0] = captures[1];
    9714           24 :                                     _o1[1] = captures[3];
    9715           24 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9716           24 :                                     res_op0 = _r1;
    9717              :                                   }
    9718           24 :                                   tree _r;
    9719           24 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2, type, 1, res_op0);
    9720           24 :                                   if (!_r)
    9721            0 :                                     goto next_after_fail1457;
    9722           24 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 984, __FILE__, __LINE__, true);
    9723           24 :                                   return _r;
    9724              :                                 }
    9725            0 : next_after_fail1457:;
    9726              :                               }
    9727              :                           }
    9728              :                         }
    9729              :                       break;
    9730              :                     default:;
    9731              :                     }
    9732              :                   break;
    9733              :                 default:;
    9734              :                 }
    9735              :             }
    9736              :           break;
    9737           66 :         case CFN_BUILT_IN_EXPF:
    9738           66 :           if (call_expr_nargs (_p0) == 1)
    9739              :     {
    9740           66 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9741           66 :               switch (TREE_CODE (_p1))
    9742              :                 {
    9743           36 :                 case CALL_EXPR:
    9744           36 :                   switch (get_call_combined_fn (_p1))
    9745              :                     {
    9746           29 :                     case CFN_BUILT_IN_EXPF:
    9747           29 :                       if (call_expr_nargs (_p1) == 1)
    9748              :     {
    9749           29 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9750           29 :                           {
    9751           29 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    9752           29 :                             if (flag_unsafe_math_optimizations
    9753              : )
    9754              :                               {
    9755           25 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1458;
    9756           25 :                                 {
    9757           25 :                                   tree res_op0;
    9758           25 :                                   {
    9759           25 :                                     tree _o1[2], _r1;
    9760           25 :                                     _o1[0] = captures[1];
    9761           25 :                                     _o1[1] = captures[3];
    9762           25 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9763           25 :                                     res_op0 = _r1;
    9764              :                                   }
    9765           25 :                                   tree _r;
    9766           25 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXPF, type, 1, res_op0);
    9767           25 :                                   if (!_r)
    9768            0 :                                     goto next_after_fail1458;
    9769           25 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 984, __FILE__, __LINE__, true);
    9770           25 :                                   return _r;
    9771              :                                 }
    9772            4 : next_after_fail1458:;
    9773              :                               }
    9774              :                           }
    9775              :                         }
    9776              :                       break;
    9777            0 :                     case CFN_BUILT_IN_POWF:
    9778            0 :                       if (call_expr_nargs (_p1) == 2)
    9779              :     {
    9780            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9781            0 :                           tree _q41 = CALL_EXPR_ARG (_p1, 1);
    9782            0 :                           switch (TREE_CODE (_q40))
    9783              :                             {
    9784            0 :                             case REAL_CST:
    9785            0 :                               {
    9786            0 :                                 {
    9787            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
    9788            0 :                                   if (flag_unsafe_math_optimizations
    9789              : )
    9790              :                                     {
    9791            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
    9792            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
    9793              : )
    9794              :                                         {
    9795            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1459;
    9796            0 :                                           {
    9797            0 :                                             tree res_op0;
    9798            0 :                                             {
    9799            0 :                                               tree _o1[2], _r1;
    9800            0 :                                               {
    9801            0 :                                                 tree _o2[2], _r2;
    9802            0 :                                                 {
    9803            0 :                                                   tree _o3[1], _r3;
    9804            0 :                                                   _o3[0] = captures[1];
    9805            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOGF, TREE_TYPE (_o3[0]), 1, _o3[0]);
    9806            0 :                                                   if (!_r3)
    9807            0 :                                                     goto next_after_fail1459;
    9808            0 :                                                   _o2[0] = _r3;
    9809              :                                                 }
    9810            0 :                                                 _o2[1] = captures[2];
    9811            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    9812            0 :                                                 _o1[0] = _r2;
    9813              :                                               }
    9814            0 :                                               _o1[1] = captures[4];
    9815            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9816            0 :                                               res_op0 = _r1;
    9817              :                                             }
    9818            0 :                                             tree _r;
    9819            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXPF, type, 1, res_op0);
    9820            0 :                                             if (!_r)
    9821            0 :                                               goto next_after_fail1459;
    9822            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 985, __FILE__, __LINE__, true);
    9823            0 :                                             return _r;
    9824              :                                           }
    9825            0 : next_after_fail1459:;
    9826              :                                         }
    9827              :                                     }
    9828              :                                 }
    9829            0 :                                 break;
    9830              :                               }
    9831              :                             default:;
    9832              :                             }
    9833              :                         }
    9834              :                       break;
    9835              :                     default:;
    9836              :                     }
    9837              :                   break;
    9838              :                 default:;
    9839              :                 }
    9840              :             }
    9841              :           break;
    9842           59 :         case CFN_BUILT_IN_EXPL:
    9843           59 :           if (call_expr_nargs (_p0) == 1)
    9844              :     {
    9845           59 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9846           59 :               switch (TREE_CODE (_p1))
    9847              :                 {
    9848           29 :                 case CALL_EXPR:
    9849           29 :                   switch (get_call_combined_fn (_p1))
    9850              :                     {
    9851           29 :                     case CFN_BUILT_IN_EXPL:
    9852           29 :                       if (call_expr_nargs (_p1) == 1)
    9853              :     {
    9854           29 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9855           29 :                           {
    9856           29 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
    9857           29 :                             if (flag_unsafe_math_optimizations
    9858              : )
    9859              :                               {
    9860           25 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1460;
    9861           25 :                                 {
    9862           25 :                                   tree res_op0;
    9863           25 :                                   {
    9864           25 :                                     tree _o1[2], _r1;
    9865           25 :                                     _o1[0] = captures[1];
    9866           25 :                                     _o1[1] = captures[3];
    9867           25 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9868           25 :                                     res_op0 = _r1;
    9869              :                                   }
    9870           25 :                                   tree _r;
    9871           25 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXPL, type, 1, res_op0);
    9872           25 :                                   if (!_r)
    9873            0 :                                     goto next_after_fail1460;
    9874           25 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 984, __FILE__, __LINE__, true);
    9875           25 :                                   return _r;
    9876              :                                 }
    9877            4 : next_after_fail1460:;
    9878              :                               }
    9879              :                           }
    9880              :                         }
    9881              :                       break;
    9882            0 :                     case CFN_BUILT_IN_POWL:
    9883            0 :                       if (call_expr_nargs (_p1) == 2)
    9884              :     {
    9885            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
    9886            0 :                           tree _q41 = CALL_EXPR_ARG (_p1, 1);
    9887            0 :                           switch (TREE_CODE (_q40))
    9888              :                             {
    9889            0 :                             case REAL_CST:
    9890            0 :                               {
    9891            0 :                                 {
    9892            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
    9893            0 :                                   if (flag_unsafe_math_optimizations
    9894              : )
    9895              :                                     {
    9896            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
    9897            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
    9898              : )
    9899              :                                         {
    9900            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1461;
    9901            0 :                                           {
    9902            0 :                                             tree res_op0;
    9903            0 :                                             {
    9904            0 :                                               tree _o1[2], _r1;
    9905            0 :                                               {
    9906            0 :                                                 tree _o2[2], _r2;
    9907            0 :                                                 {
    9908            0 :                                                   tree _o3[1], _r3;
    9909            0 :                                                   _o3[0] = captures[1];
    9910            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOGL, TREE_TYPE (_o3[0]), 1, _o3[0]);
    9911            0 :                                                   if (!_r3)
    9912            0 :                                                     goto next_after_fail1461;
    9913            0 :                                                   _o2[0] = _r3;
    9914              :                                                 }
    9915            0 :                                                 _o2[1] = captures[2];
    9916            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    9917            0 :                                                 _o1[0] = _r2;
    9918              :                                               }
    9919            0 :                                               _o1[1] = captures[4];
    9920            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9921            0 :                                               res_op0 = _r1;
    9922              :                                             }
    9923            0 :                                             tree _r;
    9924            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXPL, type, 1, res_op0);
    9925            0 :                                             if (!_r)
    9926            0 :                                               goto next_after_fail1461;
    9927            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 985, __FILE__, __LINE__, true);
    9928            0 :                                             return _r;
    9929              :                                           }
    9930            0 : next_after_fail1461:;
    9931              :                                         }
    9932              :                                     }
    9933              :                                 }
    9934            0 :                                 break;
    9935              :                               }
    9936              :                             default:;
    9937              :                             }
    9938              :                         }
    9939              :                       break;
    9940              :                     default:;
    9941              :                     }
    9942              :                   break;
    9943              :                 default:;
    9944              :                 }
    9945              :             }
    9946              :           break;
    9947           19 :         case CFN_BUILT_IN_POWF:
    9948           19 :           if (call_expr_nargs (_p0) == 2)
    9949              :     {
    9950           19 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
    9951           19 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
    9952           19 :               switch (TREE_CODE (_q20))
    9953              :                 {
    9954            0 :                 case REAL_CST:
    9955            0 :                   {
    9956            0 :                     switch (TREE_CODE (_p1))
    9957              :                       {
    9958            0 :                       case CALL_EXPR:
    9959            0 :                         switch (get_call_combined_fn (_p1))
    9960              :                           {
    9961            0 :                           case CFN_BUILT_IN_EXP10F:
    9962            0 :                             if (call_expr_nargs (_p1) == 1)
    9963              :     {
    9964            0 :                                 tree _q50 = CALL_EXPR_ARG (_p1, 0);
    9965            0 :                                 {
    9966            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
    9967            0 :                                   if (flag_unsafe_math_optimizations
    9968              : )
    9969              :                                     {
    9970            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
    9971            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
    9972              : )
    9973              :                                         {
    9974            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1462;
    9975            0 :                                           {
    9976            0 :                                             tree res_op0;
    9977            0 :                                             {
    9978            0 :                                               tree _o1[2], _r1;
    9979            0 :                                               {
    9980            0 :                                                 tree _o2[2], _r2;
    9981            0 :                                                 {
    9982            0 :                                                   tree _o3[1], _r3;
    9983            0 :                                                   _o3[0] = captures[1];
    9984            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10F, TREE_TYPE (_o3[0]), 1, _o3[0]);
    9985            0 :                                                   if (!_r3)
    9986            0 :                                                     goto next_after_fail1462;
    9987            0 :                                                   _o2[0] = _r3;
    9988              :                                                 }
    9989            0 :                                                 _o2[1] = captures[2];
    9990            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
    9991            0 :                                                 _o1[0] = _r2;
    9992              :                                               }
    9993            0 :                                               _o1[1] = captures[4];
    9994            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
    9995            0 :                                               res_op0 = _r1;
    9996              :                                             }
    9997            0 :                                             tree _r;
    9998            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10F, type, 1, res_op0);
    9999            0 :                                             if (!_r)
   10000            0 :                                               goto next_after_fail1462;
   10001            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 985, __FILE__, __LINE__, true);
   10002            0 :                                             return _r;
   10003              :                                           }
   10004            0 : next_after_fail1462:;
   10005              :                                         }
   10006              :                                     }
   10007              :                                 }
   10008              :                               }
   10009              :                             break;
   10010            0 :                           case CFN_BUILT_IN_EXPF:
   10011            0 :                             if (call_expr_nargs (_p1) == 1)
   10012              :     {
   10013            0 :                                 tree _q50 = CALL_EXPR_ARG (_p1, 0);
   10014            0 :                                 {
   10015            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   10016            0 :                                   if (flag_unsafe_math_optimizations
   10017              : )
   10018              :                                     {
   10019            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   10020            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   10021              : )
   10022              :                                         {
   10023            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1463;
   10024            0 :                                           {
   10025            0 :                                             tree res_op0;
   10026            0 :                                             {
   10027            0 :                                               tree _o1[2], _r1;
   10028            0 :                                               {
   10029            0 :                                                 tree _o2[2], _r2;
   10030            0 :                                                 {
   10031            0 :                                                   tree _o3[1], _r3;
   10032            0 :                                                   _o3[0] = captures[1];
   10033            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOGF, TREE_TYPE (_o3[0]), 1, _o3[0]);
   10034            0 :                                                   if (!_r3)
   10035            0 :                                                     goto next_after_fail1463;
   10036            0 :                                                   _o2[0] = _r3;
   10037              :                                                 }
   10038            0 :                                                 _o2[1] = captures[2];
   10039            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   10040            0 :                                                 _o1[0] = _r2;
   10041              :                                               }
   10042            0 :                                               _o1[1] = captures[4];
   10043            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10044            0 :                                               res_op0 = _r1;
   10045              :                                             }
   10046            0 :                                             tree _r;
   10047            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXPF, type, 1, res_op0);
   10048            0 :                                             if (!_r)
   10049            0 :                                               goto next_after_fail1463;
   10050            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 985, __FILE__, __LINE__, true);
   10051            0 :                                             return _r;
   10052              :                                           }
   10053            0 : next_after_fail1463:;
   10054              :                                         }
   10055              :                                     }
   10056              :                                 }
   10057              :                               }
   10058              :                             break;
   10059            0 :                           case CFN_BUILT_IN_POW10F:
   10060            0 :                             if (call_expr_nargs (_p1) == 1)
   10061              :     {
   10062            0 :                                 tree _q50 = CALL_EXPR_ARG (_p1, 0);
   10063            0 :                                 {
   10064            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   10065            0 :                                   if (flag_unsafe_math_optimizations
   10066              : )
   10067              :                                     {
   10068            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   10069            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   10070              : )
   10071              :                                         {
   10072            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1464;
   10073            0 :                                           {
   10074            0 :                                             tree res_op0;
   10075            0 :                                             {
   10076            0 :                                               tree _o1[2], _r1;
   10077            0 :                                               {
   10078            0 :                                                 tree _o2[2], _r2;
   10079            0 :                                                 {
   10080            0 :                                                   tree _o3[1], _r3;
   10081            0 :                                                   _o3[0] = captures[1];
   10082            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10F, TREE_TYPE (_o3[0]), 1, _o3[0]);
   10083            0 :                                                   if (!_r3)
   10084            0 :                                                     goto next_after_fail1464;
   10085            0 :                                                   _o2[0] = _r3;
   10086              :                                                 }
   10087            0 :                                                 _o2[1] = captures[2];
   10088            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   10089            0 :                                                 _o1[0] = _r2;
   10090              :                                               }
   10091            0 :                                               _o1[1] = captures[4];
   10092            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10093            0 :                                               res_op0 = _r1;
   10094              :                                             }
   10095            0 :                                             tree _r;
   10096            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10F, type, 1, res_op0);
   10097            0 :                                             if (!_r)
   10098            0 :                                               goto next_after_fail1464;
   10099            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 985, __FILE__, __LINE__, true);
   10100            0 :                                             return _r;
   10101              :                                           }
   10102            0 : next_after_fail1464:;
   10103              :                                         }
   10104              :                                     }
   10105              :                                 }
   10106              :                               }
   10107              :                             break;
   10108            0 :                           case CFN_BUILT_IN_EXP2F:
   10109            0 :                             if (call_expr_nargs (_p1) == 1)
   10110              :     {
   10111            0 :                                 tree _q50 = CALL_EXPR_ARG (_p1, 0);
   10112            0 :                                 {
   10113            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   10114            0 :                                   if (flag_unsafe_math_optimizations
   10115              : )
   10116              :                                     {
   10117            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   10118            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   10119              : )
   10120              :                                         {
   10121            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1465;
   10122            0 :                                           {
   10123            0 :                                             tree res_op0;
   10124            0 :                                             {
   10125            0 :                                               tree _o1[2], _r1;
   10126            0 :                                               {
   10127            0 :                                                 tree _o2[2], _r2;
   10128            0 :                                                 {
   10129            0 :                                                   tree _o3[1], _r3;
   10130            0 :                                                   _o3[0] = captures[1];
   10131            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG2F, TREE_TYPE (_o3[0]), 1, _o3[0]);
   10132            0 :                                                   if (!_r3)
   10133            0 :                                                     goto next_after_fail1465;
   10134            0 :                                                   _o2[0] = _r3;
   10135              :                                                 }
   10136            0 :                                                 _o2[1] = captures[2];
   10137            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   10138            0 :                                                 _o1[0] = _r2;
   10139              :                                               }
   10140            0 :                                               _o1[1] = captures[4];
   10141            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10142            0 :                                               res_op0 = _r1;
   10143              :                                             }
   10144            0 :                                             tree _r;
   10145            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2F, type, 1, res_op0);
   10146            0 :                                             if (!_r)
   10147            0 :                                               goto next_after_fail1465;
   10148            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 985, __FILE__, __LINE__, true);
   10149            0 :                                             return _r;
   10150              :                                           }
   10151            0 : next_after_fail1465:;
   10152              :                                         }
   10153              :                                     }
   10154              :                                 }
   10155              :                               }
   10156              :                             break;
   10157              :                           default:;
   10158              :                           }
   10159              :                         break;
   10160              :                       default:;
   10161              :                       }
   10162              :                     break;
   10163              :                   }
   10164           19 :                 default:;
   10165              :                 }
   10166           19 :               switch (TREE_CODE (_q21))
   10167              :                 {
   10168            5 :                 case REAL_CST:
   10169            5 :                   {
   10170            5 :                     if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
   10171              :                       {
   10172            0 :                         {
   10173            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
   10174            0 :                           tree res = generic_simplify_201 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWF);
   10175            0 :                           if (res) return res;
   10176              :                         }
   10177              :                       }
   10178              :                     break;
   10179              :                   }
   10180              :                 default:;
   10181              :                 }
   10182              :             }
   10183              :           break;
   10184           12 :         case CFN_BUILT_IN_POWL:
   10185           12 :           if (call_expr_nargs (_p0) == 2)
   10186              :     {
   10187           12 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10188           12 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   10189           12 :               switch (TREE_CODE (_q20))
   10190              :                 {
   10191            0 :                 case REAL_CST:
   10192            0 :                   {
   10193            0 :                     switch (TREE_CODE (_p1))
   10194              :                       {
   10195            0 :                       case CALL_EXPR:
   10196            0 :                         switch (get_call_combined_fn (_p1))
   10197              :                           {
   10198            0 :                           case CFN_BUILT_IN_EXP10L:
   10199            0 :                             if (call_expr_nargs (_p1) == 1)
   10200              :     {
   10201            0 :                                 tree _q50 = CALL_EXPR_ARG (_p1, 0);
   10202            0 :                                 {
   10203            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   10204            0 :                                   if (flag_unsafe_math_optimizations
   10205              : )
   10206              :                                     {
   10207            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   10208            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   10209              : )
   10210              :                                         {
   10211            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1466;
   10212            0 :                                           {
   10213            0 :                                             tree res_op0;
   10214            0 :                                             {
   10215            0 :                                               tree _o1[2], _r1;
   10216            0 :                                               {
   10217            0 :                                                 tree _o2[2], _r2;
   10218            0 :                                                 {
   10219            0 :                                                   tree _o3[1], _r3;
   10220            0 :                                                   _o3[0] = captures[1];
   10221            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10L, TREE_TYPE (_o3[0]), 1, _o3[0]);
   10222            0 :                                                   if (!_r3)
   10223            0 :                                                     goto next_after_fail1466;
   10224            0 :                                                   _o2[0] = _r3;
   10225              :                                                 }
   10226            0 :                                                 _o2[1] = captures[2];
   10227            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   10228            0 :                                                 _o1[0] = _r2;
   10229              :                                               }
   10230            0 :                                               _o1[1] = captures[4];
   10231            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10232            0 :                                               res_op0 = _r1;
   10233              :                                             }
   10234            0 :                                             tree _r;
   10235            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10L, type, 1, res_op0);
   10236            0 :                                             if (!_r)
   10237            0 :                                               goto next_after_fail1466;
   10238            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 985, __FILE__, __LINE__, true);
   10239            0 :                                             return _r;
   10240              :                                           }
   10241            0 : next_after_fail1466:;
   10242              :                                         }
   10243              :                                     }
   10244              :                                 }
   10245              :                               }
   10246              :                             break;
   10247            0 :                           case CFN_BUILT_IN_EXPL:
   10248            0 :                             if (call_expr_nargs (_p1) == 1)
   10249              :     {
   10250            0 :                                 tree _q50 = CALL_EXPR_ARG (_p1, 0);
   10251            0 :                                 {
   10252            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   10253            0 :                                   if (flag_unsafe_math_optimizations
   10254              : )
   10255              :                                     {
   10256            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   10257            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   10258              : )
   10259              :                                         {
   10260            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1467;
   10261            0 :                                           {
   10262            0 :                                             tree res_op0;
   10263            0 :                                             {
   10264            0 :                                               tree _o1[2], _r1;
   10265            0 :                                               {
   10266            0 :                                                 tree _o2[2], _r2;
   10267            0 :                                                 {
   10268            0 :                                                   tree _o3[1], _r3;
   10269            0 :                                                   _o3[0] = captures[1];
   10270            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOGL, TREE_TYPE (_o3[0]), 1, _o3[0]);
   10271            0 :                                                   if (!_r3)
   10272            0 :                                                     goto next_after_fail1467;
   10273            0 :                                                   _o2[0] = _r3;
   10274              :                                                 }
   10275            0 :                                                 _o2[1] = captures[2];
   10276            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   10277            0 :                                                 _o1[0] = _r2;
   10278              :                                               }
   10279            0 :                                               _o1[1] = captures[4];
   10280            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10281            0 :                                               res_op0 = _r1;
   10282              :                                             }
   10283            0 :                                             tree _r;
   10284            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXPL, type, 1, res_op0);
   10285            0 :                                             if (!_r)
   10286            0 :                                               goto next_after_fail1467;
   10287            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 985, __FILE__, __LINE__, true);
   10288            0 :                                             return _r;
   10289              :                                           }
   10290            0 : next_after_fail1467:;
   10291              :                                         }
   10292              :                                     }
   10293              :                                 }
   10294              :                               }
   10295              :                             break;
   10296            0 :                           case CFN_BUILT_IN_POW10L:
   10297            0 :                             if (call_expr_nargs (_p1) == 1)
   10298              :     {
   10299            0 :                                 tree _q50 = CALL_EXPR_ARG (_p1, 0);
   10300            0 :                                 {
   10301            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   10302            0 :                                   if (flag_unsafe_math_optimizations
   10303              : )
   10304              :                                     {
   10305            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   10306            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   10307              : )
   10308              :                                         {
   10309            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1468;
   10310            0 :                                           {
   10311            0 :                                             tree res_op0;
   10312            0 :                                             {
   10313            0 :                                               tree _o1[2], _r1;
   10314            0 :                                               {
   10315            0 :                                                 tree _o2[2], _r2;
   10316            0 :                                                 {
   10317            0 :                                                   tree _o3[1], _r3;
   10318            0 :                                                   _o3[0] = captures[1];
   10319            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10L, TREE_TYPE (_o3[0]), 1, _o3[0]);
   10320            0 :                                                   if (!_r3)
   10321            0 :                                                     goto next_after_fail1468;
   10322            0 :                                                   _o2[0] = _r3;
   10323              :                                                 }
   10324            0 :                                                 _o2[1] = captures[2];
   10325            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   10326            0 :                                                 _o1[0] = _r2;
   10327              :                                               }
   10328            0 :                                               _o1[1] = captures[4];
   10329            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10330            0 :                                               res_op0 = _r1;
   10331              :                                             }
   10332            0 :                                             tree _r;
   10333            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10L, type, 1, res_op0);
   10334            0 :                                             if (!_r)
   10335            0 :                                               goto next_after_fail1468;
   10336            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 985, __FILE__, __LINE__, true);
   10337            0 :                                             return _r;
   10338              :                                           }
   10339            0 : next_after_fail1468:;
   10340              :                                         }
   10341              :                                     }
   10342              :                                 }
   10343              :                               }
   10344              :                             break;
   10345            0 :                           case CFN_BUILT_IN_EXP2L:
   10346            0 :                             if (call_expr_nargs (_p1) == 1)
   10347              :     {
   10348            0 :                                 tree _q50 = CALL_EXPR_ARG (_p1, 0);
   10349            0 :                                 {
   10350            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   10351            0 :                                   if (flag_unsafe_math_optimizations
   10352              : )
   10353              :                                     {
   10354            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   10355            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   10356              : )
   10357              :                                         {
   10358            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1469;
   10359            0 :                                           {
   10360            0 :                                             tree res_op0;
   10361            0 :                                             {
   10362            0 :                                               tree _o1[2], _r1;
   10363            0 :                                               {
   10364            0 :                                                 tree _o2[2], _r2;
   10365            0 :                                                 {
   10366            0 :                                                   tree _o3[1], _r3;
   10367            0 :                                                   _o3[0] = captures[1];
   10368            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG2L, TREE_TYPE (_o3[0]), 1, _o3[0]);
   10369            0 :                                                   if (!_r3)
   10370            0 :                                                     goto next_after_fail1469;
   10371            0 :                                                   _o2[0] = _r3;
   10372              :                                                 }
   10373            0 :                                                 _o2[1] = captures[2];
   10374            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   10375            0 :                                                 _o1[0] = _r2;
   10376              :                                               }
   10377            0 :                                               _o1[1] = captures[4];
   10378            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10379            0 :                                               res_op0 = _r1;
   10380              :                                             }
   10381            0 :                                             tree _r;
   10382            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2L, type, 1, res_op0);
   10383            0 :                                             if (!_r)
   10384            0 :                                               goto next_after_fail1469;
   10385            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 985, __FILE__, __LINE__, true);
   10386            0 :                                             return _r;
   10387              :                                           }
   10388            0 : next_after_fail1469:;
   10389              :                                         }
   10390              :                                     }
   10391              :                                 }
   10392              :                               }
   10393              :                             break;
   10394              :                           default:;
   10395              :                           }
   10396              :                         break;
   10397              :                       default:;
   10398              :                       }
   10399              :                     break;
   10400              :                   }
   10401           12 :                 default:;
   10402              :                 }
   10403           12 :               switch (TREE_CODE (_q21))
   10404              :                 {
   10405            0 :                 case REAL_CST:
   10406            0 :                   {
   10407            0 :                     if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
   10408              :                       {
   10409            0 :                         {
   10410            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
   10411            0 :                           tree res = generic_simplify_201 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWL);
   10412            0 :                           if (res) return res;
   10413              :                         }
   10414              :                       }
   10415              :                     break;
   10416              :                   }
   10417              :                 default:;
   10418              :                 }
   10419              :             }
   10420              :           break;
   10421        19696 :         case CFN_BUILT_IN_SQRT:
   10422        19696 :           if (call_expr_nargs (_p0) == 1)
   10423              :     {
   10424        19696 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10425        19696 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
   10426              :                 {
   10427            2 :                   {
   10428            2 :                     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
   10429            2 :                     tree res = generic_simplify_200 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRT);
   10430            2 :                     if (res) return res;
   10431              :                   }
   10432              :                 }
   10433        19694 :               switch (TREE_CODE (_p1))
   10434              :                 {
   10435          100 :                 case CALL_EXPR:
   10436          100 :                   switch (get_call_combined_fn (_p1))
   10437              :                     {
   10438           37 :                     case CFN_BUILT_IN_SQRT:
   10439           37 :                       if (call_expr_nargs (_p1) == 1)
   10440              :     {
   10441           37 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   10442           37 :                           {
   10443           37 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   10444           37 :                             if (flag_unsafe_math_optimizations
   10445              : )
   10446              :                               {
   10447           15 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1470;
   10448           15 :                                 {
   10449           15 :                                   tree res_op0;
   10450           15 :                                   {
   10451           15 :                                     tree _o1[2], _r1;
   10452           15 :                                     _o1[0] = captures[1];
   10453           15 :                                     _o1[1] = captures[3];
   10454           15 :                                     _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10455           15 :                                     res_op0 = _r1;
   10456              :                                   }
   10457           15 :                                   tree _r;
   10458           15 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_SQRT, type, 1, res_op0);
   10459           15 :                                   if (!_r)
   10460            0 :                                     goto next_after_fail1470;
   10461           15 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 983, __FILE__, __LINE__, true);
   10462           15 :                                   return _r;
   10463              :                                 }
   10464           22 : next_after_fail1470:;
   10465              :                               }
   10466              :                           }
   10467              :                         }
   10468              :                       break;
   10469              :                     default:;
   10470              :                     }
   10471              :                   break;
   10472              :                 default:;
   10473              :                 }
   10474              :             }
   10475              :           break;
   10476            5 :         case CFN_BUILT_IN_LDEXPF:
   10477            5 :           if (call_expr_nargs (_p0) == 2)
   10478              :     {
   10479            5 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10480            5 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   10481            5 :               switch (TREE_CODE (_p1))
   10482              :                 {
   10483            2 :                 case REAL_CST:
   10484            2 :                   {
   10485            2 :                     {
   10486            2 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q21 };
   10487            2 :                       tree res = generic_simplify_202 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LDEXPF);
   10488            2 :                       if (res) return res;
   10489              :                     }
   10490            1 :                     break;
   10491              :                   }
   10492            4 :                 default:;
   10493              :                 }
   10494            4 :               switch (TREE_CODE (_q20))
   10495              :                 {
   10496            3 :                 case REAL_CST:
   10497            3 :                   {
   10498            3 :                     {
   10499            3 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q21 };
   10500            3 :                       tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LDEXPF);
   10501            3 :                       if (res) return res;
   10502              :                     }
   10503            0 :                     break;
   10504              :                   }
   10505              :                 default:;
   10506              :                 }
   10507              :             }
   10508              :           break;
   10509            5 :         case CFN_BUILT_IN_LDEXPL:
   10510            5 :           if (call_expr_nargs (_p0) == 2)
   10511              :     {
   10512            5 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10513            5 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   10514            5 :               switch (TREE_CODE (_p1))
   10515              :                 {
   10516            2 :                 case REAL_CST:
   10517            2 :                   {
   10518            2 :                     {
   10519            2 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q21 };
   10520            2 :                       tree res = generic_simplify_202 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LDEXPL);
   10521            2 :                       if (res) return res;
   10522              :                     }
   10523            1 :                     break;
   10524              :                   }
   10525            4 :                 default:;
   10526              :                 }
   10527            4 :               switch (TREE_CODE (_q20))
   10528              :                 {
   10529            3 :                 case REAL_CST:
   10530            3 :                   {
   10531            3 :                     {
   10532            3 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q21 };
   10533            3 :                       tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LDEXPL);
   10534            3 :                       if (res) return res;
   10535              :                     }
   10536            0 :                     break;
   10537              :                   }
   10538              :                 default:;
   10539              :                 }
   10540              :             }
   10541              :           break;
   10542            4 :         case CFN_BUILT_IN_SQRTF128:
   10543            4 :           if (call_expr_nargs (_p0) == 1)
   10544              :     {
   10545            4 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10546            4 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
   10547              :                 {
   10548            0 :                   {
   10549            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
   10550            0 :                     tree res = generic_simplify_200 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF128);
   10551            0 :                     if (res) return res;
   10552              :                   }
   10553              :                 }
   10554              :             }
   10555              :           break;
   10556            0 :         case CFN_BUILT_IN_SQRTF32X:
   10557            0 :           if (call_expr_nargs (_p0) == 1)
   10558              :     {
   10559            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10560            0 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
   10561              :                 {
   10562            0 :                   {
   10563            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
   10564            0 :                     tree res = generic_simplify_200 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF32X);
   10565            0 :                     if (res) return res;
   10566              :                   }
   10567              :                 }
   10568              :             }
   10569              :           break;
   10570            0 :         case CFN_BUILT_IN_SQRTF64X:
   10571            0 :           if (call_expr_nargs (_p0) == 1)
   10572              :     {
   10573            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10574            0 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
   10575              :                 {
   10576            0 :                   {
   10577            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
   10578            0 :                     tree res = generic_simplify_200 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF64X);
   10579            0 :                     if (res) return res;
   10580              :                   }
   10581              :                 }
   10582              :             }
   10583              :           break;
   10584            0 :         case CFN_BUILT_IN_SQRTF16:
   10585            0 :           if (call_expr_nargs (_p0) == 1)
   10586              :     {
   10587            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10588            0 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
   10589              :                 {
   10590            0 :                   {
   10591            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
   10592            0 :                     tree res = generic_simplify_200 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF16);
   10593            0 :                     if (res) return res;
   10594              :                   }
   10595              :                 }
   10596              :             }
   10597              :           break;
   10598            0 :         case CFN_BUILT_IN_SQRTF32:
   10599            0 :           if (call_expr_nargs (_p0) == 1)
   10600              :     {
   10601            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10602            0 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
   10603              :                 {
   10604            0 :                   {
   10605            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
   10606            0 :                     tree res = generic_simplify_200 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF32);
   10607            0 :                     if (res) return res;
   10608              :                   }
   10609              :                 }
   10610              :             }
   10611              :           break;
   10612            0 :         case CFN_BUILT_IN_SQRTF64:
   10613            0 :           if (call_expr_nargs (_p0) == 1)
   10614              :     {
   10615            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10616            0 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
   10617              :                 {
   10618            0 :                   {
   10619            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
   10620            0 :                     tree res = generic_simplify_200 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF64);
   10621            0 :                     if (res) return res;
   10622              :                   }
   10623              :                 }
   10624              :             }
   10625              :           break;
   10626            0 :         case CFN_EXP:
   10627            0 :           if (call_expr_nargs (_p0) == 1)
   10628              :     {
   10629            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10630            0 :               switch (TREE_CODE (_p1))
   10631              :                 {
   10632            0 :                 case CALL_EXPR:
   10633            0 :                   switch (get_call_combined_fn (_p1))
   10634              :                     {
   10635            0 :                     case CFN_EXP:
   10636            0 :                       if (call_expr_nargs (_p1) == 1)
   10637              :     {
   10638            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   10639            0 :                           {
   10640            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   10641            0 :                             if (flag_unsafe_math_optimizations
   10642              : )
   10643              :                               {
   10644            0 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1471;
   10645            0 :                                 {
   10646            0 :                                   tree res_op0;
   10647            0 :                                   {
   10648            0 :                                     tree _o1[2], _r1;
   10649            0 :                                     _o1[0] = captures[1];
   10650            0 :                                     _o1[1] = captures[3];
   10651            0 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10652            0 :                                     res_op0 = _r1;
   10653              :                                   }
   10654            0 :                                   tree _r;
   10655            0 :                                   _r = maybe_build_call_expr_loc (loc, CFN_EXP, type, 1, res_op0);
   10656            0 :                                   if (!_r)
   10657            0 :                                     goto next_after_fail1471;
   10658            0 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 984, __FILE__, __LINE__, true);
   10659            0 :                                   return _r;
   10660              :                                 }
   10661            0 : next_after_fail1471:;
   10662              :                               }
   10663              :                           }
   10664              :                         }
   10665              :                       break;
   10666            0 :                     case CFN_POW:
   10667            0 :                       if (call_expr_nargs (_p1) == 2)
   10668              :     {
   10669            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   10670            0 :                           tree _q41 = CALL_EXPR_ARG (_p1, 1);
   10671            0 :                           switch (TREE_CODE (_q40))
   10672              :                             {
   10673            0 :                             case REAL_CST:
   10674            0 :                               {
   10675            0 :                                 {
   10676            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
   10677            0 :                                   if (flag_unsafe_math_optimizations
   10678              : )
   10679              :                                     {
   10680            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   10681            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   10682              : )
   10683              :                                         {
   10684            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1472;
   10685            0 :                                           {
   10686            0 :                                             tree res_op0;
   10687            0 :                                             {
   10688            0 :                                               tree _o1[2], _r1;
   10689            0 :                                               {
   10690            0 :                                                 tree _o2[2], _r2;
   10691            0 :                                                 {
   10692            0 :                                                   tree _o3[1], _r3;
   10693            0 :                                                   _o3[0] = captures[1];
   10694            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_LOG, TREE_TYPE (_o3[0]), 1, _o3[0]);
   10695            0 :                                                   if (!_r3)
   10696            0 :                                                     goto next_after_fail1472;
   10697            0 :                                                   _o2[0] = _r3;
   10698              :                                                 }
   10699            0 :                                                 _o2[1] = captures[2];
   10700            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   10701            0 :                                                 _o1[0] = _r2;
   10702              :                                               }
   10703            0 :                                               _o1[1] = captures[4];
   10704            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10705            0 :                                               res_op0 = _r1;
   10706              :                                             }
   10707            0 :                                             tree _r;
   10708            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_EXP, type, 1, res_op0);
   10709            0 :                                             if (!_r)
   10710            0 :                                               goto next_after_fail1472;
   10711            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 985, __FILE__, __LINE__, true);
   10712            0 :                                             return _r;
   10713              :                                           }
   10714            0 : next_after_fail1472:;
   10715              :                                         }
   10716              :                                     }
   10717              :                                 }
   10718            0 :                                 break;
   10719              :                               }
   10720              :                             default:;
   10721              :                             }
   10722              :                         }
   10723              :                       break;
   10724              :                     default:;
   10725              :                     }
   10726              :                   break;
   10727              :                 default:;
   10728              :                 }
   10729              :             }
   10730              :           break;
   10731            0 :         case CFN_POW:
   10732            0 :           if (call_expr_nargs (_p0) == 2)
   10733              :     {
   10734            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10735            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   10736            0 :               switch (TREE_CODE (_q20))
   10737              :                 {
   10738            0 :                 case REAL_CST:
   10739            0 :                   {
   10740            0 :                     switch (TREE_CODE (_p1))
   10741              :                       {
   10742            0 :                       case CALL_EXPR:
   10743            0 :                         switch (get_call_combined_fn (_p1))
   10744              :                           {
   10745            0 :                           case CFN_EXP:
   10746            0 :                             if (call_expr_nargs (_p1) == 1)
   10747              :     {
   10748            0 :                                 tree _q50 = CALL_EXPR_ARG (_p1, 0);
   10749            0 :                                 {
   10750            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   10751            0 :                                   if (flag_unsafe_math_optimizations
   10752              : )
   10753              :                                     {
   10754            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   10755            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   10756              : )
   10757              :                                         {
   10758            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1473;
   10759            0 :                                           {
   10760            0 :                                             tree res_op0;
   10761            0 :                                             {
   10762            0 :                                               tree _o1[2], _r1;
   10763            0 :                                               {
   10764            0 :                                                 tree _o2[2], _r2;
   10765            0 :                                                 {
   10766            0 :                                                   tree _o3[1], _r3;
   10767            0 :                                                   _o3[0] = captures[1];
   10768            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_LOG, TREE_TYPE (_o3[0]), 1, _o3[0]);
   10769            0 :                                                   if (!_r3)
   10770            0 :                                                     goto next_after_fail1473;
   10771            0 :                                                   _o2[0] = _r3;
   10772              :                                                 }
   10773            0 :                                                 _o2[1] = captures[2];
   10774            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   10775            0 :                                                 _o1[0] = _r2;
   10776              :                                               }
   10777            0 :                                               _o1[1] = captures[4];
   10778            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10779            0 :                                               res_op0 = _r1;
   10780              :                                             }
   10781            0 :                                             tree _r;
   10782            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_EXP, type, 1, res_op0);
   10783            0 :                                             if (!_r)
   10784            0 :                                               goto next_after_fail1473;
   10785            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 985, __FILE__, __LINE__, true);
   10786            0 :                                             return _r;
   10787              :                                           }
   10788            0 : next_after_fail1473:;
   10789              :                                         }
   10790              :                                     }
   10791              :                                 }
   10792              :                               }
   10793              :                             break;
   10794            0 :                           case CFN_EXP2:
   10795            0 :                             if (call_expr_nargs (_p1) == 1)
   10796              :     {
   10797            0 :                                 tree _q50 = CALL_EXPR_ARG (_p1, 0);
   10798            0 :                                 {
   10799            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   10800            0 :                                   if (flag_unsafe_math_optimizations
   10801              : )
   10802              :                                     {
   10803            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   10804            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   10805              : )
   10806              :                                         {
   10807            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1474;
   10808            0 :                                           {
   10809            0 :                                             tree res_op0;
   10810            0 :                                             {
   10811            0 :                                               tree _o1[2], _r1;
   10812            0 :                                               {
   10813            0 :                                                 tree _o2[2], _r2;
   10814            0 :                                                 {
   10815            0 :                                                   tree _o3[1], _r3;
   10816            0 :                                                   _o3[0] = captures[1];
   10817            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_LOG2, TREE_TYPE (_o3[0]), 1, _o3[0]);
   10818            0 :                                                   if (!_r3)
   10819            0 :                                                     goto next_after_fail1474;
   10820            0 :                                                   _o2[0] = _r3;
   10821              :                                                 }
   10822            0 :                                                 _o2[1] = captures[2];
   10823            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   10824            0 :                                                 _o1[0] = _r2;
   10825              :                                               }
   10826            0 :                                               _o1[1] = captures[4];
   10827            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10828            0 :                                               res_op0 = _r1;
   10829              :                                             }
   10830            0 :                                             tree _r;
   10831            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_EXP2, type, 1, res_op0);
   10832            0 :                                             if (!_r)
   10833            0 :                                               goto next_after_fail1474;
   10834            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 985, __FILE__, __LINE__, true);
   10835            0 :                                             return _r;
   10836              :                                           }
   10837            0 : next_after_fail1474:;
   10838              :                                         }
   10839              :                                     }
   10840              :                                 }
   10841              :                               }
   10842              :                             break;
   10843            0 :                           case CFN_EXP10:
   10844            0 :                             if (call_expr_nargs (_p1) == 1)
   10845              :     {
   10846            0 :                                 tree _q50 = CALL_EXPR_ARG (_p1, 0);
   10847            0 :                                 {
   10848            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   10849            0 :                                   if (flag_unsafe_math_optimizations
   10850              : )
   10851              :                                     {
   10852            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   10853            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   10854              : )
   10855              :                                         {
   10856            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1475;
   10857            0 :                                           {
   10858            0 :                                             tree res_op0;
   10859            0 :                                             {
   10860            0 :                                               tree _o1[2], _r1;
   10861            0 :                                               {
   10862            0 :                                                 tree _o2[2], _r2;
   10863            0 :                                                 {
   10864            0 :                                                   tree _o3[1], _r3;
   10865            0 :                                                   _o3[0] = captures[1];
   10866            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_LOG10, TREE_TYPE (_o3[0]), 1, _o3[0]);
   10867            0 :                                                   if (!_r3)
   10868            0 :                                                     goto next_after_fail1475;
   10869            0 :                                                   _o2[0] = _r3;
   10870              :                                                 }
   10871            0 :                                                 _o2[1] = captures[2];
   10872            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   10873            0 :                                                 _o1[0] = _r2;
   10874              :                                               }
   10875            0 :                                               _o1[1] = captures[4];
   10876            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10877            0 :                                               res_op0 = _r1;
   10878              :                                             }
   10879            0 :                                             tree _r;
   10880            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_EXP10, type, 1, res_op0);
   10881            0 :                                             if (!_r)
   10882            0 :                                               goto next_after_fail1475;
   10883            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 985, __FILE__, __LINE__, true);
   10884            0 :                                             return _r;
   10885              :                                           }
   10886            0 : next_after_fail1475:;
   10887              :                                         }
   10888              :                                     }
   10889              :                                 }
   10890              :                               }
   10891              :                             break;
   10892              :                           default:;
   10893              :                           }
   10894              :                         break;
   10895              :                       default:;
   10896              :                       }
   10897              :                     break;
   10898              :                   }
   10899            0 :                 default:;
   10900              :                 }
   10901            0 :               switch (TREE_CODE (_q21))
   10902              :                 {
   10903            0 :                 case REAL_CST:
   10904            0 :                   {
   10905            0 :                     if ((_p1 == _q20 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _q20, 0) && types_match (_p1, _q20)))
   10906              :                       {
   10907            0 :                         {
   10908            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _q20, _p0, _q21 };
   10909            0 :                           tree res = generic_simplify_201 (loc, type, _p0, _p1, captures, CFN_POW);
   10910            0 :                           if (res) return res;
   10911              :                         }
   10912              :                       }
   10913              :                     break;
   10914              :                   }
   10915              :                 default:;
   10916              :                 }
   10917              :             }
   10918              :           break;
   10919           24 :         case CFN_BUILT_IN_POW10F:
   10920           24 :           if (call_expr_nargs (_p0) == 1)
   10921              :     {
   10922           24 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   10923           24 :               switch (TREE_CODE (_p1))
   10924              :                 {
   10925           12 :                 case CALL_EXPR:
   10926           12 :                   switch (get_call_combined_fn (_p1))
   10927              :                     {
   10928            0 :                     case CFN_BUILT_IN_POWF:
   10929            0 :                       if (call_expr_nargs (_p1) == 2)
   10930              :     {
   10931            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   10932            0 :                           tree _q41 = CALL_EXPR_ARG (_p1, 1);
   10933            0 :                           switch (TREE_CODE (_q40))
   10934              :                             {
   10935            0 :                             case REAL_CST:
   10936            0 :                               {
   10937            0 :                                 {
   10938            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
   10939            0 :                                   if (flag_unsafe_math_optimizations
   10940              : )
   10941              :                                     {
   10942            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   10943            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   10944              : )
   10945              :                                         {
   10946            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1476;
   10947            0 :                                           {
   10948            0 :                                             tree res_op0;
   10949            0 :                                             {
   10950            0 :                                               tree _o1[2], _r1;
   10951            0 :                                               {
   10952            0 :                                                 tree _o2[2], _r2;
   10953            0 :                                                 {
   10954            0 :                                                   tree _o3[1], _r3;
   10955            0 :                                                   _o3[0] = captures[1];
   10956            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10F, TREE_TYPE (_o3[0]), 1, _o3[0]);
   10957            0 :                                                   if (!_r3)
   10958            0 :                                                     goto next_after_fail1476;
   10959            0 :                                                   _o2[0] = _r3;
   10960              :                                                 }
   10961            0 :                                                 _o2[1] = captures[2];
   10962            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   10963            0 :                                                 _o1[0] = _r2;
   10964              :                                               }
   10965            0 :                                               _o1[1] = captures[4];
   10966            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   10967            0 :                                               res_op0 = _r1;
   10968              :                                             }
   10969            0 :                                             tree _r;
   10970            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10F, type, 1, res_op0);
   10971            0 :                                             if (!_r)
   10972            0 :                                               goto next_after_fail1476;
   10973            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 985, __FILE__, __LINE__, true);
   10974            0 :                                             return _r;
   10975              :                                           }
   10976            0 : next_after_fail1476:;
   10977              :                                         }
   10978              :                                     }
   10979              :                                 }
   10980            0 :                                 break;
   10981              :                               }
   10982              :                             default:;
   10983              :                             }
   10984              :                         }
   10985              :                       break;
   10986           12 :                     case CFN_BUILT_IN_POW10F:
   10987           12 :                       if (call_expr_nargs (_p1) == 1)
   10988              :     {
   10989           12 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   10990           12 :                           {
   10991           12 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   10992           12 :                             if (flag_unsafe_math_optimizations
   10993              : )
   10994              :                               {
   10995           12 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1477;
   10996           12 :                                 {
   10997           12 :                                   tree res_op0;
   10998           12 :                                   {
   10999           12 :                                     tree _o1[2], _r1;
   11000           12 :                                     _o1[0] = captures[1];
   11001           12 :                                     _o1[1] = captures[3];
   11002           12 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11003           12 :                                     res_op0 = _r1;
   11004              :                                   }
   11005           12 :                                   tree _r;
   11006           12 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10F, type, 1, res_op0);
   11007           12 :                                   if (!_r)
   11008           12 :                                     goto next_after_fail1477;
   11009            0 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 984, __FILE__, __LINE__, true);
   11010            0 :                                   return _r;
   11011              :                                 }
   11012           12 : next_after_fail1477:;
   11013              :                               }
   11014              :                           }
   11015              :                         }
   11016              :                       break;
   11017              :                     default:;
   11018              :                     }
   11019              :                   break;
   11020              :                 default:;
   11021              :                 }
   11022              :             }
   11023              :           break;
   11024           24 :         case CFN_BUILT_IN_POW10L:
   11025           24 :           if (call_expr_nargs (_p0) == 1)
   11026              :     {
   11027           24 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11028           24 :               switch (TREE_CODE (_p1))
   11029              :                 {
   11030           12 :                 case CALL_EXPR:
   11031           12 :                   switch (get_call_combined_fn (_p1))
   11032              :                     {
   11033            0 :                     case CFN_BUILT_IN_POWL:
   11034            0 :                       if (call_expr_nargs (_p1) == 2)
   11035              :     {
   11036            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11037            0 :                           tree _q41 = CALL_EXPR_ARG (_p1, 1);
   11038            0 :                           switch (TREE_CODE (_q40))
   11039              :                             {
   11040            0 :                             case REAL_CST:
   11041            0 :                               {
   11042            0 :                                 {
   11043            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
   11044            0 :                                   if (flag_unsafe_math_optimizations
   11045              : )
   11046              :                                     {
   11047            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   11048            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   11049              : )
   11050              :                                         {
   11051            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1478;
   11052            0 :                                           {
   11053            0 :                                             tree res_op0;
   11054            0 :                                             {
   11055            0 :                                               tree _o1[2], _r1;
   11056            0 :                                               {
   11057            0 :                                                 tree _o2[2], _r2;
   11058            0 :                                                 {
   11059            0 :                                                   tree _o3[1], _r3;
   11060            0 :                                                   _o3[0] = captures[1];
   11061            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10L, TREE_TYPE (_o3[0]), 1, _o3[0]);
   11062            0 :                                                   if (!_r3)
   11063            0 :                                                     goto next_after_fail1478;
   11064            0 :                                                   _o2[0] = _r3;
   11065              :                                                 }
   11066            0 :                                                 _o2[1] = captures[2];
   11067            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   11068            0 :                                                 _o1[0] = _r2;
   11069              :                                               }
   11070            0 :                                               _o1[1] = captures[4];
   11071            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11072            0 :                                               res_op0 = _r1;
   11073              :                                             }
   11074            0 :                                             tree _r;
   11075            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10L, type, 1, res_op0);
   11076            0 :                                             if (!_r)
   11077            0 :                                               goto next_after_fail1478;
   11078            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 985, __FILE__, __LINE__, true);
   11079            0 :                                             return _r;
   11080              :                                           }
   11081            0 : next_after_fail1478:;
   11082              :                                         }
   11083              :                                     }
   11084              :                                 }
   11085            0 :                                 break;
   11086              :                               }
   11087              :                             default:;
   11088              :                             }
   11089              :                         }
   11090              :                       break;
   11091           12 :                     case CFN_BUILT_IN_POW10L:
   11092           12 :                       if (call_expr_nargs (_p1) == 1)
   11093              :     {
   11094           12 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11095           12 :                           {
   11096           12 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   11097           12 :                             if (flag_unsafe_math_optimizations
   11098              : )
   11099              :                               {
   11100           12 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1479;
   11101           12 :                                 {
   11102           12 :                                   tree res_op0;
   11103           12 :                                   {
   11104           12 :                                     tree _o1[2], _r1;
   11105           12 :                                     _o1[0] = captures[1];
   11106           12 :                                     _o1[1] = captures[3];
   11107           12 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11108           12 :                                     res_op0 = _r1;
   11109              :                                   }
   11110           12 :                                   tree _r;
   11111           12 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10L, type, 1, res_op0);
   11112           12 :                                   if (!_r)
   11113           12 :                                     goto next_after_fail1479;
   11114            0 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 984, __FILE__, __LINE__, true);
   11115            0 :                                   return _r;
   11116              :                                 }
   11117           12 : next_after_fail1479:;
   11118              :                               }
   11119              :                           }
   11120              :                         }
   11121              :                       break;
   11122              :                     default:;
   11123              :                     }
   11124              :                   break;
   11125              :                 default:;
   11126              :                 }
   11127              :             }
   11128              :           break;
   11129            0 :         case CFN_BUILT_IN_SQRTF128X:
   11130            0 :           if (call_expr_nargs (_p0) == 1)
   11131              :     {
   11132            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11133            0 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
   11134              :                 {
   11135            0 :                   {
   11136            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
   11137            0 :                     tree res = generic_simplify_200 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_SQRTF128X);
   11138            0 :                     if (res) return res;
   11139              :                   }
   11140              :                 }
   11141              :             }
   11142              :           break;
   11143            0 :         case CFN_EXP2:
   11144            0 :           if (call_expr_nargs (_p0) == 1)
   11145              :     {
   11146            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11147            0 :               switch (TREE_CODE (_p1))
   11148              :                 {
   11149            0 :                 case CALL_EXPR:
   11150            0 :                   switch (get_call_combined_fn (_p1))
   11151              :                     {
   11152            0 :                     case CFN_POW:
   11153            0 :                       if (call_expr_nargs (_p1) == 2)
   11154              :     {
   11155            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11156            0 :                           tree _q41 = CALL_EXPR_ARG (_p1, 1);
   11157            0 :                           switch (TREE_CODE (_q40))
   11158              :                             {
   11159            0 :                             case REAL_CST:
   11160            0 :                               {
   11161            0 :                                 {
   11162            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
   11163            0 :                                   if (flag_unsafe_math_optimizations
   11164              : )
   11165              :                                     {
   11166            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   11167            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   11168              : )
   11169              :                                         {
   11170            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1480;
   11171            0 :                                           {
   11172            0 :                                             tree res_op0;
   11173            0 :                                             {
   11174            0 :                                               tree _o1[2], _r1;
   11175            0 :                                               {
   11176            0 :                                                 tree _o2[2], _r2;
   11177            0 :                                                 {
   11178            0 :                                                   tree _o3[1], _r3;
   11179            0 :                                                   _o3[0] = captures[1];
   11180            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_LOG2, TREE_TYPE (_o3[0]), 1, _o3[0]);
   11181            0 :                                                   if (!_r3)
   11182            0 :                                                     goto next_after_fail1480;
   11183            0 :                                                   _o2[0] = _r3;
   11184              :                                                 }
   11185            0 :                                                 _o2[1] = captures[2];
   11186            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   11187            0 :                                                 _o1[0] = _r2;
   11188              :                                               }
   11189            0 :                                               _o1[1] = captures[4];
   11190            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11191            0 :                                               res_op0 = _r1;
   11192              :                                             }
   11193            0 :                                             tree _r;
   11194            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_EXP2, type, 1, res_op0);
   11195            0 :                                             if (!_r)
   11196            0 :                                               goto next_after_fail1480;
   11197            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 985, __FILE__, __LINE__, true);
   11198            0 :                                             return _r;
   11199              :                                           }
   11200            0 : next_after_fail1480:;
   11201              :                                         }
   11202              :                                     }
   11203              :                                 }
   11204            0 :                                 break;
   11205              :                               }
   11206              :                             default:;
   11207              :                             }
   11208              :                         }
   11209              :                       break;
   11210            0 :                     case CFN_EXP2:
   11211            0 :                       if (call_expr_nargs (_p1) == 1)
   11212              :     {
   11213            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11214            0 :                           {
   11215            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   11216            0 :                             if (flag_unsafe_math_optimizations
   11217              : )
   11218              :                               {
   11219            0 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1481;
   11220            0 :                                 {
   11221            0 :                                   tree res_op0;
   11222            0 :                                   {
   11223            0 :                                     tree _o1[2], _r1;
   11224            0 :                                     _o1[0] = captures[1];
   11225            0 :                                     _o1[1] = captures[3];
   11226            0 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11227            0 :                                     res_op0 = _r1;
   11228              :                                   }
   11229            0 :                                   tree _r;
   11230            0 :                                   _r = maybe_build_call_expr_loc (loc, CFN_EXP2, type, 1, res_op0);
   11231            0 :                                   if (!_r)
   11232            0 :                                     goto next_after_fail1481;
   11233            0 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 984, __FILE__, __LINE__, true);
   11234            0 :                                   return _r;
   11235              :                                 }
   11236            0 : next_after_fail1481:;
   11237              :                               }
   11238              :                           }
   11239              :                         }
   11240              :                       break;
   11241              :                     default:;
   11242              :                     }
   11243              :                   break;
   11244              :                 default:;
   11245              :                 }
   11246              :             }
   11247              :           break;
   11248            0 :         case CFN_SQRT:
   11249            0 :           if (call_expr_nargs (_p0) == 1)
   11250              :     {
   11251            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11252            0 :               if ((_p1 == _p0 && ! TREE_SIDE_EFFECTS (_p1)) || (operand_equal_p (_p1, _p0, 0) && types_match (_p1, _p0)))
   11253              :                 {
   11254            0 :                   {
   11255            0 :                     tree captures[2] ATTRIBUTE_UNUSED = { _p0, _q20 };
   11256            0 :                     tree res = generic_simplify_200 (loc, type, _p0, _p1, captures, CFN_SQRT);
   11257            0 :                     if (res) return res;
   11258              :                   }
   11259              :                 }
   11260            0 :               switch (TREE_CODE (_p1))
   11261              :                 {
   11262            0 :                 case CALL_EXPR:
   11263            0 :                   switch (get_call_combined_fn (_p1))
   11264              :                     {
   11265            0 :                     case CFN_SQRT:
   11266            0 :                       if (call_expr_nargs (_p1) == 1)
   11267              :     {
   11268            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11269            0 :                           {
   11270            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   11271            0 :                             if (flag_unsafe_math_optimizations
   11272              : )
   11273              :                               {
   11274            0 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1482;
   11275            0 :                                 {
   11276            0 :                                   tree res_op0;
   11277            0 :                                   {
   11278            0 :                                     tree _o1[2], _r1;
   11279            0 :                                     _o1[0] = captures[1];
   11280            0 :                                     _o1[1] = captures[3];
   11281            0 :                                     _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11282            0 :                                     res_op0 = _r1;
   11283              :                                   }
   11284            0 :                                   tree _r;
   11285            0 :                                   _r = maybe_build_call_expr_loc (loc, CFN_SQRT, type, 1, res_op0);
   11286            0 :                                   if (!_r)
   11287            0 :                                     goto next_after_fail1482;
   11288            0 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 983, __FILE__, __LINE__, true);
   11289            0 :                                   return _r;
   11290              :                                 }
   11291            0 : next_after_fail1482:;
   11292              :                               }
   11293              :                           }
   11294              :                         }
   11295              :                       break;
   11296              :                     default:;
   11297              :                     }
   11298              :                   break;
   11299              :                 default:;
   11300              :                 }
   11301              :             }
   11302              :           break;
   11303            0 :         case CFN_EXP10:
   11304            0 :           if (call_expr_nargs (_p0) == 1)
   11305              :     {
   11306            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11307            0 :               switch (TREE_CODE (_p1))
   11308              :                 {
   11309            0 :                 case CALL_EXPR:
   11310            0 :                   switch (get_call_combined_fn (_p1))
   11311              :                     {
   11312            0 :                     case CFN_POW:
   11313            0 :                       if (call_expr_nargs (_p1) == 2)
   11314              :     {
   11315            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11316            0 :                           tree _q41 = CALL_EXPR_ARG (_p1, 1);
   11317            0 :                           switch (TREE_CODE (_q40))
   11318              :                             {
   11319            0 :                             case REAL_CST:
   11320            0 :                               {
   11321            0 :                                 {
   11322            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
   11323            0 :                                   if (flag_unsafe_math_optimizations
   11324              : )
   11325              :                                     {
   11326            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   11327            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   11328              : )
   11329              :                                         {
   11330            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1483;
   11331            0 :                                           {
   11332            0 :                                             tree res_op0;
   11333            0 :                                             {
   11334            0 :                                               tree _o1[2], _r1;
   11335            0 :                                               {
   11336            0 :                                                 tree _o2[2], _r2;
   11337            0 :                                                 {
   11338            0 :                                                   tree _o3[1], _r3;
   11339            0 :                                                   _o3[0] = captures[1];
   11340            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_LOG10, TREE_TYPE (_o3[0]), 1, _o3[0]);
   11341            0 :                                                   if (!_r3)
   11342            0 :                                                     goto next_after_fail1483;
   11343            0 :                                                   _o2[0] = _r3;
   11344              :                                                 }
   11345            0 :                                                 _o2[1] = captures[2];
   11346            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   11347            0 :                                                 _o1[0] = _r2;
   11348              :                                               }
   11349            0 :                                               _o1[1] = captures[4];
   11350            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11351            0 :                                               res_op0 = _r1;
   11352              :                                             }
   11353            0 :                                             tree _r;
   11354            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_EXP10, type, 1, res_op0);
   11355            0 :                                             if (!_r)
   11356            0 :                                               goto next_after_fail1483;
   11357            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 985, __FILE__, __LINE__, true);
   11358            0 :                                             return _r;
   11359              :                                           }
   11360            0 : next_after_fail1483:;
   11361              :                                         }
   11362              :                                     }
   11363              :                                 }
   11364            0 :                                 break;
   11365              :                               }
   11366              :                             default:;
   11367              :                             }
   11368              :                         }
   11369              :                       break;
   11370            0 :                     case CFN_EXP10:
   11371            0 :                       if (call_expr_nargs (_p1) == 1)
   11372              :     {
   11373            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11374            0 :                           {
   11375            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   11376            0 :                             if (flag_unsafe_math_optimizations
   11377              : )
   11378              :                               {
   11379            0 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1484;
   11380            0 :                                 {
   11381            0 :                                   tree res_op0;
   11382            0 :                                   {
   11383            0 :                                     tree _o1[2], _r1;
   11384            0 :                                     _o1[0] = captures[1];
   11385            0 :                                     _o1[1] = captures[3];
   11386            0 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11387            0 :                                     res_op0 = _r1;
   11388              :                                   }
   11389            0 :                                   tree _r;
   11390            0 :                                   _r = maybe_build_call_expr_loc (loc, CFN_EXP10, type, 1, res_op0);
   11391            0 :                                   if (!_r)
   11392            0 :                                     goto next_after_fail1484;
   11393            0 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 984, __FILE__, __LINE__, true);
   11394            0 :                                   return _r;
   11395              :                                 }
   11396            0 : next_after_fail1484:;
   11397              :                               }
   11398              :                           }
   11399              :                         }
   11400              :                       break;
   11401              :                     default:;
   11402              :                     }
   11403              :                   break;
   11404              :                 default:;
   11405              :                 }
   11406              :             }
   11407              :           break;
   11408           12 :         case CFN_BUILT_IN_CBRTF:
   11409           12 :           if (call_expr_nargs (_p0) == 1)
   11410              :     {
   11411           12 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11412           12 :               switch (TREE_CODE (_p1))
   11413              :                 {
   11414           12 :                 case CALL_EXPR:
   11415           12 :                   switch (get_call_combined_fn (_p1))
   11416              :                     {
   11417           12 :                     case CFN_BUILT_IN_CBRTF:
   11418           12 :                       if (call_expr_nargs (_p1) == 1)
   11419              :     {
   11420           12 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11421           12 :                           {
   11422           12 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   11423           12 :                             if (flag_unsafe_math_optimizations
   11424              : )
   11425              :                               {
   11426           12 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1485;
   11427           12 :                                 {
   11428           12 :                                   tree res_op0;
   11429           12 :                                   {
   11430           12 :                                     tree _o1[2], _r1;
   11431           12 :                                     _o1[0] = captures[1];
   11432           12 :                                     _o1[1] = captures[3];
   11433           12 :                                     _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11434           12 :                                     res_op0 = _r1;
   11435              :                                   }
   11436           12 :                                   tree _r;
   11437           12 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_CBRTF, type, 1, res_op0);
   11438           12 :                                   if (!_r)
   11439            0 :                                     goto next_after_fail1485;
   11440           12 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 983, __FILE__, __LINE__, true);
   11441           12 :                                   return _r;
   11442              :                                 }
   11443            0 : next_after_fail1485:;
   11444              :                               }
   11445              :                           }
   11446              :                         }
   11447              :                       break;
   11448              :                     default:;
   11449              :                     }
   11450              :                   break;
   11451              :                 default:;
   11452              :                 }
   11453              :             }
   11454              :           break;
   11455           12 :         case CFN_BUILT_IN_CBRTL:
   11456           12 :           if (call_expr_nargs (_p0) == 1)
   11457              :     {
   11458           12 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11459           12 :               switch (TREE_CODE (_p1))
   11460              :                 {
   11461           12 :                 case CALL_EXPR:
   11462           12 :                   switch (get_call_combined_fn (_p1))
   11463              :                     {
   11464           12 :                     case CFN_BUILT_IN_CBRTL:
   11465           12 :                       if (call_expr_nargs (_p1) == 1)
   11466              :     {
   11467           12 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11468           12 :                           {
   11469           12 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   11470           12 :                             if (flag_unsafe_math_optimizations
   11471              : )
   11472              :                               {
   11473           12 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1486;
   11474           12 :                                 {
   11475           12 :                                   tree res_op0;
   11476           12 :                                   {
   11477           12 :                                     tree _o1[2], _r1;
   11478           12 :                                     _o1[0] = captures[1];
   11479           12 :                                     _o1[1] = captures[3];
   11480           12 :                                     _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11481           12 :                                     res_op0 = _r1;
   11482              :                                   }
   11483           12 :                                   tree _r;
   11484           12 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_CBRTL, type, 1, res_op0);
   11485           12 :                                   if (!_r)
   11486            0 :                                     goto next_after_fail1486;
   11487           12 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 983, __FILE__, __LINE__, true);
   11488           12 :                                   return _r;
   11489              :                                 }
   11490            0 : next_after_fail1486:;
   11491              :                               }
   11492              :                           }
   11493              :                         }
   11494              :                       break;
   11495              :                     default:;
   11496              :                     }
   11497              :                   break;
   11498              :                 default:;
   11499              :                 }
   11500              :             }
   11501              :           break;
   11502            0 :         case CFN_LDEXP:
   11503            0 :           if (call_expr_nargs (_p0) == 2)
   11504              :     {
   11505            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11506            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   11507            0 :               switch (TREE_CODE (_p1))
   11508              :                 {
   11509            0 :                 case REAL_CST:
   11510            0 :                   {
   11511            0 :                     {
   11512            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q21 };
   11513            0 :                       tree res = generic_simplify_202 (loc, type, _p0, _p1, captures, CFN_LDEXP);
   11514            0 :                       if (res) return res;
   11515              :                     }
   11516            0 :                     break;
   11517              :                   }
   11518            0 :                 default:;
   11519              :                 }
   11520            0 :               switch (TREE_CODE (_q20))
   11521              :                 {
   11522            0 :                 case REAL_CST:
   11523            0 :                   {
   11524            0 :                     {
   11525            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q21 };
   11526            0 :                       tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, CFN_LDEXP);
   11527            0 :                       if (res) return res;
   11528              :                     }
   11529            0 :                     break;
   11530              :                   }
   11531              :                 default:;
   11532              :                 }
   11533              :             }
   11534              :           break;
   11535           48 :         case CFN_BUILT_IN_EXP10:
   11536           48 :           if (call_expr_nargs (_p0) == 1)
   11537              :     {
   11538           48 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11539           48 :               switch (TREE_CODE (_p1))
   11540              :                 {
   11541           24 :                 case CALL_EXPR:
   11542           24 :                   switch (get_call_combined_fn (_p1))
   11543              :                     {
   11544            0 :                     case CFN_BUILT_IN_POW:
   11545            0 :                       if (call_expr_nargs (_p1) == 2)
   11546              :     {
   11547            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11548            0 :                           tree _q41 = CALL_EXPR_ARG (_p1, 1);
   11549            0 :                           switch (TREE_CODE (_q40))
   11550              :                             {
   11551            0 :                             case REAL_CST:
   11552            0 :                               {
   11553            0 :                                 {
   11554            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
   11555            0 :                                   if (flag_unsafe_math_optimizations
   11556              : )
   11557              :                                     {
   11558            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   11559            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   11560              : )
   11561              :                                         {
   11562            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1487;
   11563            0 :                                           {
   11564            0 :                                             tree res_op0;
   11565            0 :                                             {
   11566            0 :                                               tree _o1[2], _r1;
   11567            0 :                                               {
   11568            0 :                                                 tree _o2[2], _r2;
   11569            0 :                                                 {
   11570            0 :                                                   tree _o3[1], _r3;
   11571            0 :                                                   _o3[0] = captures[1];
   11572            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10, TREE_TYPE (_o3[0]), 1, _o3[0]);
   11573            0 :                                                   if (!_r3)
   11574            0 :                                                     goto next_after_fail1487;
   11575            0 :                                                   _o2[0] = _r3;
   11576              :                                                 }
   11577            0 :                                                 _o2[1] = captures[2];
   11578            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   11579            0 :                                                 _o1[0] = _r2;
   11580              :                                               }
   11581            0 :                                               _o1[1] = captures[4];
   11582            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11583            0 :                                               res_op0 = _r1;
   11584              :                                             }
   11585            0 :                                             tree _r;
   11586            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10, type, 1, res_op0);
   11587            0 :                                             if (!_r)
   11588            0 :                                               goto next_after_fail1487;
   11589            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 985, __FILE__, __LINE__, true);
   11590            0 :                                             return _r;
   11591              :                                           }
   11592            0 : next_after_fail1487:;
   11593              :                                         }
   11594              :                                     }
   11595              :                                 }
   11596            0 :                                 break;
   11597              :                               }
   11598              :                             default:;
   11599              :                             }
   11600              :                         }
   11601              :                       break;
   11602           24 :                     case CFN_BUILT_IN_EXP10:
   11603           24 :                       if (call_expr_nargs (_p1) == 1)
   11604              :     {
   11605           24 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11606           24 :                           {
   11607           24 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   11608           24 :                             if (flag_unsafe_math_optimizations
   11609              : )
   11610              :                               {
   11611           24 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1488;
   11612           24 :                                 {
   11613           24 :                                   tree res_op0;
   11614           24 :                                   {
   11615           24 :                                     tree _o1[2], _r1;
   11616           24 :                                     _o1[0] = captures[1];
   11617           24 :                                     _o1[1] = captures[3];
   11618           24 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11619           24 :                                     res_op0 = _r1;
   11620              :                                   }
   11621           24 :                                   tree _r;
   11622           24 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP10, type, 1, res_op0);
   11623           24 :                                   if (!_r)
   11624            0 :                                     goto next_after_fail1488;
   11625           24 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 984, __FILE__, __LINE__, true);
   11626           24 :                                   return _r;
   11627              :                                 }
   11628            0 : next_after_fail1488:;
   11629              :                               }
   11630              :                           }
   11631              :                         }
   11632              :                       break;
   11633              :                     default:;
   11634              :                     }
   11635              :                   break;
   11636              :                 default:;
   11637              :                 }
   11638              :             }
   11639              :           break;
   11640           48 :         case CFN_BUILT_IN_EXP2F:
   11641           48 :           if (call_expr_nargs (_p0) == 1)
   11642              :     {
   11643           48 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11644           48 :               switch (TREE_CODE (_p1))
   11645              :                 {
   11646           24 :                 case CALL_EXPR:
   11647           24 :                   switch (get_call_combined_fn (_p1))
   11648              :                     {
   11649            0 :                     case CFN_BUILT_IN_POWF:
   11650            0 :                       if (call_expr_nargs (_p1) == 2)
   11651              :     {
   11652            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11653            0 :                           tree _q41 = CALL_EXPR_ARG (_p1, 1);
   11654            0 :                           switch (TREE_CODE (_q40))
   11655              :                             {
   11656            0 :                             case REAL_CST:
   11657            0 :                               {
   11658            0 :                                 {
   11659            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
   11660            0 :                                   if (flag_unsafe_math_optimizations
   11661              : )
   11662              :                                     {
   11663            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   11664            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   11665              : )
   11666              :                                         {
   11667            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1489;
   11668            0 :                                           {
   11669            0 :                                             tree res_op0;
   11670            0 :                                             {
   11671            0 :                                               tree _o1[2], _r1;
   11672            0 :                                               {
   11673            0 :                                                 tree _o2[2], _r2;
   11674            0 :                                                 {
   11675            0 :                                                   tree _o3[1], _r3;
   11676            0 :                                                   _o3[0] = captures[1];
   11677            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG2F, TREE_TYPE (_o3[0]), 1, _o3[0]);
   11678            0 :                                                   if (!_r3)
   11679            0 :                                                     goto next_after_fail1489;
   11680            0 :                                                   _o2[0] = _r3;
   11681              :                                                 }
   11682            0 :                                                 _o2[1] = captures[2];
   11683            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   11684            0 :                                                 _o1[0] = _r2;
   11685              :                                               }
   11686            0 :                                               _o1[1] = captures[4];
   11687            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11688            0 :                                               res_op0 = _r1;
   11689              :                                             }
   11690            0 :                                             tree _r;
   11691            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2F, type, 1, res_op0);
   11692            0 :                                             if (!_r)
   11693            0 :                                               goto next_after_fail1489;
   11694            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 985, __FILE__, __LINE__, true);
   11695            0 :                                             return _r;
   11696              :                                           }
   11697            0 : next_after_fail1489:;
   11698              :                                         }
   11699              :                                     }
   11700              :                                 }
   11701            0 :                                 break;
   11702              :                               }
   11703              :                             default:;
   11704              :                             }
   11705              :                         }
   11706              :                       break;
   11707           24 :                     case CFN_BUILT_IN_EXP2F:
   11708           24 :                       if (call_expr_nargs (_p1) == 1)
   11709              :     {
   11710           24 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11711           24 :                           {
   11712           24 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   11713           24 :                             if (flag_unsafe_math_optimizations
   11714              : )
   11715              :                               {
   11716           24 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1490;
   11717           24 :                                 {
   11718           24 :                                   tree res_op0;
   11719           24 :                                   {
   11720           24 :                                     tree _o1[2], _r1;
   11721           24 :                                     _o1[0] = captures[1];
   11722           24 :                                     _o1[1] = captures[3];
   11723           24 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11724           24 :                                     res_op0 = _r1;
   11725              :                                   }
   11726           24 :                                   tree _r;
   11727           24 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2F, type, 1, res_op0);
   11728           24 :                                   if (!_r)
   11729            0 :                                     goto next_after_fail1490;
   11730           24 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 984, __FILE__, __LINE__, true);
   11731           24 :                                   return _r;
   11732              :                                 }
   11733            0 : next_after_fail1490:;
   11734              :                               }
   11735              :                           }
   11736              :                         }
   11737              :                       break;
   11738              :                     default:;
   11739              :                     }
   11740              :                   break;
   11741              :                 default:;
   11742              :                 }
   11743              :             }
   11744              :           break;
   11745           48 :         case CFN_BUILT_IN_EXP2L:
   11746           48 :           if (call_expr_nargs (_p0) == 1)
   11747              :     {
   11748           48 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11749           48 :               switch (TREE_CODE (_p1))
   11750              :                 {
   11751           24 :                 case CALL_EXPR:
   11752           24 :                   switch (get_call_combined_fn (_p1))
   11753              :                     {
   11754            0 :                     case CFN_BUILT_IN_POWL:
   11755            0 :                       if (call_expr_nargs (_p1) == 2)
   11756              :     {
   11757            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11758            0 :                           tree _q41 = CALL_EXPR_ARG (_p1, 1);
   11759            0 :                           switch (TREE_CODE (_q40))
   11760              :                             {
   11761            0 :                             case REAL_CST:
   11762            0 :                               {
   11763            0 :                                 {
   11764            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
   11765            0 :                                   if (flag_unsafe_math_optimizations
   11766              : )
   11767              :                                     {
   11768            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   11769            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   11770              : )
   11771              :                                         {
   11772            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1491;
   11773            0 :                                           {
   11774            0 :                                             tree res_op0;
   11775            0 :                                             {
   11776            0 :                                               tree _o1[2], _r1;
   11777            0 :                                               {
   11778            0 :                                                 tree _o2[2], _r2;
   11779            0 :                                                 {
   11780            0 :                                                   tree _o3[1], _r3;
   11781            0 :                                                   _o3[0] = captures[1];
   11782            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG2L, TREE_TYPE (_o3[0]), 1, _o3[0]);
   11783            0 :                                                   if (!_r3)
   11784            0 :                                                     goto next_after_fail1491;
   11785            0 :                                                   _o2[0] = _r3;
   11786              :                                                 }
   11787            0 :                                                 _o2[1] = captures[2];
   11788            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   11789            0 :                                                 _o1[0] = _r2;
   11790              :                                               }
   11791            0 :                                               _o1[1] = captures[4];
   11792            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11793            0 :                                               res_op0 = _r1;
   11794              :                                             }
   11795            0 :                                             tree _r;
   11796            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2L, type, 1, res_op0);
   11797            0 :                                             if (!_r)
   11798            0 :                                               goto next_after_fail1491;
   11799            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 985, __FILE__, __LINE__, true);
   11800            0 :                                             return _r;
   11801              :                                           }
   11802            0 : next_after_fail1491:;
   11803              :                                         }
   11804              :                                     }
   11805              :                                 }
   11806            0 :                                 break;
   11807              :                               }
   11808              :                             default:;
   11809              :                             }
   11810              :                         }
   11811              :                       break;
   11812           24 :                     case CFN_BUILT_IN_EXP2L:
   11813           24 :                       if (call_expr_nargs (_p1) == 1)
   11814              :     {
   11815           24 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11816           24 :                           {
   11817           24 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   11818           24 :                             if (flag_unsafe_math_optimizations
   11819              : )
   11820              :                               {
   11821           24 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1492;
   11822           24 :                                 {
   11823           24 :                                   tree res_op0;
   11824           24 :                                   {
   11825           24 :                                     tree _o1[2], _r1;
   11826           24 :                                     _o1[0] = captures[1];
   11827           24 :                                     _o1[1] = captures[3];
   11828           24 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11829           24 :                                     res_op0 = _r1;
   11830              :                                   }
   11831           24 :                                   tree _r;
   11832           24 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_EXP2L, type, 1, res_op0);
   11833           24 :                                   if (!_r)
   11834            0 :                                     goto next_after_fail1492;
   11835           24 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 984, __FILE__, __LINE__, true);
   11836           24 :                                   return _r;
   11837              :                                 }
   11838            0 : next_after_fail1492:;
   11839              :                               }
   11840              :                           }
   11841              :                         }
   11842              :                       break;
   11843              :                     default:;
   11844              :                     }
   11845              :                   break;
   11846              :                 default:;
   11847              :                 }
   11848              :             }
   11849              :           break;
   11850            5 :         case CFN_BUILT_IN_LDEXP:
   11851            5 :           if (call_expr_nargs (_p0) == 2)
   11852              :     {
   11853            5 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11854            5 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   11855            5 :               switch (TREE_CODE (_p1))
   11856              :                 {
   11857            2 :                 case REAL_CST:
   11858            2 :                   {
   11859            2 :                     {
   11860            2 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q21 };
   11861            2 :                       tree res = generic_simplify_202 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LDEXP);
   11862            2 :                       if (res) return res;
   11863              :                     }
   11864            1 :                     break;
   11865              :                   }
   11866            4 :                 default:;
   11867              :                 }
   11868            4 :               switch (TREE_CODE (_q20))
   11869              :                 {
   11870            3 :                 case REAL_CST:
   11871            3 :                   {
   11872            3 :                     {
   11873            3 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _q21 };
   11874            3 :                       tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LDEXP);
   11875            3 :                       if (res) return res;
   11876              :                     }
   11877            0 :                     break;
   11878              :                   }
   11879              :                 default:;
   11880              :                 }
   11881              :             }
   11882              :           break;
   11883           24 :         case CFN_BUILT_IN_POW10:
   11884           24 :           if (call_expr_nargs (_p0) == 1)
   11885              :     {
   11886           24 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   11887           24 :               switch (TREE_CODE (_p1))
   11888              :                 {
   11889           12 :                 case CALL_EXPR:
   11890           12 :                   switch (get_call_combined_fn (_p1))
   11891              :                     {
   11892            0 :                     case CFN_BUILT_IN_POW:
   11893            0 :                       if (call_expr_nargs (_p1) == 2)
   11894              :     {
   11895            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11896            0 :                           tree _q41 = CALL_EXPR_ARG (_p1, 1);
   11897            0 :                           switch (TREE_CODE (_q40))
   11898              :                             {
   11899            0 :                             case REAL_CST:
   11900            0 :                               {
   11901            0 :                                 {
   11902            0 :                                   tree captures[5] ATTRIBUTE_UNUSED = { _p1, _q40, _q41, _p0, _q20 };
   11903            0 :                                   if (flag_unsafe_math_optimizations
   11904              : )
   11905              :                                     {
   11906            0 :                                       if (real_compare (GT_EXPR, TREE_REAL_CST_PTR (captures[1]), &dconst0)
   11907            0 :  && real_isfinite (TREE_REAL_CST_PTR (captures[1]))
   11908              : )
   11909              :                                         {
   11910            0 :                                           if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1493;
   11911            0 :                                           {
   11912            0 :                                             tree res_op0;
   11913            0 :                                             {
   11914            0 :                                               tree _o1[2], _r1;
   11915            0 :                                               {
   11916            0 :                                                 tree _o2[2], _r2;
   11917            0 :                                                 {
   11918            0 :                                                   tree _o3[1], _r3;
   11919            0 :                                                   _o3[0] = captures[1];
   11920            0 :                                                   _r3 = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_LOG10, TREE_TYPE (_o3[0]), 1, _o3[0]);
   11921            0 :                                                   if (!_r3)
   11922            0 :                                                     goto next_after_fail1493;
   11923            0 :                                                   _o2[0] = _r3;
   11924              :                                                 }
   11925            0 :                                                 _o2[1] = captures[2];
   11926            0 :                                                 _r2 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o2[0]), _o2[0], _o2[1]);
   11927            0 :                                                 _o1[0] = _r2;
   11928              :                                               }
   11929            0 :                                               _o1[1] = captures[4];
   11930            0 :                                               _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11931            0 :                                               res_op0 = _r1;
   11932              :                                             }
   11933            0 :                                             tree _r;
   11934            0 :                                             _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10, type, 1, res_op0);
   11935            0 :                                             if (!_r)
   11936            0 :                                               goto next_after_fail1493;
   11937            0 :                                             if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 985, __FILE__, __LINE__, true);
   11938            0 :                                             return _r;
   11939              :                                           }
   11940            0 : next_after_fail1493:;
   11941              :                                         }
   11942              :                                     }
   11943              :                                 }
   11944            0 :                                 break;
   11945              :                               }
   11946              :                             default:;
   11947              :                             }
   11948              :                         }
   11949              :                       break;
   11950           12 :                     case CFN_BUILT_IN_POW10:
   11951           12 :                       if (call_expr_nargs (_p1) == 1)
   11952              :     {
   11953           12 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   11954           12 :                           {
   11955           12 :                             tree captures[4] ATTRIBUTE_UNUSED = { _p0, _q20, _p1, _q40 };
   11956           12 :                             if (flag_unsafe_math_optimizations
   11957              : )
   11958              :                               {
   11959           12 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1494;
   11960           12 :                                 {
   11961           12 :                                   tree res_op0;
   11962           12 :                                   {
   11963           12 :                                     tree _o1[2], _r1;
   11964           12 :                                     _o1[0] = captures[1];
   11965           12 :                                     _o1[1] = captures[3];
   11966           12 :                                     _r1 = fold_build2_loc (loc, PLUS_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   11967           12 :                                     res_op0 = _r1;
   11968              :                                   }
   11969           12 :                                   tree _r;
   11970           12 :                                   _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POW10, type, 1, res_op0);
   11971           12 :                                   if (!_r)
   11972           12 :                                     goto next_after_fail1494;
   11973            0 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 984, __FILE__, __LINE__, true);
   11974            0 :                                   return _r;
   11975              :                                 }
   11976           12 : next_after_fail1494:;
   11977              :                               }
   11978              :                           }
   11979              :                         }
   11980              :                       break;
   11981              :                     default:;
   11982              :                     }
   11983              :                   break;
   11984              :                 default:;
   11985              :                 }
   11986              :             }
   11987              :           break;
   11988              :         default:;
   11989              :         }
   11990              :       break;
   11991     67174199 :     default:;
   11992              :     }
   11993     67174199 :   switch (TREE_CODE (_p1))
   11994              :     {
   11995       896794 :     case CALL_EXPR:
   11996       896794 :       switch (get_call_combined_fn (_p1))
   11997              :         {
   11998            0 :         case CFN_BUILT_IN_LDEXPF:
   11999            0 :           if (call_expr_nargs (_p1) == 2)
   12000              :     {
   12001            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
   12002            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
   12003            0 :               switch (TREE_CODE (_q30))
   12004              :                 {
   12005            0 :                 case REAL_CST:
   12006            0 :                   {
   12007            0 :                     {
   12008            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
   12009            0 :                       tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LDEXPF);
   12010            0 :                       if (res) return res;
   12011              :                     }
   12012            0 :                     break;
   12013              :                   }
   12014              :                 default:;
   12015              :                 }
   12016              :             }
   12017              :           break;
   12018            0 :         case CFN_BUILT_IN_LDEXPL:
   12019            0 :           if (call_expr_nargs (_p1) == 2)
   12020              :     {
   12021            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
   12022            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
   12023            0 :               switch (TREE_CODE (_q30))
   12024              :                 {
   12025            0 :                 case REAL_CST:
   12026            0 :                   {
   12027            0 :                     {
   12028            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
   12029            0 :                       tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LDEXPL);
   12030            0 :                       if (res) return res;
   12031              :                     }
   12032            0 :                     break;
   12033              :                   }
   12034              :                 default:;
   12035              :                 }
   12036              :             }
   12037              :           break;
   12038            0 :         case CFN_LDEXP:
   12039            0 :           if (call_expr_nargs (_p1) == 2)
   12040              :     {
   12041            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
   12042            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
   12043            0 :               switch (TREE_CODE (_q30))
   12044              :                 {
   12045            0 :                 case REAL_CST:
   12046            0 :                   {
   12047            0 :                     {
   12048            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
   12049            0 :                       tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, CFN_LDEXP);
   12050            0 :                       if (res) return res;
   12051              :                     }
   12052            0 :                     break;
   12053              :                   }
   12054              :                 default:;
   12055              :                 }
   12056              :             }
   12057              :           break;
   12058            0 :         case CFN_BUILT_IN_LDEXP:
   12059            0 :           if (call_expr_nargs (_p1) == 2)
   12060              :     {
   12061            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
   12062            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
   12063            0 :               switch (TREE_CODE (_q30))
   12064              :                 {
   12065            0 :                 case REAL_CST:
   12066            0 :                   {
   12067            0 :                     {
   12068            0 :                       tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q30, _q31 };
   12069            0 :                       tree res = generic_simplify_203 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_LDEXP);
   12070            0 :                       if (res) return res;
   12071              :                     }
   12072            0 :                     break;
   12073              :                   }
   12074              :                 default:;
   12075              :                 }
   12076              :             }
   12077              :           break;
   12078              :         default:;
   12079              :         }
   12080              :       break;
   12081     67174199 :     default:;
   12082              :     }
   12083     67174199 :   switch (TREE_CODE (_p0))
   12084              :     {
   12085      2513847 :     case CALL_EXPR:
   12086      2513847 :       switch (get_call_combined_fn (_p0))
   12087              :         {
   12088           29 :         case CFN_BUILT_IN_COS:
   12089           29 :           if (call_expr_nargs (_p0) == 1)
   12090              :     {
   12091           29 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12092           29 :               switch (TREE_CODE (_p1))
   12093              :                 {
   12094            4 :                 case CALL_EXPR:
   12095            4 :                   switch (get_call_combined_fn (_p1))
   12096              :                     {
   12097            2 :                     case CFN_BUILT_IN_TAN:
   12098            2 :                       if (call_expr_nargs (_p1) == 1)
   12099              :     {
   12100            2 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   12101            2 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
   12102              :                             {
   12103            2 :                               {
   12104            2 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _p0 };
   12105            2 :                                 tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_TAN, CFN_BUILT_IN_COS, CFN_BUILT_IN_SIN);
   12106            2 :                                 if (res) return res;
   12107              :                               }
   12108              :                             }
   12109              :                         }
   12110              :                       break;
   12111              :                     default:;
   12112              :                     }
   12113              :                   break;
   12114              :                 default:;
   12115              :                 }
   12116              :             }
   12117              :           break;
   12118            2 :         case CFN_BUILT_IN_TAN:
   12119            2 :           if (call_expr_nargs (_p0) == 1)
   12120              :     {
   12121            2 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12122            2 :               switch (TREE_CODE (_p1))
   12123              :                 {
   12124            2 :                 case CALL_EXPR:
   12125            2 :                   switch (get_call_combined_fn (_p1))
   12126              :                     {
   12127            2 :                     case CFN_BUILT_IN_COS:
   12128            2 :                       if (call_expr_nargs (_p1) == 1)
   12129              :     {
   12130            2 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   12131            2 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
   12132              :                             {
   12133            2 :                               {
   12134            2 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   12135            2 :                                 tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_TAN, CFN_BUILT_IN_COS, CFN_BUILT_IN_SIN);
   12136            2 :                                 if (res) return res;
   12137              :                               }
   12138              :                             }
   12139              :                         }
   12140              :                       break;
   12141              :                     default:;
   12142              :                     }
   12143              :                   break;
   12144              :                 default:;
   12145              :                 }
   12146              :             }
   12147              :           break;
   12148           18 :         case CFN_BUILT_IN_COSF:
   12149           18 :           if (call_expr_nargs (_p0) == 1)
   12150              :     {
   12151           18 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12152           18 :               switch (TREE_CODE (_p1))
   12153              :                 {
   12154            9 :                 case CALL_EXPR:
   12155            9 :                   switch (get_call_combined_fn (_p1))
   12156              :                     {
   12157            2 :                     case CFN_BUILT_IN_TANF:
   12158            2 :                       if (call_expr_nargs (_p1) == 1)
   12159              :     {
   12160            2 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   12161            2 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
   12162              :                             {
   12163            2 :                               {
   12164            2 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _p0 };
   12165            2 :                                 tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_TANF, CFN_BUILT_IN_COSF, CFN_BUILT_IN_SINF);
   12166            2 :                                 if (res) return res;
   12167              :                               }
   12168              :                             }
   12169              :                         }
   12170              :                       break;
   12171              :                     default:;
   12172              :                     }
   12173              :                   break;
   12174              :                 default:;
   12175              :                 }
   12176              :             }
   12177              :           break;
   12178            2 :         case CFN_BUILT_IN_COSL:
   12179            2 :           if (call_expr_nargs (_p0) == 1)
   12180              :     {
   12181            2 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12182            2 :               switch (TREE_CODE (_p1))
   12183              :                 {
   12184            2 :                 case CALL_EXPR:
   12185            2 :                   switch (get_call_combined_fn (_p1))
   12186              :                     {
   12187            2 :                     case CFN_BUILT_IN_TANL:
   12188            2 :                       if (call_expr_nargs (_p1) == 1)
   12189              :     {
   12190            2 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   12191            2 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
   12192              :                             {
   12193            2 :                               {
   12194            2 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _p0 };
   12195            2 :                                 tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_TANL, CFN_BUILT_IN_COSL, CFN_BUILT_IN_SINL);
   12196            2 :                                 if (res) return res;
   12197              :                               }
   12198              :                             }
   12199              :                         }
   12200              :                       break;
   12201              :                     default:;
   12202              :                     }
   12203              :                   break;
   12204              :                 default:;
   12205              :                 }
   12206              :             }
   12207              :           break;
   12208            2 :         case CFN_BUILT_IN_TANF:
   12209            2 :           if (call_expr_nargs (_p0) == 1)
   12210              :     {
   12211            2 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12212            2 :               switch (TREE_CODE (_p1))
   12213              :                 {
   12214            2 :                 case CALL_EXPR:
   12215            2 :                   switch (get_call_combined_fn (_p1))
   12216              :                     {
   12217            2 :                     case CFN_BUILT_IN_COSF:
   12218            2 :                       if (call_expr_nargs (_p1) == 1)
   12219              :     {
   12220            2 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   12221            2 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
   12222              :                             {
   12223            2 :                               {
   12224            2 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   12225            2 :                                 tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_TANF, CFN_BUILT_IN_COSF, CFN_BUILT_IN_SINF);
   12226            2 :                                 if (res) return res;
   12227              :                               }
   12228              :                             }
   12229              :                         }
   12230              :                       break;
   12231              :                     default:;
   12232              :                     }
   12233              :                   break;
   12234              :                 default:;
   12235              :                 }
   12236              :             }
   12237              :           break;
   12238            2 :         case CFN_BUILT_IN_TANL:
   12239            2 :           if (call_expr_nargs (_p0) == 1)
   12240              :     {
   12241            2 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12242            2 :               switch (TREE_CODE (_p1))
   12243              :                 {
   12244            2 :                 case CALL_EXPR:
   12245            2 :                   switch (get_call_combined_fn (_p1))
   12246              :                     {
   12247            2 :                     case CFN_BUILT_IN_COSL:
   12248            2 :                       if (call_expr_nargs (_p1) == 1)
   12249              :     {
   12250            2 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   12251            2 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
   12252              :                             {
   12253            2 :                               {
   12254            2 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   12255            2 :                                 tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_TANL, CFN_BUILT_IN_COSL, CFN_BUILT_IN_SINL);
   12256            2 :                                 if (res) return res;
   12257              :                               }
   12258              :                             }
   12259              :                         }
   12260              :                       break;
   12261              :                     default:;
   12262              :                     }
   12263              :                   break;
   12264              :                 default:;
   12265              :                 }
   12266              :             }
   12267              :           break;
   12268            0 :         case CFN_COS:
   12269            0 :           if (call_expr_nargs (_p0) == 1)
   12270              :     {
   12271            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12272            0 :               switch (TREE_CODE (_p1))
   12273              :                 {
   12274            0 :                 case CALL_EXPR:
   12275            0 :                   switch (get_call_combined_fn (_p1))
   12276              :                     {
   12277            0 :                     case CFN_TAN:
   12278            0 :                       if (call_expr_nargs (_p1) == 1)
   12279              :     {
   12280            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   12281            0 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
   12282              :                             {
   12283            0 :                               {
   12284            0 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p1, _q20, _p0 };
   12285            0 :                                 tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, CFN_TAN, CFN_COS, CFN_SIN);
   12286            0 :                                 if (res) return res;
   12287              :                               }
   12288              :                             }
   12289              :                         }
   12290              :                       break;
   12291              :                     default:;
   12292              :                     }
   12293              :                   break;
   12294              :                 default:;
   12295              :                 }
   12296              :             }
   12297              :           break;
   12298            0 :         case CFN_TAN:
   12299            0 :           if (call_expr_nargs (_p0) == 1)
   12300              :     {
   12301            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12302            0 :               switch (TREE_CODE (_p1))
   12303              :                 {
   12304            0 :                 case CALL_EXPR:
   12305            0 :                   switch (get_call_combined_fn (_p1))
   12306              :                     {
   12307            0 :                     case CFN_COS:
   12308            0 :                       if (call_expr_nargs (_p1) == 1)
   12309              :     {
   12310            0 :                           tree _q40 = CALL_EXPR_ARG (_p1, 0);
   12311            0 :                           if ((_q40 == _q20 && ! TREE_SIDE_EFFECTS (_q40)) || (operand_equal_p (_q40, _q20, 0) && types_match (_q40, _q20)))
   12312              :                             {
   12313            0 :                               {
   12314            0 :                                 tree captures[3] ATTRIBUTE_UNUSED = { _p0, _q20, _p1 };
   12315            0 :                                 tree res = generic_simplify_204 (loc, type, _p0, _p1, captures, CFN_TAN, CFN_COS, CFN_SIN);
   12316            0 :                                 if (res) return res;
   12317              :                               }
   12318              :                             }
   12319              :                         }
   12320              :                       break;
   12321              :                     default:;
   12322              :                     }
   12323              :                   break;
   12324              :                 default:;
   12325              :                 }
   12326              :             }
   12327              :           break;
   12328              :         default:;
   12329              :         }
   12330              :       break;
   12331     67174187 :     default:;
   12332              :     }
   12333     67174187 :   switch (TREE_CODE (_p1))
   12334              :     {
   12335       896782 :     case CALL_EXPR:
   12336       896782 :       switch (get_call_combined_fn (_p1))
   12337              :         {
   12338           60 :         case CFN_BUILT_IN_POW:
   12339           60 :           if (call_expr_nargs (_p1) == 2)
   12340              :     {
   12341           60 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
   12342           60 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
   12343           60 :               if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
   12344              :                 {
   12345            0 :                   switch (TREE_CODE (_q31))
   12346              :                     {
   12347            0 :                     case REAL_CST:
   12348            0 :                       {
   12349            0 :                         {
   12350            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
   12351            0 :                           tree res = generic_simplify_201 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POW);
   12352            0 :                           if (res) return res;
   12353              :                         }
   12354            0 :                         break;
   12355              :                       }
   12356              :                     default:;
   12357              :                     }
   12358              :                 }
   12359              :             }
   12360              :           break;
   12361           23 :         case CFN_BUILT_IN_POWF:
   12362           23 :           if (call_expr_nargs (_p1) == 2)
   12363              :     {
   12364           23 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
   12365           23 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
   12366           23 :               if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
   12367              :                 {
   12368            0 :                   switch (TREE_CODE (_q31))
   12369              :                     {
   12370            0 :                     case REAL_CST:
   12371            0 :                       {
   12372            0 :                         {
   12373            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
   12374            0 :                           tree res = generic_simplify_201 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWF);
   12375            0 :                           if (res) return res;
   12376              :                         }
   12377            0 :                         break;
   12378              :                       }
   12379              :                     default:;
   12380              :                     }
   12381              :                 }
   12382              :             }
   12383              :           break;
   12384           12 :         case CFN_BUILT_IN_POWL:
   12385           12 :           if (call_expr_nargs (_p1) == 2)
   12386              :     {
   12387           12 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
   12388           12 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
   12389           12 :               if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
   12390              :                 {
   12391            0 :                   switch (TREE_CODE (_q31))
   12392              :                     {
   12393            0 :                     case REAL_CST:
   12394            0 :                       {
   12395            0 :                         {
   12396            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
   12397            0 :                           tree res = generic_simplify_201 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWL);
   12398            0 :                           if (res) return res;
   12399              :                         }
   12400            0 :                         break;
   12401              :                       }
   12402              :                     default:;
   12403              :                     }
   12404              :                 }
   12405              :             }
   12406              :           break;
   12407            0 :         case CFN_POW:
   12408            0 :           if (call_expr_nargs (_p1) == 2)
   12409              :     {
   12410            0 :               tree _q30 = CALL_EXPR_ARG (_p1, 0);
   12411            0 :               tree _q31 = CALL_EXPR_ARG (_p1, 1);
   12412            0 :               if ((_q30 == _p0 && ! TREE_SIDE_EFFECTS (_q30)) || (operand_equal_p (_q30, _p0, 0) && types_match (_q30, _p0)))
   12413              :                 {
   12414            0 :                   switch (TREE_CODE (_q31))
   12415              :                     {
   12416            0 :                     case REAL_CST:
   12417            0 :                       {
   12418            0 :                         {
   12419            0 :                           tree captures[3] ATTRIBUTE_UNUSED = { _p0, _p1, _q31 };
   12420            0 :                           tree res = generic_simplify_201 (loc, type, _p0, _p1, captures, CFN_POW);
   12421            0 :                           if (res) return res;
   12422              :                         }
   12423            0 :                         break;
   12424              :                       }
   12425              :                     default:;
   12426              :                     }
   12427              :                 }
   12428              :             }
   12429              :           break;
   12430              :         default:;
   12431              :         }
   12432              :       break;
   12433     67174187 :     default:;
   12434              :     }
   12435     67174187 :   switch (TREE_CODE (_p0))
   12436              :     {
   12437            1 :     case VEC_PERM_EXPR:
   12438            1 :       {
   12439            1 :         tree _q20 = TREE_OPERAND (_p0, 0);
   12440            1 :         tree _q21 = TREE_OPERAND (_p0, 1);
   12441            1 :         tree _q22 = TREE_OPERAND (_p0, 2);
   12442            1 :         if ((_q21 == _q20 && ! TREE_SIDE_EFFECTS (_q21)) || (operand_equal_p (_q21, _q20, 0) && types_match (_q21, _q20)))
   12443              :           {
   12444            1 :             switch (TREE_CODE (_p1))
   12445              :               {
   12446            0 :               case VEC_PERM_EXPR:
   12447            0 :                 {
   12448            0 :                   tree _q60 = TREE_OPERAND (_p1, 0);
   12449            0 :                   tree _q61 = TREE_OPERAND (_p1, 1);
   12450            0 :                   tree _q62 = TREE_OPERAND (_p1, 2);
   12451            0 :                   if ((_q61 == _q60 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q60, 0) && types_match (_q61, _q60)))
   12452              :                     {
   12453            0 :                       if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
   12454              :                         {
   12455            0 :                           {
   12456            0 :                             tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q22, _q60 };
   12457            0 :                             if (VECTOR_INTEGER_TYPE_P (type)
   12458              : )
   12459              :                               {
   12460            0 :                                 if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1495;
   12461            0 :                                 {
   12462            0 :                                   tree res_op0;
   12463            0 :                                   {
   12464            0 :                                     tree _o1[2], _r1;
   12465            0 :                                     _o1[0] = captures[0];
   12466            0 :                                     _o1[1] = captures[2];
   12467            0 :                                     _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   12468            0 :                                     captures[3] = _r1;
   12469              :                                   }
   12470            0 :                                   res_op0 = unshare_expr (captures[3]);
   12471            0 :                                   tree res_op1;
   12472            0 :                                   res_op1 = captures[3];
   12473            0 :                                   tree res_op2;
   12474            0 :                                   res_op2 = captures[1];
   12475            0 :                                   tree _r;
   12476            0 :                                   _r = fold_build3_loc (loc, VEC_PERM_EXPR, type, res_op0, res_op1, res_op2);
   12477            0 :                                   if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 902, __FILE__, __LINE__, true);
   12478            0 :                                   return _r;
   12479              :                                 }
   12480            0 : next_after_fail1495:;
   12481              :                               }
   12482              :                           }
   12483              :                         }
   12484              :                     }
   12485              :                   break;
   12486              :                 }
   12487            1 :               default:;
   12488              :               }
   12489            1 :             switch (TREE_CODE (_q22))
   12490              :               {
   12491            0 :               case VECTOR_CST:
   12492            0 :                 {
   12493            0 :                   switch (TREE_CODE (_p1))
   12494              :                     {
   12495            0 :                     case VEC_PERM_EXPR:
   12496            0 :                       {
   12497            0 :                         tree _q60 = TREE_OPERAND (_p1, 0);
   12498            0 :                         tree _q61 = TREE_OPERAND (_p1, 1);
   12499            0 :                         tree _q62 = TREE_OPERAND (_p1, 2);
   12500            0 :                         if ((_q61 == _q60 && ! TREE_SIDE_EFFECTS (_q61)) || (operand_equal_p (_q61, _q60, 0) && types_match (_q61, _q60)))
   12501              :                           {
   12502            0 :                             if ((_q62 == _q22 && ! TREE_SIDE_EFFECTS (_q62)) || (operand_equal_p (_q62, _q22, 0) && types_match (_q62, _q22)))
   12503              :                               {
   12504            0 :                                 switch (TREE_CODE (_q62))
   12505              :                                   {
   12506            0 :                                   case VECTOR_CST:
   12507            0 :                                     {
   12508            0 :                                       {
   12509            0 :                                         tree captures[4] ATTRIBUTE_UNUSED = { _q20, _q22, _q60 };
   12510            0 :                                         tree res = generic_simplify_85 (loc, type, _p0, _p1, captures, MULT_EXPR);
   12511            0 :                                         if (res) return res;
   12512              :                                       }
   12513            0 :                                       break;
   12514              :                                     }
   12515              :                                   default:;
   12516              :                                   }
   12517              :                               }
   12518              :                           }
   12519              :                         break;
   12520              :                       }
   12521              :                     default:;
   12522              :                     }
   12523              :                   break;
   12524              :                 }
   12525              :               default:;
   12526              :               }
   12527              :           }
   12528              :         break;
   12529              :       }
   12530      2513835 :     case CALL_EXPR:
   12531      2513835 :       switch (get_call_combined_fn (_p0))
   12532              :         {
   12533          115 :         case CFN_BUILT_IN_POW:
   12534          115 :           if (call_expr_nargs (_p0) == 2)
   12535              :     {
   12536          115 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12537          115 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   12538          115 :               switch (TREE_CODE (_p1))
   12539              :                 {
   12540           80 :                 case CALL_EXPR:
   12541           80 :                   switch (get_call_combined_fn (_p1))
   12542              :                     {
   12543           20 :                     case CFN_BUILT_IN_POW:
   12544           20 :                       if (call_expr_nargs (_p1) == 2)
   12545              :     {
   12546           20 :                           tree _q50 = CALL_EXPR_ARG (_p1, 0);
   12547           20 :                           tree _q51 = CALL_EXPR_ARG (_p1, 1);
   12548           20 :                           if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
   12549              :                             {
   12550           14 :                               {
   12551           14 :                                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
   12552           14 :                                 tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POW);
   12553           14 :                                 if (res) return res;
   12554              :                               }
   12555              :                             }
   12556            6 :                           if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
   12557              :                             {
   12558            2 :                               {
   12559            2 :                                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   12560            2 :                                 tree res = generic_simplify_206 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POW);
   12561            2 :                                 if (res) return res;
   12562              :                               }
   12563              :                             }
   12564              :                         }
   12565              :                       break;
   12566              :                     default:;
   12567              :                     }
   12568              :                   break;
   12569              :                 default:;
   12570              :                 }
   12571              :             }
   12572              :           break;
   12573           19 :         case CFN_BUILT_IN_POWF:
   12574           19 :           if (call_expr_nargs (_p0) == 2)
   12575              :     {
   12576           19 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12577           19 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   12578           19 :               switch (TREE_CODE (_p1))
   12579              :                 {
   12580           13 :                 case CALL_EXPR:
   12581           13 :                   switch (get_call_combined_fn (_p1))
   12582              :                     {
   12583           13 :                     case CFN_BUILT_IN_POWF:
   12584           13 :                       if (call_expr_nargs (_p1) == 2)
   12585              :     {
   12586           13 :                           tree _q50 = CALL_EXPR_ARG (_p1, 0);
   12587           13 :                           tree _q51 = CALL_EXPR_ARG (_p1, 1);
   12588           13 :                           if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
   12589              :                             {
   12590           12 :                               {
   12591           12 :                                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
   12592           12 :                                 tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWF);
   12593           12 :                                 if (res) return res;
   12594              :                               }
   12595              :                             }
   12596            1 :                           if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
   12597              :                             {
   12598            0 :                               {
   12599            0 :                                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   12600            0 :                                 tree res = generic_simplify_206 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWF);
   12601            0 :                                 if (res) return res;
   12602              :                               }
   12603              :                             }
   12604              :                         }
   12605              :                       break;
   12606              :                     default:;
   12607              :                     }
   12608              :                   break;
   12609              :                 default:;
   12610              :                 }
   12611              :             }
   12612              :           break;
   12613           26 :         case CFN_BUILT_IN_POWI:
   12614           26 :           if (call_expr_nargs (_p0) == 2)
   12615              :     {
   12616           26 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12617           26 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   12618           26 :               switch (TREE_CODE (_p1))
   12619              :                 {
   12620            0 :                 case CALL_EXPR:
   12621            0 :                   switch (get_call_combined_fn (_p1))
   12622              :                     {
   12623            0 :                     case CFN_BUILT_IN_POWI:
   12624            0 :                       if (call_expr_nargs (_p1) == 2)
   12625              :     {
   12626            0 :                           tree _q50 = CALL_EXPR_ARG (_p1, 0);
   12627            0 :                           tree _q51 = CALL_EXPR_ARG (_p1, 1);
   12628            0 :                           if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
   12629              :                             {
   12630            0 :                               {
   12631            0 :                                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   12632            0 :                                 if (flag_unsafe_math_optimizations && canonicalize_math_p ()
   12633              : )
   12634              :                                   {
   12635            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1496;
   12636            0 :                                     {
   12637            0 :                                       tree res_op0;
   12638            0 :                                       {
   12639            0 :                                         tree _o1[2], _r1;
   12640            0 :                                         _o1[0] = captures[1];
   12641            0 :                                         _o1[1] = captures[4];
   12642            0 :                                         _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   12643            0 :                                         res_op0 = _r1;
   12644              :                                       }
   12645            0 :                                       tree res_op1;
   12646            0 :                                       res_op1 = captures[2];
   12647            0 :                                       tree _r;
   12648            0 :                                       _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POWI, type, 2, res_op0, res_op1);
   12649            0 :                                       if (!_r)
   12650            0 :                                         goto next_after_fail1496;
   12651            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 986, __FILE__, __LINE__, true);
   12652            0 :                                       return _r;
   12653              :                                     }
   12654            0 : next_after_fail1496:;
   12655              :                                   }
   12656              :                               }
   12657              :                             }
   12658              :                         }
   12659              :                       break;
   12660              :                     default:;
   12661              :                     }
   12662              :                   break;
   12663              :                 default:;
   12664              :                 }
   12665              :             }
   12666              :           break;
   12667           12 :         case CFN_BUILT_IN_POWL:
   12668           12 :           if (call_expr_nargs (_p0) == 2)
   12669              :     {
   12670           12 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12671           12 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   12672           12 :               switch (TREE_CODE (_p1))
   12673              :                 {
   12674           12 :                 case CALL_EXPR:
   12675           12 :                   switch (get_call_combined_fn (_p1))
   12676              :                     {
   12677           12 :                     case CFN_BUILT_IN_POWL:
   12678           12 :                       if (call_expr_nargs (_p1) == 2)
   12679              :     {
   12680           12 :                           tree _q50 = CALL_EXPR_ARG (_p1, 0);
   12681           12 :                           tree _q51 = CALL_EXPR_ARG (_p1, 1);
   12682           12 :                           if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
   12683              :                             {
   12684           12 :                               {
   12685           12 :                                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
   12686           12 :                                 tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWL);
   12687           12 :                                 if (res) return res;
   12688              :                               }
   12689              :                             }
   12690            0 :                           if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
   12691              :                             {
   12692            0 :                               {
   12693            0 :                                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   12694            0 :                                 tree res = generic_simplify_206 (loc, type, _p0, _p1, captures, CFN_BUILT_IN_POWL);
   12695            0 :                                 if (res) return res;
   12696              :                               }
   12697              :                             }
   12698              :                         }
   12699              :                       break;
   12700              :                     default:;
   12701              :                     }
   12702              :                   break;
   12703              :                 default:;
   12704              :                 }
   12705              :             }
   12706              :           break;
   12707            0 :         case CFN_POW:
   12708            0 :           if (call_expr_nargs (_p0) == 2)
   12709              :     {
   12710            0 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12711            0 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   12712            0 :               switch (TREE_CODE (_p1))
   12713              :                 {
   12714            0 :                 case CALL_EXPR:
   12715            0 :                   switch (get_call_combined_fn (_p1))
   12716              :                     {
   12717            0 :                     case CFN_POW:
   12718            0 :                       if (call_expr_nargs (_p1) == 2)
   12719              :     {
   12720            0 :                           tree _q50 = CALL_EXPR_ARG (_p1, 0);
   12721            0 :                           tree _q51 = CALL_EXPR_ARG (_p1, 1);
   12722            0 :                           if ((_q50 == _q20 && ! TREE_SIDE_EFFECTS (_q50)) || (operand_equal_p (_q50, _q20, 0) && types_match (_q50, _q20)))
   12723              :                             {
   12724            0 :                               {
   12725            0 :                                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q51 };
   12726            0 :                                 tree res = generic_simplify_205 (loc, type, _p0, _p1, captures, CFN_POW);
   12727            0 :                                 if (res) return res;
   12728              :                               }
   12729              :                             }
   12730            0 :                           if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
   12731              :                             {
   12732            0 :                               {
   12733            0 :                                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   12734            0 :                                 tree res = generic_simplify_206 (loc, type, _p0, _p1, captures, CFN_POW);
   12735            0 :                                 if (res) return res;
   12736              :                               }
   12737              :                             }
   12738              :                         }
   12739              :                       break;
   12740              :                     default:;
   12741              :                     }
   12742              :                   break;
   12743              :                 default:;
   12744              :                 }
   12745              :             }
   12746              :           break;
   12747           14 :         case CFN_BUILT_IN_POWIF:
   12748           14 :           if (call_expr_nargs (_p0) == 2)
   12749              :     {
   12750           14 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12751           14 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   12752           14 :               switch (TREE_CODE (_p1))
   12753              :                 {
   12754            0 :                 case CALL_EXPR:
   12755            0 :                   switch (get_call_combined_fn (_p1))
   12756              :                     {
   12757            0 :                     case CFN_BUILT_IN_POWIF:
   12758            0 :                       if (call_expr_nargs (_p1) == 2)
   12759              :     {
   12760            0 :                           tree _q50 = CALL_EXPR_ARG (_p1, 0);
   12761            0 :                           tree _q51 = CALL_EXPR_ARG (_p1, 1);
   12762            0 :                           if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
   12763              :                             {
   12764            0 :                               {
   12765            0 :                                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   12766            0 :                                 if (flag_unsafe_math_optimizations && canonicalize_math_p ()
   12767              : )
   12768              :                                   {
   12769            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1497;
   12770            0 :                                     {
   12771            0 :                                       tree res_op0;
   12772            0 :                                       {
   12773            0 :                                         tree _o1[2], _r1;
   12774            0 :                                         _o1[0] = captures[1];
   12775            0 :                                         _o1[1] = captures[4];
   12776            0 :                                         _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   12777            0 :                                         res_op0 = _r1;
   12778              :                                       }
   12779            0 :                                       tree res_op1;
   12780            0 :                                       res_op1 = captures[2];
   12781            0 :                                       tree _r;
   12782            0 :                                       _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POWIF, type, 2, res_op0, res_op1);
   12783            0 :                                       if (!_r)
   12784            0 :                                         goto next_after_fail1497;
   12785            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 986, __FILE__, __LINE__, true);
   12786            0 :                                       return _r;
   12787              :                                     }
   12788            0 : next_after_fail1497:;
   12789              :                                   }
   12790              :                               }
   12791              :                             }
   12792              :                         }
   12793              :                       break;
   12794              :                     default:;
   12795              :                     }
   12796              :                   break;
   12797              :                 default:;
   12798              :                 }
   12799              :             }
   12800              :           break;
   12801            5 :         case CFN_BUILT_IN_POWIL:
   12802            5 :           if (call_expr_nargs (_p0) == 2)
   12803              :     {
   12804            5 :               tree _q20 = CALL_EXPR_ARG (_p0, 0);
   12805            5 :               tree _q21 = CALL_EXPR_ARG (_p0, 1);
   12806            5 :               switch (TREE_CODE (_p1))
   12807              :                 {
   12808            0 :                 case CALL_EXPR:
   12809            0 :                   switch (get_call_combined_fn (_p1))
   12810              :                     {
   12811            0 :                     case CFN_BUILT_IN_POWIL:
   12812            0 :                       if (call_expr_nargs (_p1) == 2)
   12813              :     {
   12814            0 :                           tree _q50 = CALL_EXPR_ARG (_p1, 0);
   12815            0 :                           tree _q51 = CALL_EXPR_ARG (_p1, 1);
   12816            0 :                           if ((_q51 == _q21 && ! TREE_SIDE_EFFECTS (_q51)) || (operand_equal_p (_q51, _q21, 0) && types_match (_q51, _q21)))
   12817              :                             {
   12818            0 :                               {
   12819            0 :                                 tree captures[5] ATTRIBUTE_UNUSED = { _p0, _q20, _q21, _p1, _q50 };
   12820            0 :                                 if (flag_unsafe_math_optimizations && canonicalize_math_p ()
   12821              : )
   12822              :                                   {
   12823            0 :                                     if (UNLIKELY (!dbg_cnt (match))) goto next_after_fail1498;
   12824            0 :                                     {
   12825            0 :                                       tree res_op0;
   12826            0 :                                       {
   12827            0 :                                         tree _o1[2], _r1;
   12828            0 :                                         _o1[0] = captures[1];
   12829            0 :                                         _o1[1] = captures[4];
   12830            0 :                                         _r1 = fold_build2_loc (loc, MULT_EXPR, TREE_TYPE (_o1[0]), _o1[0], _o1[1]);
   12831            0 :                                         res_op0 = _r1;
   12832              :                                       }
   12833            0 :                                       tree res_op1;
   12834            0 :                                       res_op1 = captures[2];
   12835            0 :                                       tree _r;
   12836            0 :                                       _r = maybe_build_call_expr_loc (loc, CFN_BUILT_IN_POWIL, type, 2, res_op0, res_op1);
   12837            0 :                                       if (!_r)
   12838            0 :                                         goto next_after_fail1498;
   12839            0 :                                       if (UNLIKELY (debug_dump)) generic_dump_logs ("match.pd", 986, __FILE__, __LINE__, true);
   12840            0 :                                       return _r;
   12841              :                                     }
   12842            0 : next_after_fail1498:;
   12843              :                                   }
   12844              :                               }
   12845              :                             }
   12846              :                         }
   12847              :                       break;
   12848              :                     default:;
   12849              :                     }
   12850              :                   break;
   12851              :                 default:;
   12852              :                 }
   12853              :             }
   12854              :           break;
   12855              :         default:;
   12856              :         }
   12857              :       break;
   12858              :     default:;
   12859              :     }
   12860              :   return NULL_TREE;
   12861              : }
   12862              : #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.